SWbemServices.Get 方法
SWbemServices 对象的 Get 方法根据作为类定义或实例的对象的路径来检索对象。 此方法仅从与当前 SWbemServices 对象关联的命名空间中检索对象。
此方法在同步模式下调用。 有关详细信息,请参阅调用方法。
有关此语法的说明,请参阅脚本 API 的文档约定。
语法
objWbemObject = .Get( _
[ ByVal strObjectPath ], _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ] _
)
parameters
-
strObjectPath [optional]
-
包含要检索的对象的对象路径的字符串。 如果此值为空,则返回的空对象可能成为一个新类。 有关详细信息,请参阅描述 WMI 对象的位置。
-
iFlags [optional]
-
确定查询行为的整数。 此参数可接受以下值。
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
使 WMI 返回类修改数据以及基类定义。 有关已修正的限定符的详细信息,请参阅本地化 WMI 类信息。
objWbemNamedValueSet [optional]
通常,此参数未定义。 如果已定义,此参数是一个 SWbemNamedValueSet 对象,其元素表示可供提供请求服务的提供程序使用的上下文信息。 支持或需要此类信息的提供程序必须记录已识别的值名称、值数据类型、允许的值和语义。
返回值
如果成功,此方法将返回表示所请求对象的 SWbemObject 对象。
错误代码
Get 方法完成后,Err 对象可能包含以下列表中的错误代码之一。
-
wbemErrAccessDenied - 2147749891 (0x80041003)
-
当前用户无权访问对象。
-
wbemErrFailed - 2147749889 (0x80041001)
-
错误。
-
wbemErrInvalidParameter - 2147749896 (0x80041008)
-
指定的参数无效。
-
wbemErrInvalidObjectPath - 2147749946 (0x8004103A)
-
指定的路径无效。
-
wbemErrNotFound - 2147749890 (0x80041002)
-
找不到所请求的对象。
-
wbemErrOutOfMemory - 2147749894 (0x80041006)
-
内存不足,无法完成此操作。
备注
与 ExecQuery 和 InstancesOf 方法不同,Get 方法始终返回表示 WMI 托管资源的特定实例的 SWbemObject。 要使用 Get 方法获取 WMI 托管资源的特定实例,必须向 Get 方法传递对象路径来告知 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
可使用此方法获取 singleton 对象,例如 __CIMOMIdentification,其中包含有关正在运行的 WMI 安装的版本信息。
可使用 CIM Studio 等查看工具检查存储库,以验证新的类和实例是否显示。 有关从存储库中删除类和实例的示例,请参阅 SWbemServices.Delete 或 SWbemObject.Delete_。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
标头 |
|
类型库 |
|
DLL |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |