建構 Moniker 字串
Moniker 字串格式類似于標準 WMI 物件路徑的格式。 如需詳細資訊,請參閱 WMI 物件路徑需求。
Moniker 具有下列部分:
- 前置詞 WinMgmts: (強制) 。 前置詞會指示 Windows 腳本主機 (WSH) 下列程式碼將使用 腳本 API 物件。
- 選擇性 (安全性設定元件)
- 選擇性 (WMI 物件路徑元件)
您無法在 WMI Moniker 字串中指定密碼。 如果您必須在連線到 WMI 時變更密碼 (strPassword 參數) 或驗證類型 (strAuthority 參數) ,請呼叫 SWbemLocator.ConnectServer。 請注意,您只能在與遠端電腦的連線中指定密碼和授權單位。 嘗試在本機電腦上執行的腳本中設定這些專案會導致錯誤。 如需何時使用安全性設定和物件路徑元件的詳細資訊,請參閱 WMI 安全性設定。
下列 Moniker 會指定 SWbemServices 物件,此物件代表命名空間 root\default,其中會模擬 on 和 wbemPrivilegeDebug (SeDebugPrivilege) 許可權啟用,而 wbemPrivilegeSecurity (SeSecurityPrivilege) 許可權已停用。
"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"
注意
所有字串常值不區分大小寫。
許可權上的 「!」 前置詞表示要停用許可權;省略此前置詞表示要啟用許可權。
在電腦名稱稱或命名空間之前以方括弧指定安全性設定時,會在電腦名稱稱或命名空間上使用 「!」 前置詞。
指定物件路徑時,允許下列預設指派:
您可以從物件路徑省略電腦名稱稱,在此情況下會假設本機電腦名稱稱。
命名空間可以從物件路徑中省略,在此情況下會假設預設命名空間。
這是由軟體\Microsoft\WBEM\腳本\預設命名空間HKEY_LOCAL_MACHINE\ 登錄機碼的值來決定,預設值為 「Root\CIMv2」。
您也可以指定類別或實例,在此情況下,傳回的物件是 WMI 物件,而不是 services 物件。
注意
如果指定類別或實例,則您無法在指定電腦電腦名稱稱時省略命名空間。
如需 WMI Moniker 字串上所用許可權常數的參考,請參閱 Privilege Constants和「Scripting short name」 描述元。
有效的 Moniker 字串
下列範例顯示有效的 Moniker 字串。
下列 Moniker 會識別本機電腦上的預設命名空間。 會傳回 SWbemServices 物件。
WinMgmts:
下列 Moniker 會識別 myServer 電腦上的預設命名空間。 會傳回 SWbemServices 物件。
"WinMgmts://myServer"
下列 Moniker 會識別 myServer 電腦上的 root\cimv2 命名空間。 會傳回 SWbemServices 物件。
"WinMgmts://myServer/root/cimv2"
下列 Moniker 會識別本機伺服器上的 root\cimv2 命名空間。 會傳回 SWbemServices 物件。
"WinMgmts:root/cimv2"
下列 Moniker 會識別 myServer 伺服器上 root\cimv2 命名空間中的 Win32_LogicalDisk 類別。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" _
& "!//myServer/root/cimv2:Win32_LogicalDisk"
下列 Moniker 會識別本機伺服器上 root\cimv2 命名空間中的 Win32_LogicalDisk 類別。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk"
下列 Moniker 會識別本機伺服器上預設命名空間中的 Win32_LogicalDisk 類別。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk"
下列 Moniker 會識別對應至本機伺服器上預設腳本命名空間中 ,Win32_LogicalDisk 磁片磁碟機 C: 的實例。 會傳回 SWbemObject 物件。 腳本的預設命名空間是由 WMI 控制項中指定的預設命名空間組態設定所決定。 如需詳細資訊,請參閱 使用 WMI 控制項設定命名空間安全性。
"WinMgmts::Win32_LogicalDisk='C:'"
下列 Moniker 會識別對應至 myServer 伺服器上的 root\cimv2 命名空間中 ,對應 至磁片磁碟機 C 的Win32_LogicalDisk實例。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!//myServer/root/cimv2:Win32_LogicalDisk="C:""
下列 Moniker 會識別對應至本機伺服器上 root\cimv2 命名空間中磁片磁碟機 C 的 Win32_LogicalDisk 實例。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk="C:""
下列 Moniker 會識別本機伺服器上預設命名空間中對應至磁片磁碟機 C 的 Win32_LogicalDisk 實例。 會傳回 SWbemObject 物件。
"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk="C:""
下列 Moniker 會將模擬層級設定為模擬,並設定SE_DEBUG許可權。
"WinMgmts:{impersonationLevel=impersonate, (Debug)}"
下列 Moniker 會將模擬層級設定為模擬,並設定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=@"
下列 Moniker 會使用 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
注意
雖然 Moniker 提供更直接的物件存取權,但在某些情況下,重複使用 Moniker 可能會比明確連接到 WMI 的對等程式碼更有效率。 如果考慮應用程式效能,請考慮使用替代機制。
由於 Microsoft Internet Explorer 基於安全性考慮,無法使用 VBScript 提供的 GetObject 函式來更新或設定內嵌在 HTML 頁面中的腳本時更新或設定資料。