操作类和实例信息
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 编写脚本。