2

サーバー名と物理パスを指定して、 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'"

4

1 に答える 1

2

WQL には、JOIN 演算子はありません。これを行うには、両方のクエリを変数に保存し、後処理を行う必要があります。ただし、2 番目の質問では、バックスラッシュをエスケープする必要があります。それはそのようになります

"SELECT * FROM IISWebVirtualDirSetting WHERE Path='D:\\sites\\globaldominator'"
于 2010-05-10T21:29:57.770 に答える