SWbemSecurity.ImpersonationLevel (propiedad)
La propiedad ImpersonationLevel es un entero que define el nivel de suplantación COM asignado a este objeto. Este valor determina si los procesos que pertenecen a Instrumental de administración de Windows (WMI) pueden detectar o usar las credenciales de seguridad al realizar llamadas a otros procesos. Para más información sobre los niveles de suplantación, vea Configuración de la seguridad de Client_Application_Process.
Si no establece el nivel de suplantación específicamente en un moniker o mediante el establecimiento de 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 este valor 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, vea Convenciones de documentación para la API de scripting.
Esta propiedad es de lectura y escritura.
Sintaxis
SWbemSecurity.ImpersonationLevel As Integer
Valor de propiedad
Comentarios
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 impersonationLevel=Anonymous, WMI actualizará silenciosamente el nivel de suplantación a Identify. Pero esto no tiene sentido, ya que es probable que se produzca un error en los scripts que usan el nivel Identify. |
Identificar | Permite que los objetos consulten 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 Identify normalmente le permite comprobar listas de control de acceso. No podrá ejecutar scripts en equipos remotos mediante Identify. |
Impersonate | Permite que los objetos usen las credenciales del autor de la llamada. Se recomienda usar este nivel de suplantación con scripts de WMI. Al hacerlo, el script de WMI usará las credenciales de usuario; como resultado, podrá realizar cualquier tarea para la que tenga permiso. |
Delegado | Permite que los objetos dejen que otros objetos usen las credenciales del autor de la llamada. La delegación permite que un script use las credenciales en un equipo remoto y, después, que ese equipo remoto use las credenciales en otro equipo remoto. Aunque puede usar este nivel de suplantación en scripts de WMI, solo debe hacerlo si es necesario porque podría suponer un riesgo de seguridad. No se puede usar el nivel de suplantación Delegate 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 las 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 ha indicado, la suplantación Anonymous oculta las credenciales e Identify permite que un objeto remoto las consulte, pero el objeto remoto no puede suplantar el contexto de seguridad. (Es decir, aunque el objeto remoto sabe quién es, no puede "fingir" ser usted). En los scripts de WMI que acceden a equipos remotos mediante una de estas dos opciones generalmente se producirá un error. De hecho, en la mayoría de los scripts que se ejecutan en el equipo local con uno de estos dos valores también se producirá un error.
Impersonate permite al servicio de WMI remoto usar el contexto de seguridad para realizar la operación solicitada. Una solicitud de WMI remota que usa el valor Impersonate 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 tipo) que no tenga permiso para realizar fuera de WMI.
Al establecer impersonationLevel en Delegate, 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 si establece 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 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 |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemSecurity |
IID |
IID_ISWbemSecurity |