R2 機能概要

Windows PowerShell 2.0

Windows Server 2008 R2 には、Windows PowerShell の最新バージョン 2.0 が標準で組み込まれます。Windows PowerShell は、システム管理のために開発された強力なコマンド シェルおよびスクリプティング環境です。Windows PowerShell 2.0 では、組み込みのコマンドレットの拡充に加え、リモート管理機能の強化や GUI の提供、Windows 7 や Server Core へのサポート範囲の拡張が行われ、一般的な管理タスクの効率化、自動化を強力に支援します。

サーバー管理を効率化、自動化するための、これからの標準

NET Framework ベースのコマンド シェルとスクリプティング言語

Windows PowerShell は、システム管理タスクに重点を置いて開発された、.NET Framework 上で動作する新しいコマンド シェルおよびスクリプティング言語です。

Windows PowerShell には、コマンドレット (Cmdlet) と呼ばれる標準的なコマンドライン ツールが組み込まれています。各コマンドレットは簡単な機能しか持ちませんが、一貫性のある名前付け規則 (Get-/Set- など) と一貫性のある構文で使用することができます。コマンドレットは、対象をオブジェクトとして扱います。これに、直感的に使用できるユーティリティ (-sort、-filter など) やパイプライン (|) によるオブジェクトの受け渡しを組み合わせることで、複雑な処理を 1 行ないし数行で記述することができます。スクリプトを記述するために、プログラミング経験は必要ありません。

また、Windows PowerShell は、実行ポリシーにより、スクリプトの信頼性に基づいた実行制限を行えるセキュリティ機能を持ちます。一貫性のあるコマンドレット、直観的なユーティリティ、パイプライン、そして、セキュリティ機能、これらの機能は、すべてシステム管理タスクのために考えられたものであり、一括または繰り返し行うシステム管理タスクの効率化、自動化を促進します。

Windows Server 2008 に標準搭載、R2 で対応強化

Windows Server 2008 には、Windows PowerShell 1.0 が初めて標準搭載されました。Windows Server 2008 では、130 以上のコマンドレットが提供され、サービスやプロセス、レジストリ、イベント、WMI (Windows Management Instrumentation) に格納されているデータの、読み取りや変更など、一般的な管理タスクをコマンドライン ベースで実行する環境が提供されました。また、一部の役割や機能の管理に対応した Windows PowerShell プロバイダーが提供されました。

Windows Server 2008 R2 に実装される Windows PowerShell 2.0 では、組み込みの標準コマンドレットが 240 以上に拡張され、Windows Server 2008 R2 の多くの役割および機能の管理に対応した Windows PowerShell プロバイダーが提供されます。具体的には、Active Directory ドメイン サービス、Active Directory 証明書サービス、グループ ポリシー、BitLocker ドライブ暗号化、バックグランド インテリジェント転送サービス (BITS)、DHCP サーバー、Web サーバー (IIS)、フェールオーバー クラスタリング、ネットワーク負荷分散、リモートデスクトップサービス、サーバー マネージャー、ベスト プラクティス アナライザー、Windows Server バックアップ、WS-Management (WinRM) の管理に対応したコマンドレットが提供されます。これにより、Microsoft 管理コンソール (MMC) スナップインやウィザードなど GUI ツールで行う管理タスクの多くを、Windows PowerShell スクリプトを使用して、CUI で実行できるようになります。

Server Core および Windows 7 でも利用可能に

Windows PowerShell は .NET Framework を前提としているため、.NET Framework をサポートしていない、Windows Server 2008 の Server Core では利用できませんでした。Windows Server 2008 R2 の Server Core には .NET Framework のサポートが追加され、Windows PowerShell 2.0 によるローカル管理、リモート管理が可能になります。また、Windows PowerShell 2.0 は、Windows 7 にも標準搭載され、既定で有効になります。

サーバー製品の Windows PowerShell 対応

Exchange Server 2007 は、Windows Server 2008 より前に、Windows PowerShell 1.0 を本格的に採用した初めての製品です。Exchange Server 2007 は、GUI で行える作業は CUI でも行えるという、サーバー管理の新しいスタイルを具現化した製品です。Exchange Server 2007 の管理コンソールは、Windows PowerShell の上で動作し、GUI で行った作業が Windows PowerShell のコマンドレットを呼び出します。ウィザードが実行する内容は、Windows PowerShell スクリプトとして提供されるため、1 回目の作業は、GUI のウィザードで行い、繰り返し作業は CUI で自動化するという使い方ができます。

同様のスタイルは、System Center Virtual Machine Manager 2007 以降にも採用されています。また、System Center Operations Manager 2007、System Center Data Protection Manager 2007、SQL Server 2008 にも、Windows PowerShell プロバイダーが同梱され、コマンドライン ベースの管理機能が強化されています。

図 1: System Center Virtual Machine Manager のバーチャル マシン作成ウィザード

図 1: System Center Virtual Machine Manager のバーチャル マシン作成ウィザード

ページのトップへ

Windows PowerShell 2.0 の強化ポイント

リモート機能の強化

Windows PowerShell 2.0 では、標準コマンドレットの多くが –ComputerName パラメータをサポートするようになり、ローカル コンピューターに加えて、リモート コンピューターに対応します。例えば、Windows PowerShell 1.0 の Get-EventLog コマンドレットは、ローカル コンピューターのイベント ログ参照専用でした。リモート コンピューターのイベント ログにアクセスするには “Get-WMIObject Win32_NTLogEvent –ComputerName コンピューター名“ のように WMI オブジェクトを経由する必要がありました。Windows PowerShell 2.0 では、”Get-EventLog –ComputerName コンピューター名” でリモート コンピューターのイベント ログを参照できます。

図 2: 標準コマンドレットの多くに –ComputerName パラメータが追加され、リモート コンピューターに対応しました

図 2: 標準コマンドレットの多くに –ComputerName パラメータが追加され、リモート コンピューターに対応しました

Windows PowerShell 2.0 には、リモーティング (Remoting) という新機能が追加されます。この機能は、ローカル コンピューターとリモート コンピューターの Windows PowerShell を連携する機能で、1 : 1、1 : 多、多 : 1 のコンピューター間で、対話的または非同期にスクリプトを実行できます。例えば、Invoke-Command コマンドレットは、1 行のコマンドラインを 1 台または複数台のコンピューターに対して同時実行し、結果を取得することができます。複数行のコマンドラインを実行するために、New-PSSession や Enter-PSSession コマンドレットを使用して、持続的なセッション (Persistent Session) を作成することもできます。

図 3: Windows PowerShell 2.0 の新機能リモーティングを利用した、1 : 多のコマンド実行

図 3: Windows PowerShell 2.0 の新機能リモーティングを利用した、1 : 多のコマンド実行

バックグラウンド ジョブの実行

Windows PowerShell 2.0 には、バックグラウンドでのジョブ (コマンドラインまたはスクリプト ファイル) の実行機能が追加されます。Start-Job コマンドレットで開始したジョブは、バックグラウンドで実行され、このジョブの実行完了を待つことなく、別の処理を実行することができます。ジョブの実行状況は Get-Job コマンドレットで確認することができます。Wait-Job コマンドレットを使用すれば、バックグラウンドで開始したジョブの実行完了を、フォアグラウンドで待機することもできます。ジョブの実行が完了したら、その結果を Receive-Job コマンドレットで取得することができます。

図 4: バックグラウンド ジョブは、Start-Job コマンドレットで開始し、Receive-Job コマンドレットで結果を取得します

図 4: バックグラウンド ジョブは、Start-Job コマンドレットで開始し、Receive-Job コマンドレットで結果を取得します

Out-GridView

Windows PowerShell には、実行結果をテーブル形式やリスト形式に整形するのに便利な Format-Table やFormat-List コマンドレットが用意されています。Windows PowerShell 2.0 には、GUI のウィンドウにテーブルをグリッド表示するための、Out-GridView コマンドレットが新たに追加されます。Out-GridView のウィンドウでは、結果の検索、並べ替え、およびグループ化を行えます。

Windows PowerShell が扱うのはオブジェクトであり、これらのコマンドレットはオブジェクトのすべての、あるいは特定のプロパティを適切にフォーマットしてくれます。新しい Out-GridView は、大量の出力結果を扱うのに有効です。出力結果が固定のコマンド ツールや、出力結果をプログラミングしなければならない WSH スクリプトとは異なり、出力結果を整えることに労力をかける必要がないため、管理者は目的の管理作業に専念することができます。

図 5: Out-GridView コマンドレットは、GUI のグリッド ウィンドウによるテーブル表示を可能にします

図 5: Out-GridView コマンドレットは、GUI のグリッド ウィンドウによるテーブル表示を可能にします

Windows PowerShell ISE

Windows PowerShell 2.0 には、Windows PowerShell ISE (Integrated Scripting Environment) が同梱されています。この GUI ツールは、スクリプトの作成、実行、テスト、およびデバッグを容易にします。上部のスクリプト ペインは構文による色分け表示が行われ、作成するスクリプトの可読性を高めます。作成したスクリプトは、すべてまたは一部分を選択して実行することができ、ブレークポイントを設定してデバッグすることができます。中央のコマンド ペインでは、Windows PowerShell のコマンド シェルを対話的に使用でき、スクリプトやコマンドの実行結果は下部の出力ペインに表示されます。このツールは、マルチ タブに対応し、それぞれのタブで別々のタスクを実行することができます。

図 6: GUI のスクリプティング環境を提供する Windows PowerShell ISE

図 6: GUI のスクリプティング環境を提供する Windows PowerShell ISE

ページのトップへ