Назад | Перейти на главную страницу

Преобразование WMI из vbscript в powershell

Я пытаюсь следовать руководствам по доступу к IIS 6 с помощью WMI, но мне сложно понять, как перевести Получить метод 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'") 

Во-первых, это зависит от того, относится ли строка к объекту или классу.
Для объектов; вы можете преобразовать строку в wmi.
Для занятий; вы можете преобразовать строку в wmiclass.

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

Некоторые имена методов в WMI могут быть изменены с их имен wsh, например SpawnInstance_ сейчас CreateInstance и Put_ просто Put.

wmi - это псевдоним для System.Management.ManagementObject.
wmiclass - это псевдоним для System.Management.ManagementClass

Видеть https://stackoverflow.com/questions/261237/creating-an-iis-6-0-application-pool-using-powershell/264404#264404 для примера.