Управление сведениями о классе и экземпляре

Инструментарий WMI предоставляет различные методы для получения сведений о классах и экземплярах WMI и управления ими с помощью Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) и C++.

В следующей таблице перечислены темы, в которых обсуждаются методы получения сведений о классах и экземплярах WMI и управления ими.

Раздел Описание
Получение данных класса или экземпляра WMI Получение и настройка данных из репозитория сведений WMI и в нее.
Изменение свойства экземпляра Измените сведения в экземпляре после его извлечения.
Изменение наследования экземпляра Изменение родительского класса экземпляра.
Изменение метода Изменение параметров экземпляра.
Перечисление WMI Перечисление объектов WMI.
Запрос WMI Запрос объектов WMI.
Вызов метода Используйте связанные методы, созданные корпорацией Майкрософт или другими сторонними разработчиками, для дальнейшего управления объектами WMI или непосредственно влиять на объект, который представляет объект WMI.
Доступ к коллекции Перечисление коллекций в скрипте.

 

Управление данными с помощью VBScript

Вы можете использовать прямой доступ для доступа к свойствам WMI класса или экземпляра WMI непосредственно в SWbemObject, а не через коллекцию свойств этого объекта. Вы также можете выполнять методы для этого объекта в собственном стиле языка программирования, а не с помощью вызова SWbemServices.ExecMethod . Например, метод Create в Win32_Process имел три параметра в Windows 2000, но четыре параметра в Windows Server 2003.

Используя прямой доступ, можно рассматривать свойства и методы WMI так, как если бы они были свойствами и методами автоматизации SWbemObject.

В следующем примере показано, как получить доступ к свойству.

VolumeName = MyDisk.Properties_("VolumeName")

В следующем примере показано, как получить доступ к свойству при наличии прямого доступа.

VolumeName = MyDisk.VolumeName

Также допустимо объединение объектов в цепочку.

В следующем примере показано, как получить доступ к свойству объекта, внедренного в другой объект.

value = MyComputer.MyDisk.VolumeName

В следующем примере показано, как получить доступ к свойству с подстрочной нотацией массива.

valueOfElement = MyDisk.MyArrayProperty(3)

В следующем примере кода VBScript показано, как создать экземпляр входных параметров для метода Create в классе Win32_Process в виде SWbemObject, заполнить входные свойства, а затем выполнить метод Create с помощью SWbemServices.ExecMethod.

Свойство SWbemObject.Methods_ возвращает коллекцию SWbemMethodSet методов Win32_Process . Членами набора методов являются объекты SWbemMethod , а SWbemMethod.InParameters возвращает входные параметры для метода Create . Обязательный входной параметр CommandLine имеет значение "calc.exe". Затем метод выполняется SWbemServices.ExecMethod, что приводит к запуску процесса calc.exe.

set Services = GetObject("winmgmts:root\cimv2")
Set obj = Services.Get("Win32_Process")
Set objIns = obj.Methods_("Create").InParameters.SpawnInstance_
objIns.CommandLine = "calc.exe"
Set objOut = Services.ExecMethod("Win32_Process", "Create", objIns)
MsgBox "Return value = " & objOut.returnvalue & VBCRLF & "Process ID = " & objOut.processid

В следующем примере кода показано, как выполнить предыдущую операцию с помощью прямого доступа.

set Services = GetObject("winmgmts:root\cimv2")
Set Obj = Services.Get("Win32_Process")
returnvalue = Obj.create("calc.exe",,,processid)
MsgBox "Return value = " & returnvalue & VBCRLF & "Process ID = " & processid

Дополнительные сведения см. в разделах Вызов метода поставщика и Создание скриптов с помощью SWbemObject.