Управление сведениями о классе и экземпляре
Инструментарий 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.