Windows PowerShell の設計目標は、従来から指摘されてきた問題点を排除し、新しい機能を追加することによって、コマンドラインおよびスクリプト環境を向上させることです。

必要な機能の検索

Windows PowerShell では、必要な機能を簡単に探すことができます。たとえば、Windows サービスを表示したり変更したりするためのコマンドレットを一覧表示するには、次のように入力します。

get-command *-service

目的のタスクを遂行するために必要なコマンドレットが見つかった後、Get-Help コマンドレットを使用すると、そのコマンドレットについて、より詳しい情報を表示できます。たとえば、Get-Service コマンドレットのヘルプを表示するには、次のように入力します。

get-help get-service

このコマンドレットの出力を詳細に確認するには、出力をパイプで Get-Member コマンドレットに渡します。たとえば、次のコマンドを実行すると、Get-Service コマンドレットから出力されるオブジェクトのメンバーに関する情報が表示されます。

get-service | get-member

一貫性

システム管理は複雑な作業を伴うものです。一貫したインターフェイスを備えたツールがあれば、システム管理に伴う複雑な作業を効率よく行うことができます。残念ながら、コマンドライン ツールも、スクリプト可能な COM オブジェクトも、優れた一貫性を備えているとは言えません。

Windows PowerShell の持つ大きな特長の 1 つは、その一貫性にあります。たとえば、Sort-Object コマンドレットの使い方を習得すると、その知識を基にして、任意のコマンドレットからの出力を並べ替えることができます。コマンドレットごとに異なる並べ替え方法を身に付ける必要がありません。

また、コマンドレットの開発者は、作成するコマンドレットごとに、並べ替えの機能を独自に設計する必要はありません。Windows PowerShell には、基本的な機能を備えたフレームワークが用意されており、インターフェイスに関する多くの点で一貫性の維持が開発者に強制されます。このフレームワークによって、通常であれば開発者側の判断で決めることのできる部分が減ることになりますが、逆に言えば、堅牢で使いやすいコマンドレットをより簡単に開発できることになります。

対話型の環境とスクリプト環境

Windows PowerShell では、対話型の環境とスクリプト環境が組み合わされています。コマンドライン ツールおよび COM オブジェクトにアクセスできるだけでなく、.NET Framework クラス ライブラリ (FCL) の強力な機能を利用することもできます。

この改良された環境のベースとなっているものは、従来の 2 つの環境です。その 1 つが、さまざまなコマンドライン ツールを備えた対話型環境である Windows コマンド プロンプトです。もう 1 つは、Windows Script Host (WSH) スクリプトです。Windows Script Host では、さまざまなコマンドライン ツールや COM オートメーション オブジェクトを利用できますが、対話型の環境は備えられていません。

Windows PowerShell には、この 2 つの環境が融合され、対話型環境に慣れているユーザーとスクリプト環境に慣れているユーザーのどちらもが、そのメリットを享受でき、システム管理をより効率的に行うことができます。

オブジェクト指向

Windows PowerShell の対話操作はコマンドをテキストで入力することによって行いますが、Windows PowerShell はテキストではなくオブジェクトをベースとしています。コマンドの実行結果はオブジェクトとして出力されます。出力されたオブジェクトは、別のコマンドの入力として渡すことができます。その結果、Windows PowerShell は、最新の強力なコマンドライン パラダイムを取り入れながら、これまで他のシェルを利用してきたユーザーにとって、使い慣れたインターフェイスを提供することに成功しました。テキストではなくオブジェクトを渡すことができるようになったことで、コマンド間でデータを送るという概念は飛躍的に進化したことになります。

スクリプトへの容易な移行

Windows PowerShell では、対話形式で入力するコマンドを基に、スクリプトを容易に作成し、実行することができます。タスクを実行するためのコマンドは、Windows PowerShell のコマンド プロンプトでコマンドを入力することによって調べることができます。見つかったコマンドはトランスクリプト (履歴) に保存しておき、後で、スクリプトとして使用するためのファイルにコピーできます。




目次