建構識別字串
Moniker 字串格式與標準 WMI 物件路徑的字串格式類似。 如需詳細資訊,請參閱 WMI 物件路徑需求。
綽號包含以下部分:
- 前置詞 WinMgmts: (必要)。 前綴會指示 Windows 腳本主機(WSH)下列程式代碼將會使用 Scripting API 物件。
- 安全性設定元件 (選擇性)
- WMI 物件路徑元件 (選擇性)
您無法在 WMI Moniker 字串中指定密碼。 如果您在連線到 WMI 時必須變更密碼(strPassword 參數)或驗證類型(strAuthority 參數),請呼叫 SWbemLocator.ConnectServer。 請注意,您只能在與遠端電腦連線時指定密碼和權限。 嘗試在本機電腦運行的腳本中設定這些參數會導致錯誤。 如需何時使用安全性設定和物件路徑元件的詳細資訊,請參閱 WMI 安全性設定。
下列 Moniker 會指定代表命名空間 root\default 的 SWbemServices 物件,啟用模擬並且啟用 wbemPrivilegeDebug (SeDebugPrivilege) 許可權,且停用 wbemPrivilegeSecurity (SeSecurityPrivilege) 許可權。
"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"
注意
所有字串常值都不區分大小寫。
許可權上的 “!” 前置詞表示要停用許可權;此前置詞的遺漏表示要啟用許可權。
當在計算機名稱或命名空間之前方括弧中指定安全性設定時,會在計算機名稱或命名空間上使用 “!” 前置詞。
指定物件路徑時,允許下列預設指派:
您可以從物件路徑省略計算機名稱,在此情況下會假設本機計算機名稱。
命名空間可以從物件路徑省略,在此情況下會假設預設命名空間。
這是由登錄機碼的值來決定 HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\腳本\預設命名空間,預設值為 “Root\CIMv2”。
您也可以指定類別或實例,在此情況下,傳回的物件是 WMI 物件,而不是服務物件。
注意
如果指定類別或實例,則您無法在指定計算機計算機名稱時省略命名空間。
如需參考用於 WMI 名稱字符串的 Privilege 常數,請參閱 Privilege 常數和「Scripting short name」描述符。
有效的Moniker字串
下列範例顯示有效的Moniker字串。
下列識別名用於識別本機電腦上的預設命名空間。 會傳回 SWbemServices 物件。
WinMgmts:
下列名稱會識別電腦 myServer 上的預設命名空間。 會傳回 SWbemServices 物件。
"WinMgmts://myServer"
下列識別符號將識別 myServer 電腦上的 root\cimv2 命名空間。 會傳回 SWbemServices 物件。
"WinMgmts://myServer/root/cimv2"
下列識別碼用於識別本地伺服器上的 root\cimv2 命名空間。 會傳回 SWbemServices 物件。
"WinMgmts:root/cimv2"
以下名稱物件將識別 myServer 伺服器上 root\cimv2 命名空間中的 Win32_LogicalDisk 類別。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" _
& "!//myServer/root/cimv2:Win32_LogicalDisk"
下列識別名識別本機伺服器上 root\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 伺服器上 root\cimv2 命名空間中的 Win32_LogicalDisk 實例 ,該實例對應於磁碟驅動器 C。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!//myServer/root/cimv2:Win32_LogicalDisk="C:""
下列名稱識別對應至本機伺服器上的 root\cimv2 命名空間中磁碟驅動器 C 的 Win32_LogicalDisk 實例。 會傳回一個 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk="C:""
下列名稱識別符會識別在本地伺服器預設命名空間中,對應於磁碟機 C 的 Win32_LogicalDisk 的 實例。 傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk="C:""
下列Moniker會將模擬層級設定為模擬,並設定SE_DEBUG許可權。
"WinMgmts:{impersonationLevel=impersonate, (Debug)}"
下列識別項將模擬層級設定為模擬,並設置SE_DEBUG權限。 它也會撤銷SE_SHUTDOWN許可權。
"WinMgmts:{impersonate,(Debug,!Shutdown)}"
下列Moniker會從root\wmi 命名空間擷取 myclass 類別的美式英文當地語系化描述。
"WinMgmts:[locale=ms_409]!root/wmi:myclass"
以下Moniker會使用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中結合安全性和地區設定參數。
'*****************************************************************
' Name : Moniker.vbs
'
' Purpose : This example shows how to set various
' parameters in a moniker.
'****************************************************************
Set 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
注意
雖然 monikers 提供了更直接的物件存取方式,但在某些情況下,重複使用 monikers 可能不及明確連接至 WMI 的程式碼來得有效率。 如果需要考慮應用程式效能,建議考慮使用替代機制。
在 HTML 頁面中執行內嵌腳本時,無法使用 VBScript 提供的 GetObject 函式來更新或設定數據,因為 Microsoft internet Explorer 會因為安全性考慮而拒絕使用此呼叫。