勇芳软件工作室.汉化:  Windows Management Instrumentation > Creating WMI Clients > Creating a WMI Application or Script > Creating a WMI Script >

Constructing a Moniker String

Previous pageReturn to chapter overviewNext page

标记字符串格式与标准WMI对象路径类似。有关详细信息,请参阅WMI对象路径要求.

 

绰号有以下几个部分:

 

·前缀WinMgmts:(必填)
·安全设置组件(可选)
·WMI对象路径组件(可选)

 

您不能在WMI标记字符串中指定密码。如果连接到WMI时必须更改密码(strPassword参数)或验证类型(strAuthorityen参数),请调用SWbemLocator.ConnectServer.请注意,只能在与远程计算机的连接中指定密码和权限。尝试在本地计算机上运行的脚本中设置它们会导致错误。

 

以下昵称指定表示命名空间root \\ default的SWbemServices对象,并启用了模拟,启用了wbemPrivilegeDebug(SeDebugPrivilege)特权,并禁用了wbemPrivilegeSecurity(SeSecurityPrivilege)特权。

 

"winmgmts:{impersonationLevel=impersonate," _

  & "(debug,!security)}!root\default"

 

注意所有字符串文字都不区分大小写。

 

“!”特权前缀表示该特权被禁用;该前缀的省略意味着该权限将被启用。

 

“!”在安全设置在计算机名称或命名空间之前的方括号中指定时,在计算机名称或命名空间上使用前缀。

 

指定对象路径时,允许使用以下默认分配:

 

·计算机名称可以从对象路径中省略,在这种情况下,假定本机名称。

 

·命名空间可以从对象路径中省略,在这种情况下,假定使用默认命名空间。

 

这取决于注册表项HKEY_LOCAL_MACHINE \\ Software \\ Microsoft \\ WBEM \\ Scripting \\ Default Namespace的值,Windows XP和Windows 2000的默认值为root \\ cimv2。

 

·也可以指定类或实例,在这种情况下,返回的对象是WMI对象而不是服务对象。

 

注意如果指定了类或实例,则在指定计算机名称时不能忽略命名空间。

 

有效的Moniker Strings

 

以下示例显示有效的标记字符串。

 

以下标记在本地计算机上标识默认命名空间。返回一个SWbemServices对象。

 

WinMgmts:

 

以下标记在计算机myServer上标识默认名称空间。返回一个SWbemServices对象。

 

"WinMgmts://myServer"

 

以下标记在myServer计算机上标识root \\ cimv2命名空间。返回一个SWbemServices对象。

 

"WinMgmts://myServer/root/cimv2"

 

以下标记在本地服务器上标识根\\ cimv2命名空间。返回一个SWbemServices对象。

 

"WinMgmts:root/cimv2"

 

以下标记在myServer服务器上的根\\ cimv2命名空间中标识Win32_LogicalDisk类。返回一个SWbemObject对象。

 

"WinMgmts:{impersonationLevel=impersonate}" _

  & "!//myServer/root/cimv2:Win32_LogicalDisk"

 

以下标记在本地服务器上的根\\ cimv2命名空间中标识Win32_LogicalDisk类。返回一个SWbemObject对象。

 

"WinMgmts:{impersonationLevel=impersonate}" _

  & "!root/cimv2:Win32_LogicalDisk"

 

以下标记在本地服务器上的默认命名空间中标识Win32_LogicalDisk类。返回一个SWbemObject对象。

 

"WinMgmts:{impersonationLevel=impersonate}" _

  & "!Win32_LogicalDisk"

 

以下标记在本地服务器的默认脚本命名空间中标识对应于驱动器C的Win32_LogicalDisk的实例。返回一个SWbemObject对象。脚本的默认命名空间由WMI控件中指定的默认命名空间配置设置确定。有关详细信息,请参阅使用WMI控件设置命名空间安全性.

 

"WinMgmts::Win32_LogicalDisk='C:'"

 

以下标记在myServer服务器的根\\ cimv2命名空间中标识对应于驱动器C的Win32_LogicalDisk的实例。返回一个SWbemObject对象。

 

"WinMgmts:{impersonationLevel=impersonate}" _

  & "!//myServer/root/cimv2:Win32_LogicalDisk="C:""

 

以下标记在本地服务器的根\\ cimv2命名空间中标识对应于驱动器C的Win32_LogicalDisk的实例。返回一个SWbemObject对象。

 

"WinMgmts:{impersonationLevel=impersonate}" _

  & "!root/cimv2:Win32_LogicalDisk="C:""

 

以下标记在本地服务器的默认命名空间中标识对应于驱动器C的Win32_LogicalDisk的实例。返回一个SWbemObject对象。

 

"WinMgmts:{impersonationLevel=impersonate}" _

  & "!Win32_LogicalDisk="C:""

 

以下标记设置模拟级别以模拟并设置Microsoft Windows NT / Windows 2000 SE_DEBUG权限。

 

"WinMgmts:{impersonationLevel=impersonate, (Debug)}"

 

以下标记设置模拟级别以假冒并设置Windows NT / Windows 2000 SE_DEBUG权限。它还会撤销Windows NT / Windows 2000 SE_SHUTDOWN特权。

 

"WinMgmts:{impersonate,(Debug,!Shutdown)}"

 

以下标记从root \\ wmi命名空间中检索myclass类的美式英文本地化描述。

 

"WinMgmts:[locale=ms_409]!root/wmi:myclass"

 

以下标记器使用主体mydomain \\ server请求Kerberos身份验证。

 

"Winmgmts:{impersonationLevel=delegate," _

  & "authority=kerberos:mydomain\server}" _

  & "!//myserver/root/default:__cimomidentification=@"

 

以下标记使用mydomain域请求NTLM身份验证。

 

"Winmgmts:{impersonationLevel=impersonate," & _

  "authority=ntlmdomain:mydomain} " & _

  "!//myserver/root/default:__cimomidentification=@

 

以下VBScript代码示例显示了如何将安全性和区域设置参数组合在一个标记中。

 

'*************************************************************

' 姓名  : Moniker.vbs

'

' 目的: 此示例显示如何设置各种

绰号中的'       参数。

'*************************************************************

 

设置myobj = GetObject(“WINMGMTS:”_

     &“{impersonationLevel = impersonate”,_ _

     &“authenticationLevel = pktPrivacy”,_ _

     &“authority = ntlmdomain:mydomain”_

     &“(Debug,!Shutdown)}”_

          & "[locale=ms_409]" _

     &“!\\\\ User1 \\ ROOT \\ CIMV2:Win32_LogicalDisk =”“C:”“”)

 

wscript.echo“File system =”&myobj.filesystem

 

尽管昵称提供对对象的更直接访问,但在某些情况下,重复使用昵称可能不如与明确连接到WMI的等效代码有效。如果考虑应用程序性能,请考虑使用其他机制。

 

由于安全性原因,Microsoft Internet Explorer拒绝使用此呼叫,因此在HTML页面中运行脚本时,无法使用VBScript和JScript提供的GetObject函数。