操作类和实例信息

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 编写脚本