Enable-PSRemoting

Configura el equipo para recibir comandos remotos.

Syntax

Enable-PSRemoting
      [-Force]
      [-SkipNetworkProfileCheck]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

El Enable-PSRemoting cmdlet configura el equipo para recibir comandos remotos de PowerShell que se envían mediante la tecnología WS-Management.

La comunicación remota de PowerShell está habilitada de forma predeterminada en Windows Server 2012. Puede usar Enable-PSRemoting para habilitar la comunicación remota de PowerShell en otras versiones compatibles de Windows y volver a habilitar la comunicación remota en Windows Server 2012 si se deshabilita.

Solo tiene que ejecutar este comando una vez en cada equipo que recibirá comandos. No es necesario ejecutarlo en equipos que solo envíen comandos. Dado que la configuración inicia agentes de escucha, es prudente ejecutarlo solo cuando sea necesario.

A partir de PowerShell 3.0, el cmdlet puede habilitar la Enable-PSRemoting comunicación remota de PowerShell en versiones de cliente de Windows cuando el equipo está en una red pública. Para obtener más información, vea la descripción del parámetro SkipNetworkProfileCheck .

El Enable-PSRemoting cmdlet realiza las siguientes operaciones:

  • Ejecuta el cmdlet Set-WSManQuickConfig , que realiza las siguientes tareas:
    • Inicia el servicio WinRM.
    • Establece el tipo de inicio del servicio WinRM en automático.
    • Crea un agente de escucha para aceptar solicitudes en cualquier dirección IP.
    • Habilita una excepción de firewall para las comunicaciones de WS-Management.
    • Registra las configuraciones de sesión Microsoft.PowerShell y Microsoft.PowerShell.Workflow , si aún no están registradas.
    • Registra la configuración de sesión de Microsoft.PowerShell32 en equipos de 64 bits, si aún no está registrado.
    • Habilita todas las configuraciones de sesión.
    • Cambia el descriptor de seguridad de todas las configuraciones de sesión para permitir el acceso remoto.
  • Reinicia el servicio WinRM para que se hagan efectivos los cambios anteriores.

Para ejecutar este cmdlet en la plataforma Windows, inicie PowerShell mediante la opción Ejecutar como administrador. Esto no se aplica a las versiones de Linux o MacOS de PowerShell.

Precaución

En los sistemas que tienen PowerShell 3.0 y PowerShell 2.0, no use PowerShell 2.0 para ejecutar los Enable-PSRemoting cmdlets y Disable-PSRemoting . Puede parecer que los comandos tienen éxito, pero la comunicación remota no está configurada correctamente. Es probable que se produzcan errores en los comandos remotos y los intentos posteriores de habilitar y deshabilitar la comunicación remota.

Ejemplos

Ejemplo 1: Configurar un equipo para recibir comandos remotos

Este comando configura el equipo para recibir comandos remotos.

Enable-PSRemoting

Ejemplo 2: Configurar un equipo para recibir comandos remotos sin un mensaje de confirmación

Este comando configura el equipo para recibir comandos remotos. El parámetro Force suprime las indicaciones del usuario.

Enable-PSRemoting -Force

Ejemplo 3: Permitir el acceso remoto en clientes

En este ejemplo se muestra cómo permitir el acceso remoto desde redes públicas en versiones de cliente del sistema operativo Windows. 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.

Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name

Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP

Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any

De forma predeterminada, Enable-PSRemoting crea reglas de red que permiten el acceso remoto desde redes privadas y de dominio. El comando usa el parámetro SkipNetworkProfileCheck para permitir el acceso remoto desde redes públicas en la misma subred local. El comando especifica el parámetro Force para suprimir los mensajes de confirmación.

El parámetro SkipNetworkProfileCheck no afecta a las versiones de servidor del sistema operativo Windows, que permiten el acceso remoto desde redes públicas en la misma subred local de forma predeterminada.

El Set-NetFirewallRule cmdlet del módulo NetSecurity agrega una regla de firewall que permite el acceso remoto desde redes públicas desde cualquier ubicación remota. Esto incluye ubicaciones en diferentes subredes.

Nota:

El nombre de la regla de firewall puede ser diferente en función de la versión de Windows. Use el Get-NetFirewallRule cmdlet para enumerar los nombres de las reglas del sistema.

Parámetros

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Obliga al comando a ejecutarse sin solicitar la confirmación del usuario.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipNetworkProfileCheck

Indica que este cmdlet habilita la comunicación remota en las versiones de cliente del sistema operativo Windows cuando el equipo está en una red pública. Este parámetro habilita una regla de firewall para las redes públicas que permite el acceso remoto solo desde equipos en la misma subred local.

Este parámetro no afecta a las versiones de servidor del sistema operativo Windows, que, de forma predeterminada, tienen una regla de firewall de subred local para redes públicas. Si la regla de firewall de subred local está deshabilitada en una versión del servidor, Enable-PSRemoting vuelva a habilitarla, independientemente del valor de este parámetro.

Para quitar la restricción de subred local y habilitar el acceso remoto desde todas las ubicaciones de las redes públicas, use el Set-NetFirewallRule cmdlet en el módulo NetSecurity .

Este parámetro se introdujo en PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

String

Este cmdlet devuelve cadenas que describen sus resultados.

Notas

En PowerShell 3.0, Enable-PSRemoting crea las siguientes excepciones de firewall para las comunicaciones de WS-Management.

En las versiones de servidor del sistema operativo Windows, Enable-PSRemoting crea reglas de firewall para redes privadas y de dominio que permiten el acceso remoto y crea una regla de firewall para redes públicas que solo permite el acceso remoto desde equipos de la misma subred local.

En las versiones de cliente del sistema operativo Windows, Enable-PSRemoting en PowerShell 3.0 se crean reglas de firewall para redes privadas y de dominio que permiten el acceso remoto sin restricciones. Para crear una regla de firewall para redes públicas que permita el acceso remoto desde la misma subred local, use el parámetro SkipNetworkProfileCheck .

En las versiones de cliente o servidor del sistema operativo Windows, para crear una regla de firewall para redes públicas que quite la restricción de subred local y permita el acceso remoto, use el Set-NetFirewallRule cmdlet en el módulo NetSecurity para ejecutar el siguiente comando: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

En PowerShell 2.0, Enable-PSRemoting crea las siguientes excepciones de firewall para las comunicaciones de WS-Management.

En las versiones de servidor del sistema operativo Windows, crea reglas de firewall para todas las redes que permiten el acceso remoto.

En las versiones de cliente del sistema operativo Windows, Enable-PSRemoting en PowerShell 2.0 se crea una excepción de firewall solo para ubicaciones de dominio y red privada. Para minimizar los riesgos de seguridad, Enable-PSRemoting no crea una regla de firewall para redes públicas en versiones de cliente de Windows. Cuando la ubicación de red actual es pública, Enable-PSRemoting devuelve el siguiente mensaje: No se puede comprobar el estado del firewall.

A partir de PowerShell 3.0, Enable-PSRemoting habilita todas las configuraciones de sesión estableciendo el valor de la propiedad Enabled de todas las configuraciones de sesión en $True.

En PowerShell 2.0, Enable-PSRemoting quita la configuración de Deny_All del descriptor de seguridad de las configuraciones de sesión. En PowerShell 3.0, Enable-PSRemoting quita la configuración de Deny_All y Network_Deny_All . Esto proporciona acceso remoto a las configuraciones de sesión reservadas para uso local.