SWbemSecurity.ImpersonationLevel-Eigenschaft
Die Eigenschaft ImpersonationLevel ist eine ganze Zahl, die die COM-Identitätswechselebene definiert, die diesem Objekt zugewiesen ist. Diese Einstellung bestimmt, ob Prozesse im Besitz der Windows-Verwaltungsinstrumentation (WMI) Ihre Sicherheitsanmeldeinformationen erkennen oder verwenden können, wenn andere Prozesse aufgerufen werden. Weitere Informationen zu Identitätswechselebenen finden Sie unter Festlegen der Client_Application_Process-Sicherheit.
Wenn Sie die Identitätswechselebene nicht speziell in einem Moniker oder durch Festlegen der Eigenschaft SWBemSecurity.ImpersonationLevel für ein sicherungsfähiges Objekt festlegen, legt WMI die Standardidentitätswechselebene auf den im Registrierungsschlüssel der Standardidentitätswechselebene angegebenen Wert fest. Wenn diese Einstellung nicht ausreicht, bedient der Anbieter Ihre Anforderung nicht, und der Aufruf der WMI-API kann mit dem Fehlercode wbemErrAccessDenied (2147749891/0x80041003) fehlschlagen.
Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skripterstellungs-API.
Dies ist eine Eigenschaft mit Lese- und Schreibzugriff.
Syntax
SWbemSecurity.ImpersonationLevel As Integer
Eigenschaftswert
Bemerkungen
Als DCOM-Identitätswechselebene kann diese Eigenschaft auf einen der folgenden Werte festgelegt werden:
Wert | BESCHREIBUNG |
---|---|
Anonym | Verbirgt die Anmeldeinformationen des Aufrufers. WMI unterstützt diese Identitätswechselebene nicht. Wenn ein Skript „impersonationLevel=Anonymous“ angibt, aktualisiert WMI die Identitätswechselebene automatisch auf „Identify“. Dies ist jedoch in gewisser Weise eine sinnlose Übung, da Skripts, die die Ebene „Identify“ verwenden, mit einiger Wahrscheinlichkeit fehlschlagen. |
Identify | Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers abzufragen. Bei Skripts, die diese Identitätswechselebene verwenden, treten wahrscheinlich Fehler auf. Mit der Ebene „Identify“ können Sie in der Regel nur Zugriffssteuerungslisten überprüfen. Sie können keine Skripts für Remotecomputer mit „Identity“ ausführen. |
Impersonate | Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers zu verwenden. Es wird empfohlen, mit WMI-Skripts diese Identitätswechselebene zu verwenden. Wenn Sie dies tun, verwendet das WMI-Skript Ihre Benutzeranmeldeinformationen. Dadurch können alle Aufgaben ausgeführt werden, die Sie ausführen können. |
Delegat | Ermöglicht es Objekten, anderen Objekten die Verwendung der Anmeldeinformationen des Aufrufers zu gestatten. Die Delegierung ermöglicht einem Skript die Verwendung Ihrer Anmeldeinformationen auf einem Remotecomputer, und diesem Remotecomputer wiederum, Ihre Anmeldeinformationen auf einem weiteren Remotecomputer zu verwenden. Sie können diese Identitätswechselebene zwar in WMI-Skripts verwenden, sollten dies aber nur bei Bedarf tun, da dies ein Sicherheitsrisiko darstellen kann. Sie können die Identitätswechselebene „Delegate“ nicht verwenden, es sei denn, alle an der Transaktion beteiligten Benutzer- und Computerkonten wurden in Active Directory als „Für Delegierungszwecke vertraut“ markiert. Dies trägt dazu bei, die Sicherheitsrisiken zu minimieren. Auch wenn ein Remotecomputer Ihre Anmeldeinformationen verwenden kann, ist dies nur möglich, wenn sowohl er als auch alle anderen an der Transaktion beteiligten Computer für die Delegierung vertrauenswürdig sind. |
Wie bereits erwähnt, werden Ihre Anmeldeinformationen beim Identitätswechselmodus „Anonymous“ ausgeblendet, und der Modus „Identify“ ermöglicht einem Remoteobjekt, Ihre Anmeldeinformationen abzufragen, aber das Remoteobjekt kann nicht die Identität Ihres Sicherheitskontexts annehmen. (Mit anderen Worten: Obwohl das Remoteobjekt weiß, wer Sie sind, kann es nicht „so tun“, als ob es Sie wäre.) WMI-Skripts, die mithilfe einer dieser beiden Einstellungen auf Remotecomputer zugreifen, schlagen in der Regel fehl. Die meisten Skripts, die auf dem lokalen Computer mit einer dieser beiden Einstellungen ausgeführt werden, schlagen tatsächlich ebenfalls fehl.
Der Identitätswechsel ermöglicht es dem WMI-Remotedienst, Ihren Sicherheitskontext zum Ausführen des angeforderten Vorgangs zu verwenden. Eine WMI-Remoteanforderung, die die Identitätswechseleinstellung verwendet, ist in der Regel erfolgreich, sofern Ihre Anmeldeinformationen über ausreichende Berechtigungen zum Ausführen des beabsichtigten Vorgangs verfügen. Mit anderen Worten: Sie können WMI nicht verwenden, um eine Aktion (remote oder anderweitig) auszuführen, für die Sie außerhalb von WMI nicht berechtigt sind.
Wenn Sie „impersonationLevel“ auf „Delegate“ festlegen, kann der WMI-Remotedienst Ihre Anmeldeinformationen an andere Objekte übergeben und wird im Allgemeinen als Sicherheitsrisiko betrachtet.
Sie können die Identitätswechselebene eines SWbemServices-, SWbemObject-, SWbemObjectSet-, SWbemObjectPath- und SwbemLocator-Objekts festlegen, indem Sie die Eigenschaft ImpersonationLevel auf den gewünschten Wert festlegen. Das folgende Beispiel zeigt, wie Sie die Identitätswechselebene für ein SWbemObject-Objekt festlegen:
objinstance.Security_.ImpersonationLevel = _
wbemImpersonationLevelImpersonate
Sie können Identitätswechselebenen auch als Teil eines Monikers angeben. Im folgenden Beispiel werden die Authentifizierungsebene und die Identitätswechselebene festgelegt, und es wird eine Instanz von Win32_Service abgerufen.
Set objinst = GetObject("WinMgmts:{impersonationLevel=impersonate,"& _
"authenticationLevel=pktPrivacy}"& _
"!root/cimv2:Win32_service='ALERTER'")
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista |
Unterstützte Mindestversion (Server) |
Windows Server 2008 |
Typbibliothek |
|
DLL |
|
CLSID |
CLSID_SWbemSecurity |
IID |
IID_ISWbemSecurity |