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 los privilegios de administrador. En este artículo, mostraremos cómo permitir la conexión remota usando PowerShell Remoting (WinRM) para usuarios comunes (sin los 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), se produce un error de acceso:

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

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

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

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

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

  1. BUILTIN Administrators – AccessAllowed,
  2. BUILTIN Usuarios de administración remota – Acceso permitido

Entonces, para permitir que un usuario se conecte a una máquina remota a través de WinRM, es suficiente ser miembro del grupo local integrado de administradores o Usuarios de administración remota grupo de seguridad (este grupo se crea de forma predeterminada a partir 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 Usuarios de administración remota grupo al Configuración de la computadora -> Configuración de Windows -> Configuración de seguridad -> Grupos restringidos política. Agregue a la política usuarios o grupos a los que se les debe otorgar acceso a WinRM.

grupos restringidos gpo

Una vez que un usuario se convierte en miembro del grupo Usuarios de administración remota, puede crear una sesión remota de PowerShell usando Enter-PSSession o ejecutar comandos usando 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.

enter-pssession

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 la computadora 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 Ejecutar (invocar) permisos.

Set-PSSessionConfiguration-Name Microsoft.PowerShell-showSecurityDescriptorUI

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

Si tiene que modificar automáticamente el descriptor de seguridad (sin GUI), primero deberá realizar 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)

Get-PSSessionConfiguration

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 Hyper-V Manager, se empezó a utilizar PowerShell Remoting. Por lo tanto, de forma predeterminada, 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 que ejecuta Windows 10, aparece el siguiente error:

Se produjo 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.

Hyper-V Se produjo un error al intentar 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *