关于python:将WMI从vbscript转换为powershell

关于python:将WMI从vbscript转换为powershell

我正在尝试按照使用 WMI 访问 IIS 6 的指南进行操作,但我无法弄清楚如何翻译获取方法SWbemServices 与 Get-WmiObject 似乎没有使用相同的路径语法(描述 WMI 对象的位置)。

我所关注的示例位于连接到 WMI 提供程序

' Method 1
set locatorObj = CreateObject("WbemScripting.SWbemLocator") 
set providerObj = locatorObj.ConnectServer("MyMachine", "root/MicrosoftIISv2") 
set nodeObj = providerObj.Get("IIsWebVirtualDir='W3SVC/1/Root'") 

' Method 2
set providerObj = GetObject("winmgmts://MyMachine/root/MicrosoftIISv2") 
set nodeObj = providerObj.get("IIsWebVirtualDir='W3SVC/1/ROOT'") 

' Method 3
set nodeObj = GetObject("winmgmts://MyMachine/root/MicrosoftIISv2:IIsWebVirtualDir='W3SVC/1/ROOT'") 

答案1

这首先取决于字符串是指对象还是类。
对于对象,您可以将字符串转换为wmi
对于类,您可以将字符串转换为wmiclass

[wmi] 'root\MicrosoftIISv2:IIsWebVirtualDir="W3SVC/1/ROOT"'
[wmiclass] 'root\MicrosoftIISv2:IIsWebVirtualDir'

WMI 中的某些方法名称可能会从其 wsh 名称更改,例如SpawnInstance_现在是CreateInstance并且Put_只是Put

wmi 是系统管理管理对象.
wmiclass 是系统.管理.管理类

https://stackoverflow.com/questions/261237/creating-an-iis-6-0-application-pool-using-powershell/264404#264404举个例子。

相关内容