2 votos

Convirtiendo WMI de vbscript a powershell

Estoy tratando de seguir las guías para acceder a IIS 6 usando WMI pero tengo problemas para entender cómo traducir el método Get de SWbemServices ya que Get-WmiObject parece que no utiliza la misma sintaxis de ruta (Describiendo la ubicación de un objeto WMI).

El ejemplo que estaba siguiendo se encuentra en Conectando al Proveedor WMI:

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

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

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

4voto

aoven Puntos 577

Esto depende en primer lugar de si la cadena se refiere a un objeto o a una clase.
Para objetos; puedes convertir la cadena a wmi.
Para clases; puedes convertir la cadena a wmiclass.

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

Algunos nombres de método en WMI podrían cambiar de sus nombres en wsh, por ejemplo SpawnInstance_ ahora es CreateInstance y Put_ es solo Put.

wmi es un alias de System.Management.ManagementObject.
wmiclass es un alias de System.Management.ManagementClass

Ver https://stackoverflow.com/questions/261237/creating-an-iis-6-0-application-pool-using-powershell/264404#264404 para un ejemplo.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X