使用 WMI 的脚本 API 检索已修正的类

如果使用“适用于 WMI 的脚本 API”来检索或存储本地化类信息,请将区域设置指定为名字对象的一部分。 或者,可以将 strLocale 参数中的区域设置名称提供给 SWbemLocator.ConnectServer 方法。 读取或写入修改后的类时,请通过将 wbemFlagUseAmendedQualifiers 指定为所调用方法的 iFlags 参数的标志来指示要使用本地化类定义。 对于 PowerShell,可以使用 Get-WmiObject 上的 -locale 参数来指定区域设置。

下面的代码示例演示如何使用 WMI 脚本名字对象或 -locale 参数检索本地化类。

Set objwbemobject = GetObject("winmgmts:[locale=ms_409]!root/test:myclass")

Get-WmiObject myclass -Namespace "root\test" -Locale "ms_409"

下面的代码示例演示如何设置区域设置参数并使用 wbemFlagUseAmendedQualifiers 标志。

Set Locator = CreateObject("WbemScripting.SWbemLocator")
Set service = Locator.ConnectServer(,"root\test", , , "ms_409")
Set objwbemobject = service.Get("myclass", wbemFlagUseAmendedQualifiers)

注意

由于对接收器的回调可能不会以客户端所需的相同身份验证级别返回,因此建议使用半同步而不是异步通信。 有关详细信息,请参阅调用方法

 

下表列出了接受 wbemFlagUseAmendedQualifiers 标志的方法。

同步方法 异步方法
SWbemServices.SubclassesOf SWbemServices.SubclassesOfAsync
SWbemObject.Subclasses_ SWbemObject.SubclassesAsync_
SWbemServices.InstancesOf SWbemServices.InstancesOfAsync
SWbemObject.Instances_ SWbemObject.InstancesAsync_
SWbemServices.ExecQuery SWbemServices.ExecQueryAsync
SWbemServices.Get SWbemServices.GetAsync
SWbemObject.Put_ SWbemObject.PutAsync_
SWbemServices.ReferencesTo SWbemServices.ReferencesToAsync
SWbemObject.References_ SWbemObject.ReferencesAsync_
SWbemServices.AssociatorsOf SWbemServices.AssociatorsOfAsync
SWbemObject.Associators_ SWbemObject.AssociatorsAsync_