Использование WMI и CIM

WMI используется в PowerShell примерно так же, как и в WSH. Главное отличие состоит в том, что методы PowerShell основаны на WMI. NET, а не на WMI Scripting API. В PowerShell возможны три способа использования WMI: WMI. NET, командлет Get-WmiObj ect и акселераторы типов WMI в PowerShell: , и.

Первый способ — с применением пространств имен System. Management и System. Management. Instrumentation — не будет рассматриваться в данной главе, поскольку он не так удобен, как два остальных способа. Это просто резервный метод на тот случай, если при использовании двух других способов PowerShell неправильно инкапсулирует какой-либо объект в объекте PSObj ect. Второй способ — командлет Get-WmiObject — выбирает объекты WMI и информацию о классах WMI. Ero применение не вызывает затруднений. Например, для получения экземпляра локального класса Win32_ComputerSystem нужно лишь указать имя этого класса: В следующем, более полезном примере, выполняется подключение к удаленной машине с именем Jupiter и получение экземпляра класса Win32_Service с именем, равным Virtual Server. Результатом является объект, содержащий информацию о службе Virtual Server на компьютере Использование командлета Get-WmiObject не вызывает затруднений, за исключением того, что при этом почти всегда требуется вводить длинную командную строку. Этот недостаток приводит нас к третьему способу использования WMI в PowerShell: к акселераторам типов WMI. При использовании командлета Get-WmiObject в PowerShell 1.0 в сочетании с классом IlsWebService для управления службой W3SVC на удаленном компьютере возникала следующая ошибка: В этом примере параметр класса определен как Win32_WMISetting, а параметр аргумента определен как HashTable, который содержит свойство и присваиваемое значение. Кроме того, поскольку этот параметр требует аргумент HashTable, для определения нескольких пар свойство-значение необходимо разделять эти пары точками с запятыми:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *