about_Remote_Requirements
Descripción breve
Describe los requisitos del sistema y los requisitos de configuración para ejecutar comandos remotos en PowerShell.
Descripción larga
En este tema se describen los requisitos del sistema, los requisitos de usuario y los requisitos de recursos para establecer conexiones remotas y ejecutar comandos remotos en PowerShell. También proporciona instrucciones para configurar operaciones remotas.
Nota:
Algunos cmdlets obtienen objetos de conexiones RPC de equipos remotos o sesiones WMI para conexiones remotas. No usan la infraestructura de comunicación remota de PowerShell. Los requisitos de este documento no se aplican a estos cmdlets.
Para buscar los cmdlets que tienen un parámetro ComputerName pero no usan la comunicación remota de PowerShell, lea la descripción del parámetro ComputerName de los cmdlets.
Requisitos del sistema
En Windows, la comunicación remota de PowerShell usa administración remota de Windows (WinRM), que proporciona Windows Management Framework (WMF). Para ejecutar sesiones remotas en PowerShell, los equipos locales y remotos deben tener lo siguiente:
- Windows PowerShell 3.0 o superior
- Microsoft .NET Framework 4 o superior
- Administración remota de Windows 3.0 o posterior
Para ejecutar sesiones remotas en Windows PowerShell 2.0, los equipos locales y remotos deben tener lo siguiente:
- Windows PowerShell 2.0 o posterior
- Microsoft .NET Framework 2.0 o posterior
- Administración remota de Windows 2.0
Para ser totalmente compatible, debe usar WMF 5.1. Para obtener más información sobre la compatibilidad con WMF, consulta Windows Management Framework (WMF).
Puede crear una sesión remota entre un equipo que ejecute Windows PowerShell 2.0 y una que ejecute una versión más reciente de PowerShell. Sin embargo, las características que solo se ejecutan en nuevas versiones de PowerShell, como la capacidad de desconectar y volver a conectarse a las sesiones, solo están disponibles cuando ambos equipos ejecutan Windows PowerShell 3.0 y versiones posteriores.
Para buscar el número de versión de una versión instalada de PowerShell, use la $PSVersionTable
variable automática.
PowerShell 7 y versiones posteriores también admiten la comunicación remota de PowerShell a través de SSH. La comunicación remota de PowerShell a través de SSH permite conectarse a cualquier host de Windows, macOS o Linux que ejecute SSH. Para más información, consulte Comunicación remota de PowerShell a través de SSH.
Permisos de usuario
Para crear sesiones remotas y ejecutar comandos remotos, de forma predeterminada, el usuario actual debe ser miembro del grupo Administradores en el equipo remoto o proporcionar las credenciales de un administrador. De lo contrario, se produce un error en el comando.
La configuración de sesión establece los permisos necesarios para crear sesiones y ejecutar comandos en un equipo remoto. La configuración de sesión define las opciones de configuración del punto de conexión en el equipo remoto. En concreto, el descriptor de seguridad de la configuración de sesión determina quién tiene acceso a la configuración de sesión y quién puede usarlo para conectarse.
Los descriptores de seguridad de las configuraciones de sesión predeterminadas, Microsoft.PowerShell y Microsoft.PowerShell32, solo permiten el acceso a los miembros del grupo Administradores .
Los miembros del grupo Administradores de un equipo pueden determinar quién tiene permiso para conectarse al equipo de forma remota cambiando los descriptores de seguridad en las configuraciones de sesión predeterminadas o crear nuevas configuraciones de sesión con distintos descriptores de seguridad. Los usuarios pueden usar el parámetro ConfigurationName de *-PSSession
cmdlets para conectarse a distintos puntos de conexión.
Para más información sobre las configuraciones de sesión, vea about_Session_Configurations.
Ubicaciones de red de Windows
A partir de Windows PowerShell 3.0, el cmdlet puede habilitar la Enable-PSRemoting
comunicación remota en versiones de cliente y servidor de Windows.
En las versiones de servidor de Windows con redes privadas y de dominio, el Enable-PSRemoting
cmdlet crea reglas de firewall que permiten el acceso remoto sin restricciones. También crea una regla de firewall para redes públicas que solo permite el acceso remoto desde equipos de la misma subred local. Esta regla de firewall de subred local está habilitada de forma predeterminada en las versiones de servidor de Windows en redes públicas, pero Enable-PSRemoting
vuelve a aplicar la regla en caso de que se haya cambiado o eliminado.
En las versiones de cliente de Windows con redes privadas y de dominio, Enable-PSRemoting
crea reglas de firewall que permiten el acceso remoto sin restricciones.
Para habilitar la comunicación remota en versiones de cliente de Windows con redes públicas, use el parámetro SkipNetworkProfileCheck del Enable-PSRemoting
cmdlet . Esta opción crea una regla de firewall que solo permite el acceso remoto desde equipos de la misma subred local.
Para quitar la restricción de subred local en redes públicas y permitir el acceso remoto desde todas las ubicaciones de las versiones de cliente y servidor de Windows, use el Set-NetFirewallRule
cmdlet en el módulo NetSecurity . Ejecute el comando siguiente:
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
Nota:
El nombre de la regla de firewall puede ser diferente para diferentes versiones de Windows. Use Get-NetFirewallRule
para ver una lista de reglas. Antes de habilitar la regla de firewall, vea la configuración de seguridad de la regla para comprobar que la configuración es adecuada para su entorno.
En Windows PowerShell 2.0, en versiones de servidor de Windows, Enable-PSRemoting
crea reglas de firewall que permiten el acceso remoto en todas las redes.
En Windows PowerShell 2.0, en versiones de cliente de Windows, Enable-PSRemoting
crea reglas de firewall solo en redes privadas y de dominio. Si la ubicación de red es pública, Enable-PSRemoting
se produce un error.
Ejecutar como administrador
Los privilegios de administrador son necesarios para las siguientes operaciones de comunicación remota:
- Establecimiento de una conexión remota al equipo local. Esto se conoce normalmente como un escenario de "bucle invertido".
- Administración de configuraciones de sesión en el equipo local.
- Ver y cambiar la configuración de WS-Management en el equipo local. Estos son los valores del nodo LocalHost de la unidad WSMAN: .
Debe iniciar PowerShell con la opción Ejecutar como administrador aunque sea miembro del grupo Administradores en el equipo local.
Al iniciar Windows PowerShell desde otro programa como cmd.exe
, use la opción Ejecutar como administrador para iniciar el programa.
Configuración del equipo para la comunicación remota
Los equipos que ejecutan cualquier versión compatible de Windows pueden establecer conexiones remotas y ejecutar comandos remotos en PowerShell sin ninguna configuración. Sin embargo, para recibir conexiones remotas, debe habilitar la comunicación remota de PowerShell en el equipo.
Windows Server 2012 y versiones más recientes de Windows Server están habilitadas para la comunicación remota de PowerShell de forma predeterminada. Si se cambia la configuración, puede restaurar la configuración predeterminada ejecutando el Enable-PSRemoting
cmdlet .
De forma predeterminada, el servicio WinRM admite las características de comunicación remota de PowerShell, que es la implementación de Microsoft del protocolo Servicios web para administración (WS-Management). Al habilitar la comunicación remota de PowerShell, se cambia la configuración predeterminada de WS-Management y se agrega la configuración del sistema que permite a los usuarios conectarse a WS-Management.
Para configurar PowerShell para recibir comandos remotos:
- Inicie PowerShell con la opción Ejecutar como administrador .
- En el símbolo del sistema, escriba:
Enable-PSRemoting
Para comprobar que la comunicación remota está configurada correctamente, ejecute un comando de prueba como el siguiente comando, que crea una sesión remota en el equipo local.
New-PSSession
Si la comunicación remota está configurada correctamente, el comando crea una sesión en el equipo local y devuelve un objeto que representa la sesión.
Id Name ComputerName State ConfigurationName
-- ---- ------------ ----- -----
1 Session1 localhost Opened Microsoft.PowerShell
Si se produce un error en el comando, consulte about_Remote_Troubleshooting.
Información sobre las directivas
Al trabajar de forma remota, se usan dos instancias de PowerShell, una en el equipo local y otra en el equipo remoto. Como resultado, el trabajo se ve afectado por las directivas de Windows y PowerShell en los equipos locales y remotos.
Antes de conectarse y al establecer la conexión, las directivas del equipo local están en vigor. Cuando se usa la conexión, las directivas del equipo remoto están en vigor.