PowerShellからIISを管理する方法はいくつかあるのですが、.NETクラスライブラリを使用する方法を紹介します。
IISのアセンブリは、C:\Windows\System32\inetsrv ディレクトリにあるMicrosoft.Web.Administration.dll です。
まずは、Microsoft.Web.Administration.dllを[System.Reflection.Assembly]::LoadFromメソッドで読み込みます。
[void][System.Reflection.Assembly]::LoadFrom("C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll")
[System.Reflection.Assembly]::LoadFromメソッドについては、過去記事「.NETアセンブリをロードするには(PowerShell 入門)」を参照ください。
次に、New-Objectコマンドレットを使用してServerManagerのインスタンスを作成します。
$IIS = New-Object Microsoft.Web.Administration.ServerManager
以上でSeverManagerクラス内のメソッドなどを利用できるようになります。
最後に、サイトの一覧を取得する例を紹介します。
サイトはSitesプロパティ(コレクション)に格納されており、Foreachで取り出すことができます。
サイト名はNameプロパティで取得することができます。
Foreach ( $site in $IIS.Sites ) { $site.Name }
コメント
[…] About Author « [IIS] PowerShellでIISを管理する(1) […]