SWbemSecurity.ImpersonationLevel 屬性
ImpersonationLevel屬性是一個整數,定義指派給這個物件的 COM 模擬層級。 此設定可判斷 Windows Management Instrumentation 所擁有的進程是否 (WMI) 在呼叫其他進程時偵測或使用您的安全性認證。 如需模擬層級的詳細資訊,請參閱 設定Client_Application_Process安全性。
如果您未特別在 Moniker 中設定模擬層級,或在安全性實體物件上設定 SWBemSecurity.ImpersonationLevel 屬性,WMI 會將預設模擬層級設定為 預設模擬層級登錄機碼中指定的值。 如果此設定不夠,提供者不會為您的要求提供服務,而 WMI API 的呼叫可能會失敗,並出現 wbemErrAccessDenied (2147749891/0x80041003) 的錯誤碼。
如需此語法的說明,請參閱 腳本 API 的檔慣例。
這是可讀寫的屬性。
Syntax
SWbemSecurity.ImpersonationLevel As Integer
屬性值
備註
作為 DCOM 模擬層級,此屬性可以設定為下列其中一個值:
值 | 描述 |
---|---|
匿名 | 隱藏呼叫端的認證。 WMI 實際上不支援此模擬層級;如果腳本指定 impersonationLevel=Anonymous,WMI 會以無訊息方式將模擬層級升級為 [識別]。 不過,這在某些方面是無意義的練習,因為使用識別層級的腳本可能會失敗。 |
識別 | 可讓 物件查詢呼叫端的認證。 使用此模擬層級的腳本可能會失敗;[識別] 層級通常可讓您執行檢查存取控制清單以外的動作。 您將無法使用 [識別] 對遠端電腦執行腳本。 |
Impersonate | 讓物件能夠使用呼叫端的認證。 建議您搭配 WMI 腳本使用此模擬層級。 當您這樣做時,WMI 腳本會使用您的使用者認證;因此,它將能夠執行任何能夠執行的工作。 |
代理人 | 讓物件允許其他物件使用呼叫端的認證。 委派可讓腳本在遠端電腦上使用您的認證,然後讓遠端電腦在另一部遠端電腦上使用該認證。 雖然您可以在 WMI 腳本內使用此模擬層級,但只有在需要時,才應該這麼做,因為它可能會造成安全性風險。 除非交易中涉及的所有使用者帳戶和電腦帳戶都標示為 Active Directory 中的委派受信任,否則您無法使用委派模擬層級。 這有助於將安全性風險降至最低。 雖然遠端電腦可以使用您的認證,但只有在它和任何涉及交易的其他電腦都信任委派時,才能這麼做。 |
如前所述,匿名模擬會隱藏您的認證,並識別允許遠端物件查詢您的認證,但遠端物件無法模擬您的安全性內容。 (換句話說,雖然遠端物件知道您是誰,但無法「假設」是您。) WMI 腳本使用這兩種設定之一存取遠端電腦的 WMI 腳本通常會失敗。 事實上,大部分腳本都會使用這兩個設定之一在本機電腦上執行,也會失敗。
模擬允許遠端 WMI 服務使用您的安全性內容來執行要求的作業。 使用模擬設定的遠端 WMI 要求通常會成功,前提是您的認證有足夠的許可權可執行預期的作業。 換句話說,您無法使用 WMI 從遠端執行動作 (,或) 您沒有在 WMI 外部執行的許可權。
將 impersonationLevel 設定為 Delegate 可讓遠端 WMI 服務將認證傳遞至其他物件,而且通常被視為安全性風險。
您可以將ImpersonationLevel屬性設定為所需的值,以設定SWbemServices、SWbemObject、SWbemObjectSet、SWbemObjectPath和SwbemLocator物件的模擬層級。 下列範例示範如何設定 SWbemObject 物件的模擬層級:
objinstance.Security_.ImpersonationLevel = _
wbemImpersonationLevelImpersonate
您也可以將模擬層級指定為 Moniker 的一部分。 下列範例會設定驗證層級和模擬層級,並擷取 Win32_Service的實例。
Set objinst = GetObject("WinMgmts:{impersonationLevel=impersonate,"& _
"authenticationLevel=pktPrivacy}"& _
"!root/cimv2:Win32_service='ALERTER'")
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
類型程式庫 |
|
DLL |
|
CLSID |
CLSID_SWbemSecurity |
IID |
IID_ISWbemSecurity |