SWbemServices.Get 方法

SWbemServices 对象的 Get 方法基于对象路径检索类定义或实例的对象。 此方法仅从与当前 SWbemServices 对象关联的命名空间中检索对象。

该方法在同步模式下调用。 有关详细信息,请参阅 调用方法

有关此语法的说明,请参阅 脚本 API 的文档约定

语法

objWbemObject = .Get( _
  [ ByVal strObjectPath ], _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

参数

strObjectPath [可选]

包含要检索的对象的对象路径的字符串。 如果此值为空,则返回的空对象可能成为新类。 有关详细信息,请参阅 描述 WMI 对象的位置

iFlags [可选]

确定查询行为的整数。 此参数可以接受以下值。

wbemFlagUseAmendedQualifiers (131072 (0x20000) )

导致 WMI 使用基类定义返回类修正数据。 有关修改的限定符的详细信息,请参阅 本地化 WMI 类信息

objWbemNamedValueSet [可选]

通常,这是未定义的。 否则,这是一个 SWbemNamedValueSet 对象,其元素表示可供为请求提供服务的提供程序使用的上下文信息。 支持或需要此类信息的提供程序必须记录已识别的值名称、值的数据类型、允许的值和语义。

返回值

如果成功,此方法将返回一个表示所请求对象的 SWbemObject 对象。

错误代码

完成 Get 方法后,Err 对象可能包含以下列表中的错误代码之一。

wbemErrAccessDenied - 2147749891 (0x80041003)

当前用户无权访问对象。

wbemErrFailed - 2147749889 (0x80041001)

错误。

wbemErrInvalidParameter - 2147749896 (0x80041008)

指定的参数无效。

wbemErrInvalidObjectPath - 2147749946 (0x8004103A)

指定的路径无效。

wbemErrNotFound - 2147749890 (0x80041002)

找不到请求的对象。

wbemErrOutOfMemory - 2147749894 (0x80041006)

没有足够的内存来完成操作。

注解

ExecQueryInstancesOf 方法不同,Get 方法始终返回表示 WMI 托管资源的特定实例的 SWbemObject 。 若要使用 Get 方法获取 WMI 托管资源的特定实例,必须告知 Get 实例通过传递对象路径来检索该实例,如以下脚本所示。

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objSWbemObject = objSWbemServices.Get("Win32_Service.Name='Messenger'")
Wscript.Echo "Name:         " & objSWbemObject.Name        & vbCrLf & _
             "Display Name: " & objSWbemObject.DisplayName & vbCrLf & _
             "Start Mode:   " & objSWbemObject.StartMode   & vbCrLf & _
             "State:        " & objSWbemObject.State

可以使用此方法获取 单一实例 对象,例如 __CIMOMIdentification,其中包含有关正在运行的 WMI 安装的版本信息。

可以使用查看工具(如 CIM Studio )检查存储库,以验证新类和实例是否显示。 有关从存储库中删除类和实例的示例,请参阅 SWbemServices.DeleteSWbemObject.Delete_

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
标头
Wbemdisp.h
类型库
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

另请参阅

SWbemServices

SWbemObject