by kusakari
8. 2月 2010 19:10
PowerShell から IIS7.5 上のサイトの一覧を取得してみたいと思います。が、PowerShell から IIS7.5 を、操作しようとした際にちょっと設定がありますので、その設定を自分用メモとして残しておきます。
■環境
・Windows Server 2008 R2
・PowerShell 2.0
Windows Server 2008 R2では、IISのPowerShellのスナップインが標準で搭載されています。
IIS7などで、IISのPowerShellスナップインを使用する際には、下記のURLからスナップインをダウンロードすることが出来ます。
http://technet.microsoft.com/ja-jp/iis/ee839523.aspx
まず、IISやPowerShellを標準的にインストールしただけでは、IISのPowerShellプロバイダにアクセスすることは出来ません。
結果的に「IIS:」という形で、IISをドライブ扱いに設定出来るのですが、ココでは試しに、下図のように「Get-PSDrive」コマンドレットを入力して、設定前の状態を確認してみます。
では、次にプロバイダの設定を行ってみます。
なお、モジュールの導入に関しては、実行ポリシーによる制限などがありますので、下図のように「Get-ExecutionPolicy」コマンドで現在のポリシー状況を必要に応じて確認してください。

私の環境では実行ポリシーは「Restricted」となっており、デフォルトの設定なので、構成ファイルの読み込みだったりスクリプトの実行など出来ないので、下記のコマンドでポリシーを変更します。
Set-ExecutionPolicy RemoteSigned
※「RemoteSigned」より緩い実行ポリシーの場合は、上記コマンドレットの実行は必要ありません。
実行ポリシーの変更が終了したら、下記のコマンドレットを入力して、モジュールの導入を行います。
import-module WebAdministration
結果は素っ気なく帰ってきませんので、「Get-PSDrive」を入力して、「IIS」がドライブとして認識出来ていることを確認します。

で、最後にIIS7.5上のサイトの一覧を取得するには、下記のコマンドを実行するだけで、簡単に取得出来てしまいます。
cd IIS:\Sites
dir
■結果

05e6c311-4e80-4ede-8645-096d579d60c6|0|.0
Category: IIS, PowerShell
Tags: