Convertendo o WMI do vbscript para o powershell

2

Estou tentando seguir os guias para acessar o IIS 6 usando o WMI, mas estou tendo problemas para descobrir como traduzir o Obter método de SWbemServices como Get-WmiObject não parece usar a mesma sintaxe de caminho ( Descrevendo o local de um objeto WMI ).

O exemplo que eu estava seguindo está localizado em Conectando-se ao provedor 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'") 
    
por Chris Chilvers 20.05.2011 / 17:27

1 resposta

4

Isso primeiro depende se a string se refere a um objeto ou uma classe.
Para objetos; você pode converter a string para wmi .
Para as aulas; você pode converter a string para wmiclass .

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

Alguns nomes de métodos no WMI podem ser alterados a partir de seus nomes wsh, por exemplo, SpawnInstance_ é agora CreateInstance e Put_ é apenas Put .

wmi é um alias para System.Management.ManagementObject .
O wmiclass é um alias para System.Management.ManagementClass

Veja link para um exemplo.

    
por 20.05.2011 / 18:29