PowerShellスクリプティングを駆使して作業したいが,習得が大変だと考えている人にとって,PowerShell 2.0は待ちに待ったツールと言えるかも知れない。PowerShell 2.0は,Windows 7およびWindows Server 2008 R2に標準搭載される予定の新しいスクリプティング環境である。

 2009年後半にリリースが予定されているPowerShell 2.0のPowerShell言語および開発環境には,いくつかの重要な新機能が追加されている。これにより,PowerShell 1.0のいくつかの欠点が克服されてより簡単に使えるようになっている。私が選ぶPowerShell 2.0の新機能ベスト10を順に紹介しよう。

第10位●新しいコマンドレット:PowerShell 2.0には24の新しいコマンドレットがある。いくつかのコマンドレットはデバッグ,Windows Management Instrumentation (WMI),およびバックグラウンド・ジョブで使用される。私がよく使うのは「Out-GridView」である。このコマンドレットは他のコマンドの結果を対話型のテーブルに表示する。表示されたデータは自由にソートおよび検索できる。

第9位●新しい演算子:PowerShell 2.0には,「@」(スプラットと読む),「-split」,「-join」という役に立つ3つの演算子が新しく追加されている。@演算子は一連のパラメータを渡し,-splitは文字列を配列に変換し,-joinは複数の文字列を演算子を付加して連結する。

第8位●新しいビルトイン変数:PowerShell 2.0には,「$commandLineParameters」,「$PSVersionTable」,「$Culture」,「$UICulture」の4つの変数が新しく追加されている。$commandLineParameters変数はコマンドライン・パラメータへのアクセスに使用される。$PSVersionTableには現在のPowerShellのバージョンが設定される。$Cultureおよび$UICultureには現在のカルチャー(ターゲット・システムの言語設定)およびUIカルチャー情報が設定される。

第7位●Try-Catch-Finally例外処理:他の.NET言語の例にならって,PowerShell 2.0では標準的なTry-Catch-Finally構造がPowerShell言語に追加されている。Tryブロックを使用すると,1つ以上の命令が安全に実行される。エラーが発生した場合は,Catchブロックのコードが実行される。オプションのFinallyブロックには,Try-Catch部分が完了した後で実行されるコードが含まれる。

第6位●PowerShellホスティングAPI:Exchange Server 2007,SQL Server 2008,およびWindows Server 2008など,Microsoftが最近発売したサーバー製品はすべてPowerShellスクリプティングをサポートしている。PowerShell 2.0の新しいPowerShellホスティングAPIによって,アプリケーションにおけるPowerShellのホスティングが単純化され,PowerShellの機能を他の製品でも利用可能になる。

第5位●スクリプトのデバッギング:PowerShell 2.0のもう1つの重要な改善点は,拡張されたデバッギング機能である。PowerShell 2.0はコマンドレット・ベースのデバッガを装備しており,ブレイク・ポイントの設定およびスクリプトのステップ単位での検証を,グラフィカルな開発ツールを使用せずにPowerShellコンソールで実行できる。PowerShell 2.0のスクリプト・デバッギングについてより詳しく知りたい場合は,「get-help about_debugger」というコマンドを実行してみてほしい。

第4位●バックグラウンド・ジョブ:PowerShell 1.0の最大の欠点の1つは,バックグラウンド・プロセスが実行できないことだった。このため,Startコマンドを使用するWindows Shellスクリプトの代わりに使用するのは困難だった。PowerShell 2.0の新しいStart-PSJobコマンドレットは,ローカル・システムとリモート・システムのどちらでもバックグラウンド・ジョブを非同期で実行できる。より詳しい情報が必要な場合は「get-help about_psjob」というコマンドを実行してみてほしい。

第3位●ScriptCmdlet:PowerShell 1.0では,新しいコマンドレットを作成するには.NETでのプログラミングが必要だった。このため,新しいコマンドレットを作成できるのは,一般的には開発者だけだった。Powershell 2.0では,管理者がPowerShellそのものを使用してScriptCmdletを作成できる。ScriptCmdletの作成についてより詳しい情報が必要な場合は,「get-help about_scriptcmdletparametersget-help about_scriptcmdletmethods」というコマンドを実行してみてほしい。

第2位●リモート実行:PowerShell 2.0における最も重要な変更点の1つは,リモート・システム上でのスクリプト実行のサポートである。PowerShell Remotingにより,ネットワーク接続されたリモート・システム上でスクリプトを実行できる。この新しいリモート実行機能を利用するには,PowerShell 2.0がローカルおよびリモートの両方のシステムにインストールされている必要がある。より詳しい情報が必要な場合は,「get-help about_remoting」というコマンドを実行してみてほしい。

第1位●Integrated Scripting Environment:PowerShell 2.0の新しいIntegrated Scripting Environment(ISE)は私のお気に入りの機能である。ISEは複数のタブを持つグラフィカルなPowerShell開発プラットフォームであり,構文を色分けして表示できる。また,ブレイクポイントを設定してPowerShellスクリプトをステップ単位で検証するためのデバッグ機能を持つ。PowerShellの使い始めでつまずいたのであれば,ISEは間違いなくPowerShellスクリプティングの活用を強力にサポートしてくれるだろう。