Propriété SWbemSecurity.ImpersonationLevel
La propriété ImpersonationLevel est un entier qui définit le niveau d’emprunt d’identité COM affecté à cet objet. Ce paramètre détermine si les processus appartenant à Windows Management Instrumentation (WMI) peuvent détecter ou utiliser vos informations d’identification de sécurité lors d’appels à d’autres processus. Pour plus d’informations sur les niveaux d’emprunt d’identités, consultez Définition du niveau de sécurité Client_Application_Process.
Si vous ne définissez pas le niveau d’emprunt d’identité spécifiquement dans un moniker ou en définissant la propriété SWBemSecurity.ImpersonationLevel sur un objet sécurisable, WMI définit le niveau d’emprunt d’identité par défaut sur la valeur spécifiée dans la clé de registre de niveau d’emprunt d’identité par défaut. Si ce paramètre n’est pas suffisant, le fournisseur ne traite pas votre requête et l’appel à l’API WMI peut échouer avec un code d’erreur wbemErrAccessDenied (2147749891/0x80041003).
Pour obtenir une explication de cette syntaxe, consultez Conventions de document pour l’API Scripting.
Cette propriété est en lecture/écriture.
Syntaxe
SWbemSecurity.ImpersonationLevel As Integer
Valeur de la propriété
Notes
En tant que niveau d’emprunt d’identité DCOM, cette propriété peut être définie sur l’une des valeurs suivantes :
Valeur | Description |
---|---|
Anonyme | Masque les informations d'identification de l'appelant. WMI ne prend pas en charge ce niveau d’emprunt d’identité. Si un script spécifie impersonationLevel=Anonymous, WMI met à niveau silencieusement le niveau d’emprunt d’identité vers Identifier. Toutefois, il s’agit d’un exercice sans signification, car les scripts utilisant le niveau Identifier sont susceptibles d’échouer. |
Identifier | Permet aux objets d’interroger les informations d’identification de l’appelant. Les scripts utilisant ce niveau d’emprunt d’identité sont susceptibles d’échouer. Le niveau Identifier vous permet généralement de ne pas faire plus que vérifier les listes de contrôle d’accès. Vous ne pourrez pas exécuter de scripts sur des ordinateurs distants à l’aide de l’option Identifier. |
Impersonate | Permet aux objets d’utiliser les informations d’identification de l’appelant. Il est recommandé d’utiliser ce niveau d’emprunt d’identité avec des scripts WMI. Dans ce cas, le script WMI utilise vos informations d’identification utilisateur. Par conséquent, il sera en mesure d’effectuer toutes les tâches que vous êtes en mesure d’effectuer. |
Délégué | Permet aux objets d’autoriser d’autres objets à utiliser les informations d’identification de l’appelant. La délégation permet à un script d’utiliser vos informations d’identification sur un ordinateur distant, puis à cet ordinateur distant d’utiliser vos informations d’identification sur un autre ordinateur distant. Bien que vous puissiez utiliser ce niveau d’emprunt d’identité dans les scripts WMI, vous ne devez le faire que si nécessaire, car cela peut poser un risque pour la sécurité. Vous ne pouvez pas utiliser le niveau d’emprunt d’identité délégué, sauf si tous les comptes d’utilisateur et comptes d’ordinateur impliqués dans la transaction ont tous été marqués comme approuvés pour la délégation dans Active Directory. Cela permet de réduire les risques de sécurité. Bien qu’un ordinateur distant puisse utiliser vos informations d’identification, il ne peut le faire que si lui-même et les autres ordinateurs impliqués dans la transaction sont approuvés pour la délégation. |
Comme indiqué, l’emprunt d’identité anonyme masque vos informations d’identification et l’option Identifier permet à un objet distant d’interroger vos informations d’identification, mais l’objet distant ne peut pas emprunter l’identité de votre contexte de sécurité. (En d’autres termes, bien que l’objet distant sache qui vous êtes, il ne peut pas « faire semblant » d’être vous.) Les scripts WMI qui accèdent aux ordinateurs distants à l’aide de l’un de ces deux paramètres échouent généralement. En fait, la plupart des scripts exécutés sur l’ordinateur local à l’aide de l’un de ces deux paramètres échouent également.
L’emprunt d’identité permet au service WMI distant d’utiliser votre contexte de sécurité pour effectuer l’opération demandée. Une requête WMI distante qui utilise le paramètre Emprunt d’identité réussit généralement, à condition que vos informations d’identification disposent de privilèges suffisants pour effectuer l’opération prévue. En d’autres termes, vous ne pouvez pas utiliser WMI pour effectuer une action (à distance ou autre) que vous n’êtes pas autorisé à effectuer en dehors de WMI.
Définir impersonationLevel sur Déléguer permet au service WMI distant de transmettre vos informations d’identification à d’autres objets et est généralement considéré comme un risque de sécurité.
Vous pouvez définir le niveau d’emprunt d’identité des objets SWbemServices, SWbemObject, SWbemObjectSet, SWbemObjectPath et SwbemLocator en définissant la propriété ImpersonationLevel sur la valeur souhaitée. L’exemple suivant montre comment définir le niveau d’emprunt d’identité pour un objet SwbemObject :
objinstance.Security_.ImpersonationLevel = _
wbemImpersonationLevelImpersonate
Vous pouvez également spécifier des niveaux d’emprunt d’identité dans le cadre d’un moniker. L’exemple suivant définit le niveau d’authentification et le niveau d’emprunt d’identité, puis récupère une instance de Win32_Service.
Set objinst = GetObject("WinMgmts:{impersonationLevel=impersonate,"& _
"authenticationLevel=pktPrivacy}"& _
"!root/cimv2:Win32_service='ALERTER'")
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista |
Serveur minimal pris en charge |
Windows Server 2008 |
Bibliothèque de types |
|
DLL |
|
CLSID |
CLSID_SWbemSecurity |
IID |
IID_ISWbemSecurity |