Búsqueda de sitios web

Comunicación remota de PowerShell a través de WinRM para usuarios que no son administradores


De forma predeterminada, para conectarse a una computadora remota usando PowerShell (PowerShell Remoting) necesita privilegios de administrador. En este artículo, mostraremos cómo permitir la conexión remota mediante PowerShell Remoting (WinRM) para usuarios comunes (sin privilegios de administrador) con la ayuda de un grupo de seguridad, una política de grupo y la modificación del descriptor de sesión de PoSh.

Al intentar crear una sesión de PowerShell con una computadora remota como una cuenta de usuario sin privilegios (Enter-PSSession lon-srv1) ocurre un error de acceso:

Enter-PSSession: Falló la conexión al servidor remoto lon-srv1 con el siguiente mensaje de error: Acceso denegado.

Acceso remoto a WinRM y grupo de usuarios de administración remota

Verifique los permisos estándar de la sesión de PoSh:

(Get-PSSessionConfiguration -Name Microsoft.PowerShell).Permission

Como puede ver, el acceso está permitido para los siguientes grupos integrados:

  1. BUILTIN\Administradores — Acceso Permitido,

  2. BUILTIN\Usuarios de administración remota: acceso permitido

Por lo tanto, para permitir que un usuario se conecte a una máquina remota a través de WinRM, basta con ser miembro del grupo local integrado de administradores o del grupo de seguridad Usuarios de administración remota (este grupo se crea de forma predeterminada a partir de de PowerShell 4.0). Este grupo también tiene acceso a los recursos de WMI a través de protocolos de administración (por ejemplo, WS-Management)

Se puede agregar un usuario al grupo mediante el complemento Administración de equipos:

o usando el comando:

net localgroup "Remote Management Users" /add jsmith

Si necesita proporcionar dichos permisos en varias computadoras, puede usar la Política de grupo. Para hacer esto, asigne el GPO a las computadoras que necesita y agregue el nuevo grupo Usuarios de administración remota a la política Configuración de la computadora -> Configuración de Windows -> Configuración de seguridad -> Grupos restringidos. Agregue a la política usuarios o grupos a los que se les debe otorgar acceso a WinRM.

Una vez que un usuario se convierte en miembro del grupo Usuarios de administración remota, puede crear una sesión remota de PowerShell mediante Enter-PSSession o ejecutar comandos mediante el cmdlet Invoke-Command. Los privilegios de usuario en esta sesión se limitarán a los derechos de usuario en esta máquina.

Asegúrese de que la conexión remota esté establecida.

Descriptor de seguridad de la sesión de PowerShell

Otra forma de otorgar rápidamente a un usuario permiso para usar PowerShell Remoting sin incluirlo en el grupo de seguridad local Usuarios de administración remota es modificar el descriptor de seguridad de la sesión actual de Microsoft.PowerShell en el equipo local. Este método permitirá otorgar rápidamente derechos de conexión remota temporales (hasta el próximo reinicio) a un usuario a través de PowerShell.

El siguiente comando muestra la lista de permisos actuales:

Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

En esta ventana de diálogo, agregue un usuario o grupo y concédales permisos de Ejecutar (Invocar).

Después de guardar los cambios, el sistema solicitará confirmación y reinicio del servicio WinRM.

Si tiene que modificar automáticamente el descriptor de seguridad (sin GUI), primero deberá realizar los cambios manualmente y luego obtener el descriptor de acceso actual en formato SDDL.

(Get-PSSessionConfiguration -Name "Microsoft.PowerShell").SecurityDescriptorSDDL

En nuestro caso, el comando devolvió el siguiente descriptor:

O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2323243421-3342677354-2633435451-55422122)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)

Luego, puede usar esta cadena SDDL para otorgar acceso a PowerShell en cualquier otro servidor o estación de trabajo.

$SDDL = “O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2323243421-3342677354-2633435451-55422122)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)”
Set-PSSessionConfiguration -Name Microsoft.PowerShell -SecurityDescriptorSddl $SDDL

La administración remota de Hyper-V también necesita privilegios de WinRM

En Windows 10/Windows Server 2016 para conectarse a un servidor Hyper-V de forma remota mediante el Administrador de Hyper-V, se comenzó a utilizar PowerShell Remoting. Por lo tanto, por defecto, los usuarios remotos sin privilegios de administrador no podrán administrar el servidor Hyper-V, incluso si tienen los permisos correspondientes en Hyper-V.

Al intentar conectarse al servidor Hyper-V como un usuario común desde una computadora con Windows 10, aparece el siguiente error:

Ocurrió un error al intentar conectarse al servidor "servidor1", verifique que el servicio de administración de máquinas virtuales se esté ejecutando y que esté autorizado para conectarse al servidor

Para permitir una conexión remota a la consola, basta con agregar un usuario de Hyper-V al grupo local Usuarios de administración remota de la misma manera.

Artículos relacionados