IISAdministration PowerShell コマンドレット

投稿者: Baris Caglar

互換性

バージョン メモ
IIS 10.0 IISAdministration PowerShell コマンドレットは IIS 10.0 で導入されました。 IISAdministration の最新バージョンは、Powershell ギャラリーを介してサポートされています。
IIS 8.5 以前 IISAdministration PowerShell コマンドレットは、IIS 10.0 より前ではサポートされていませんでした。 ただし、ユーザーは PowerShell ギャラリーを介してインストールできます。

IISAdministration の最新バージョンを取得する方法については、iis.net にアクセスしてください。

IISAdministration の概要

Windows 10 と Windows Server 2016 では、IIS チームは既存の WebAdministration コマンドレットと並行して新しい簡素化された IISAdministration モジュールをリリースします。 まったく新しい PowerShell コマンドレット モジュールをリリースする決定の背後には多くの理由がありますが、そのいくつかを紹介します。

  • IISAdministration を使用すると、WebAdministration で実行すると時間がかかるスクリプトのスケーリングが向上します。
  • Microsoft.Web.Administration.ServerManager オブジェクトのインスタンスへの直接参照を取得し、スクリプトと共に Microsoft.Web.Administration 名前空間で実行できる任意の操作を行うことができます。
  • PowerShell パイプラインの互換性は、多くのコマンドレットの設計を推進してきました。 そのため、IISAdministration は、PowerShell パイプラインで利用する方がはるかに適しています。

Windows 10 用にリリースされたコマンドレットのバージョンは、大まかなバージョンであり、改善の余地がありました。完成した洗練された製品として目標となったリリースは、Windows Server 2016 でした。 以前のリリースは、業界の実際の PowerShell ユーザーと IIS 管理者からフィードバックを受け取り、質問に回答し、既存の機能だけでなく、ユーザーが PowerShell に関して新機能において IIS 管理に求めることについて提案を受け取ることが目的でした。

新しいプロバイダーの使用例を次に示します。

パイプライン処理

PS:>Get-IISConfigSection -SectionPath "system.webServer/defaultDocument" | Get-IISConfigCollection -CollectionName "files" | New-IISConfigCollectionElement -ConfigAttribute @{"Value" = "MyDefDoc.htm"}

Get-IISConfigSection はほとんどのパイプラインの先頭にあり、上記の特定の例では、最初に "system.webServer/defaultDocument" セクション (大文字と小文字が区別されます) を取得し、次にファイル コレクションを取得し、最後に指定された属性値を持つコレクション要素を取得します。

PS:>$ConfigSection = Get-IISConfigSection -SectionPath "system.applicationHost/sites"

PS:>Get-IISConfigCollection $configSection | Get-IISConfigCollectionElement -ConfigAttribute @{"Name"="Default Web Site"} | Get-IISConfigAttributeValue -AttributeName "State"

これは、セクションが最初に変数に格納され、次にパイプラインで使用されるというハイブリッドの一例です。

単純なコマンド

単純なコマンドの数が大幅に少なくなります。 ここで示す例には、Get-IISSite と Get-IISAppPool が含まれます。 コマンドが存在しないその他の単純な操作は、パイプライン操作を通じて実行できます。

PS:> Get-IISAppPool

Name            Status   CLR Ver  Pipeline Mode  Start Mode
----            ------   -------  -------------  ----------
DefaultAppPool  Started  v4.0     Integrated     OnDemand

Get-IISServerManager

PS:>$sm = Get-IISServerManager

PS:>$sm.ApplicationPools["DefaultAppPool"].Recycle()

ご覧のように、サーバー マネージャーにアクセスできたら、可能性は無限大です。

Start-IISCommitDelay/Stop-IISCommitDelay

これらのコマンドで操作を囲むと、変更が同時にコミットされるようにすることができます。

これらの例は、新しいプロバイダーでできることのほんの一部にすぎません。 詳細なドキュメントとその他の例については、オンライン ドキュメントを参照してください。