Propiedad SWbemSecurity.ImpersonationLevel

La propiedad ImpersonationLevel es un entero que define el nivel de suplantación COM asignado a este objeto. Esta configuración determina si los procesos propiedad de Windows Management Instrumentation (WMI) pueden detectar o usar sus credenciales de seguridad al realizar llamadas a otros procesos. Para obtener más información sobre los niveles de suplantación, consulte Configuración de Client_Application_Process Seguridad.

Si no establece el nivel de suplantación específicamente en un moniker o estableciendo la propiedad SWBemSecurity.ImpersonationLevel en un objeto protegible, WMI establece el nivel de suplantación predeterminado en el valor especificado en la clave del Registro de nivel de suplantación predeterminada. Si esta configuración no es suficiente, el proveedor no proporciona servicio a la solicitud y la llamada a la API de WMI puede producir un error con un código de error de wbemErrAccessDenied (2147749891/0x80041003).

Para obtener una explicación de esta sintaxis, consulte Convenciones de documento para la API de scripting.

Esta propiedad es de lectura y escritura.

Sintaxis

SWbemSecurity.ImpersonationLevel As Integer

Valor de propiedad

Observaciones

Como nivel de suplantación de DCOM, esta propiedad se puede establecer en uno de los siguientes valores:

Value Descripción
Anónimo Oculta las credenciales de la persona que llama. WMI no admite realmente este nivel de suplantación; Si un script especifica suplantaciónLevel=Anonymous, WMI actualizará silenciosamente el nivel de suplantación a Identificar. Sin embargo, esto es un ejercicio sin sentido, ya que es probable que se produzca un error en los scripts que usan el nivel De identificación.
Identificar Permite a los objetos consultar las credenciales del autor de la llamada. Es probable que se produzcan errores en los scripts que usan este nivel de suplantación; El nivel De identificación normalmente le permite comprobar las listas de control de acceso. No podrá ejecutar scripts en equipos remotos mediante Identificar.
Impersonate Permite a los objetos usar las credenciales del autor de la llamada. Se recomienda usar este nivel de suplantación con scripts WMI. Al hacerlo, el script WMI usará sus credenciales de usuario; como resultado, podrá realizar cualquier tarea que pueda realizar.
Delegado Permite a los objetos permitir que otros objetos usen las credenciales del autor de la llamada. La delegación permite que un script use sus credenciales en un equipo remoto y, a continuación, permite que ese equipo remoto use sus credenciales en otro equipo remoto. Aunque puede usar este nivel de suplantación en scripts WMI, solo debe hacerlo si es necesario porque podría suponer un riesgo de seguridad.
No se puede usar el nivel de suplantación delegado a menos que todas las cuentas de usuario y cuentas de equipo implicadas en la transacción se hayan marcado como de confianza para la delegación en Active Directory. Esto ayuda a minimizar los riesgos de seguridad. Aunque un equipo remoto puede usar sus credenciales, solo puede hacerlo si tanto él como cualquier otro equipo implicado en la transacción son de confianza para la delegación.

Como se indicó, la suplantación anónima oculta las credenciales e Identificación permite que un objeto remoto consulte las credenciales, pero el objeto remoto no puede suplantar el contexto de seguridad. (En otras palabras, aunque el objeto remoto sabe quién es, no puede "fingir" ser usted). Los scripts WMI que acceden a equipos remotos mediante una de estas dos opciones generalmente producirán un error. De hecho, la mayoría de los scripts se ejecutan en el equipo local con una de estas dos configuraciones también producirá un error.

Suplantar permite al servicio WMI remoto usar el contexto de seguridad para realizar la operación solicitada. Una solicitud WMI remota que usa la configuración suplantación normalmente se realiza correctamente, siempre que las credenciales tengan privilegios suficientes para realizar la operación prevista. En otras palabras, no puede usar WMI para realizar una acción (remota o de otro modo) que no tenga permiso para realizar fuera de WMI.

Al establecer suplantaciónLevel en Delegado, el servicio WMI remoto permite pasar las credenciales a otros objetos y, por lo general, se considera un riesgo de seguridad.

Puede establecer el nivel de suplantación de un objeto SWbemServices, SWbemObject, SWbemObjectSet, SWbemObjectPath y SwbemLocator estableciendo la propiedad ImpersonationLevel en el valor deseado. En el ejemplo siguiente se muestra cómo establecer el nivel de suplantación para un objeto SWbemObject :

objinstance.Security_.ImpersonationLevel = _
    wbemImpersonationLevelImpersonate

También puede especificar niveles de suplantación como parte de un moniker. En el ejemplo siguiente se establece el nivel de autenticación y el nivel de suplantación y se recupera una instancia de Win32_Service.

Set objinst = GetObject("WinMgmts:{impersonationLevel=impersonate,"& _
                         "authenticationLevel=pktPrivacy}"& _
                         "!root/cimv2:Win32_service='ALERTER'")

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_SWbemSecurity
IID
IID_ISWbemSecurity

Consulte también

SWbemSecurity

Establecer Client_Application_Process seguridad

WbemImpersonationLevelEnum