给定服务器名称和物理路径,我希望能够找到IISWebServer对象和ApplicationPool。网站 url 也是可接受的输入。
我们的技术是 IIS 6、WMI,并通过 C# 或 Powershell 2 进行访问。我确信使用IIS 7 它的托管 API会更容易。我们还没有。
这是我能做的:
从IISWebVirtualDirSetting获取 IIS 虚拟目录列表并筛选(离线)匹配的物理路径。
$theVirtualDir = gwmi -Namespace "root/MicrosoftIISv2" `
-ComputerName $servername -authentication PacketPrivacy `
-class "IISWebVirtualDirSetting" `
| where-object {$_.Path -like $deployLocation}
从虚拟目录对象中,我可以获得一个名称(如 W3SVC/40565456/root)。给定这个名字,我可以得到其他好东西,例如IIS Web 服务器对象。
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'"