操作类和实例信息

WMI 提供了多种技术来检索和操作 WMI 类和实例信息,并将使用 Microsoft PowerShell、Visual Basic Scripting Edition (VBScript)和 C++。

下表列出了讨论检索和操作 WMI 类和实例信息的技术的主题。

主题 说明
检索 WMI 类或实例数据 从 WMI 信息存储库检索和设置数据。
修改实例属性 在检索实例后更改该实例中的信息。
更改实例的继承 更改实例的父类。
修改方法 修改实例的参数。
枚举 WMI 枚举 WMI 对象。
查询 WMI 查询 WMI 对象。
调用方法 必须使用 Microsoft 或其他第三方开发人员创建的关联方法进一步操作 WMI 对象,否则将直接影响 WMI 对象表示的对象。
访问集合 枚举脚本中的集合。

 

使用 VBScript 操作数据

可以使用直接访问直接访问直接在 SWbemObject 上访问 WMI 类或实例的 WMI 属性,而不是通过该对象的属性集合。 还可以以编程语言的本机样式对对象执行方法,而不是使用 SWbemServices.ExecMethod 调用。 例如,Win32_Process 中的 Create 方法在 Windows 2000 中具有三个参数,但在 Windows Server 2003 中具有四个参数。

使用直接访问,可以将 WMI 属性和方法视为 SWbemObject 的自动化属性和方法。

以下示例演示如何访问属性。

VolumeName = MyDisk.Properties_("VolumeName")

以下示例演示如何在具有直接访问权限时访问属性。

VolumeName = MyDisk.VolumeName

也可以接受对象链接。

以下示例演示如何访问嵌入到另一个对象的属性。

value = MyComputer.MyDisk.VolumeName

以下示例演示如何使用数组下标表示法访问属性。

valueOfElement = MyDisk.MyArrayProperty(3)

下面的 VBScript 代码示例演示如何将输入参数的实例生成到 Win32_Process 类中的 Create 方法作为 SWbemObject,填充输入属性,然后使用 SWbemServices.ExecMethod 执行 Create 方法。

SWbemObject.Methods_ 属性返回 Win32_Process 方法的 SWbemMethodSet 集合。 方法集的成员是 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 编写脚本