サーバー名と物理パスを指定して、 IISWebServerオブジェクトとApplicationPoolを追跡できるようにしたいと思います。ウェブサイトのURLも受け入れ可能な入力です。
私たちのテクノロジはIIS6 、 WMI、およびC#またはPowershell 2を介したアクセスです。これは、IIS7のマネージドAPIを使用すると簡単になると確信しています。まだありません。
これが私にできることです:
IISWebVirtualDirSettingからIIS仮想ディレクトリのリストを取得し、一致する物理パスをフィルター(オフライン)します。
$theVirtualDir = gwmi -Namespace "root/MicrosoftIISv2" `
-ComputerName $servername -authentication PacketPrivacy `
-class "IISWebVirtualDirSetting" `
| where-object {$_.Path -like $deployLocation}
仮想ディレクトリオブジェクトから、名前を取得できます(W3SVC / 40565456 / rootなど)。この名前を指定すると、IISWebサーバーオブジェクトなどの他の機能を利用できます。
gwmi -Namespace "root/MicrosoftIISv2" `
-ComputerName $servername `
-authentication PacketPrivacy `
-Query "SELECT * FROM IisWebServer WHERE Name='W3SVC/40589473'"
質問、言い換え:
1)これはクエリ言語です。1つのWMIクエリステートメントがIISWebVirtualDir.Pathに基づいてWebサーバーを取得するように、参加またはサブクエリを実行できますか?どのように?
2)1を解く際には、Pathプロパティでクエリを実行する方法を説明する必要があります。なぜこれが無効なクエリなのですか?"SELECT * FROM IISWebVirtualDirSetting WHERE Path='D:\sites\globaldominator'"