Acerca de los requisitos remotosAbout Remote Requirements

DESCRIPCIÓN BREVESHORT DESCRIPTION

Describe los requisitos del sistema y los requisitos de configuración para ejecutar comandos remotos en PowerShell.Describes the system requirements and configuration requirements for running remote commands in PowerShell.

DESCRIPCIÓN LARGALONG DESCRIPTION

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.This topic describes the system requirements, user requirements, and resource requirements for establishing remote connections and running remote commands in PowerShell. También se proporcionan instrucciones para configurar las operaciones remotas.It also provides instructions for configuring remote operations.

Nota: muchos cmdlets (incluidos los cmdlets Get-Service, Get-Process, Get-WMIObject, Get-EventLog y Get-WinEvent) obtienen objetos de equipos remotos mediante el uso de métodos de Microsoft .NET Framework para recuperar los objetos.Note: Many cmdlets (including the Get-Service, Get-Process, Get-WMIObject, Get-EventLog, and Get-WinEvent cmdlets) get objects from remote computers by using Microsoft .NET Framework methods to retrieve the objects. No usan la infraestructura de comunicación remota de PowerShell.They do not use the PowerShell remoting infrastructure. Los requisitos de este documento no se aplican a estos cmdlets.The requirements in this document do not apply to these cmdlets.

Para encontrar 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.To find the cmdlets that have a ComputerName parameter but do not use PowerShell remoting, read the description of the ComputerName parameter of the cmdlets.

REQUISITOS DEL SISTEMASYSTEM REQUIREMENTS

Para ejecutar sesiones remotas en Windows PowerShell 3,0, los equipos locales y remotos deben tener lo siguiente:To run remote sessions on Windows PowerShell 3.0, the local and remote computers must have the following:

  • Windows PowerShell 3,0 o posteriorWindows PowerShell 3.0 or later
  • Microsoft .NET Framework 4 o posteriorThe Microsoft .NET Framework 4 or later
  • Administración remota de Windows 3,0Windows Remote Management 3.0

Para ejecutar sesiones remotas en Windows PowerShell 2,0, los equipos locales y remotos deben tener lo siguiente:To run remote sessions on Windows PowerShell 2.0, the local and remote computers must have the following:

  • Windows PowerShell 2,0 o posteriorWindows PowerShell 2.0 or later
  • Microsoft .NET Framework 2,0 o posteriorThe Microsoft .NET Framework 2.0 or later
  • Administración remota de Windows 2,0Windows Remote Management 2.0

Puede crear sesiones remotas entre equipos que ejecutan Windows PowerShell 2,0 y Windows PowerShell 3,0.You can create remote sessions between computers running Windows PowerShell 2.0 and Windows PowerShell 3.0. Sin embargo, las características que solo se ejecutan en Windows PowerShell 3,0, como la capacidad de desconectar y volver a conectarse a las sesiones, solo están disponibles cuando ambos equipos ejecutan Windows PowerShell 3,0.However, features that run only on Windows PowerShell 3.0, such as the ability to disconnect and reconnect to sessions, are available only when both computers are running Windows PowerShell 3.0.

Para buscar el número de versión de una versión instalada de PowerShell, use el $PSVersionTable variable automática.To find the version number of an installed version of PowerShell, use the $PSVersionTable automatic variable.

Administración remota de Windows (WinRM) 3,0 y Microsoft .NET Framework 4 se incluyen en Windows 8, Windows Server 2012 y versiones más recientes del sistema operativo Windows.Windows Remote Management (WinRM) 3.0 and Microsoft .NET Framework 4 are included in Windows 8, Windows Server 2012, and newer releases of the Windows operating system. WinRM 3,0 se incluye en Windows Management Framework 3,0 para los sistemas operativos anteriores.WinRM 3.0 is included in Windows Management Framework 3.0 for older operating systems. Si el equipo no tiene la versión necesaria de WinRM o el marco de Microsoft .NET, se produce un error en la instalación.If the computer does not have the required version of WinRM or the Microsoft .NET Framework, the installation fails.

PERMISOS DE USUARIOUSER PERMISSIONS

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.To create remote sessions and run remote commands, by default, the current user must be a member of the Administrators group on the remote computer or provide the credentials of an administrator. De lo contrario, se produce un error en el comando.Otherwise, the command fails.

Los permisos necesarios para crear sesiones y ejecutar comandos en un equipo remoto (o en una sesión remota en el equipo local) se establecen mediante la configuración de sesión (también conocida como "punto de conexión") en el equipo remoto al que se conecta la sesión.The permissions required to create sessions and run commands on a remote computer (or in a remote session on the local computer) are established by the session configuration (also known as an "endpoint") on the remote computer to which the session connects. 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.Specifically, the security descriptor on the session configuration determines who has access to the session configuration and who can use it to connect.

Los descriptores de seguridad de las configuraciones de sesión predeterminadas, Microsoft. PowerShell, Microsoft. PowerShell32 y Microsoft. PowerShell. Workflow, permiten el acceso solo a los miembros del grupo administradores.The security descriptors on the default session configurations, Microsoft.PowerShell, Microsoft.PowerShell32, and Microsoft.PowerShell.Workflow, allow access only to members of the Administrators group.

Si el usuario actual no tiene permiso para usar la configuración de sesión, se producirá un error en el comando para ejecutar un comando (que usa una sesión temporal) o en crear una sesión persistente en el equipo remoto.If the current user doesn't have permission to use the session configuration, the command to run a command (which uses a temporary session) or create a persistent session on the remote computer fails. El usuario puede usar el parámetro ConfigurationName de los cmdlets que crean sesiones para seleccionar una configuración de sesión diferente, si hay alguna disponible.The user can use the ConfigurationName parameter of cmdlets that create sessions to select a different session configuration, if one is available.

Los miembros del grupo administradores de un equipo pueden determinar quién tiene permiso para conectarse al equipo de forma remota mediante el cambio de los descriptores de seguridad en las configuraciones de sesión predeterminadas y la creación de nuevas configuraciones de sesión con distintos descriptores de seguridad.Members of the Administrators group on a computer can determine who has permission to connect to the computer remotely by changing the security descriptors on the default session configurations and by creating new session configurations with different security descriptors.

Para obtener más información sobre las configuraciones de sesión, vea about_Session_Configurations.For more information about session configurations, see about_Session_Configurations.

UBICACIONES DE RED DE WINDOWSWINDOWS NETWORK LOCATIONS

A partir de Windows PowerShell 3,0, el cmdlet Enable-PSRemoting puede habilitar la comunicación remota en las versiones de cliente y servidor de Windows en redes privadas, de dominio y públicas.Beginning in Windows PowerShell 3.0, the Enable-PSRemoting cmdlet can enable remoting on client and server versions of Windows on private, domain, and public networks.

En las versiones de servidor de Windows con redes privadas y de dominio, el cmdlet Enable-PSRemoting crea reglas de firewall que permiten el acceso remoto sin restricciones.On server versions of Windows with private and domain networks, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access. También crea una regla de Firewall para redes públicas que permite el acceso remoto solo desde equipos de la misma subred local.It also creates a firewall rule for public networks that allows remote access only from computers in the same local subnet. 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.This local subnet firewall rule is enabled by default on server versions of Windows on public networks, but Enable-PSRemoting reapplies the rule in case it was changed or deleted.

En las versiones de cliente de Windows con redes privadas y de dominio, de forma predeterminada, el cmdlet Enable-PSRemoting crea reglas de firewall que permiten el acceso remoto sin restricciones.On client versions of Windows with private and domain networks, by default, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access.

Para habilitar la comunicación remota en versiones de cliente de Windows con redes públicas, use el parámetro SkipNetworkProfileCheck del cmdlet Enable-PSRemoting.To enable remoting on client versions of Windows with public networks, use the SkipNetworkProfileCheck parameter of the Enable-PSRemoting cmdlet. Crea una regla de firewall que permite el acceso remoto solo desde equipos de la misma subred local.It creates a firewall rule that allows remote access only from computers in the same local subnet.

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 cmdlet Set-NetFirewallRule en el módulo NetSecurity.To remove the local subnet restriction on public networks and allow remote access from all locations on client and server versions of Windows, use the Set-NetFirewallRule cmdlet in the NetSecurity module. Ejecute el siguiente comando:Run the following command:

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

En Windows PowerShell 2,0, en las versiones de servidor de Windows, Enable-PSRemoting crea reglas de firewall que permiten el acceso remoto en todas las redes.In Windows PowerShell 2.0, on server versions of Windows, Enable-PSRemoting creates firewall rules that permit remote access on all networks.

En Windows PowerShell 2,0, en las versiones de cliente de Windows, Enable-PSRemoting crea reglas de Firewall solo en redes privadas y de dominio.In Windows PowerShell 2.0, on client versions of Windows, Enable-PSRemoting creates firewall rules only on private and domain networks. Si la ubicación de red es pública, Enable-PSRemoting produce un error.If the network location is public, Enable-PSRemoting fails.

EJECUTAR COMO ADMINISTRADORRUN AS ADMINISTRATOR

Se requieren privilegios de administrador para las siguientes operaciones remotas:Administrator privileges are required for the following remoting operations:

  • Establecer una conexión remota con el equipo local.Establishing a remote connection to the local computer. Esto se conoce normalmente como un escenario de "bucle invertido".This is commonly known as a "loopback" scenario.

  • Administrar las configuraciones de sesión en el equipo local.Managing session configurations on the local computer.

  • Ver y cambiar la configuración de WS-Management en el equipo local.Viewing and changing WS-Management settings on the local computer. Estos son los valores del nodo LocalHost de la unidad WSMAN:.These are the settings in the LocalHost node of the WSMAN: drive.

Para realizar estas tareas, debe iniciar PowerShell con la opción "ejecutar como administrador" incluso si es miembro del grupo administradores en el equipo local.To perform these tasks, you must start PowerShell with the "Run as administrator" option even if you are a member of the Administrators group on the local computer.

En Windows 7 y en Windows Server 2008 R2, para iniciar Windows PowerShell con la opción "ejecutar como administrador":In Windows 7 and in Windows Server 2008 R2, to start Windows PowerShell with the "Run as administrator" option:

  1. Haga clic en Inicio, en todos los programas, en accesorios y, a continuación, en la carpeta Windows PowerShell.Click Start, click All Programs, click Accessories, and then click the Windows PowerShell folder.
  2. Haga clic con el botón secundario en Windows PowerShell y, a continuación, haga clic en "ejecutar como administrador".Right-click Windows PowerShell, and then click "Run as administrator".

Para iniciar Windows PowerShell con la opción "ejecutar como administrador":To start Windows PowerShell with the "Run as administrator" option:

  1. Haga clic en Inicio, todos los programas y, a continuación, haga clic en la carpeta Windows PowerShell.Click Start, click All Programs, and then click the Windows PowerShell folder.
  2. Haga clic con el botón secundario en Windows PowerShell y, a continuación, haga clic en "ejecutar como administrador".Right-click Windows PowerShell, and then click "Run as administrator".

La opción "ejecutar como administrador" también está disponible en otras entradas del explorador de Windows para Windows PowerShell, incluidos los accesos directos.The "Run as administrator" option is also available in other Windows Explorer entries for Windows PowerShell, including shortcuts. Simplemente haga clic con el botón secundario en el elemento y, a continuación, haga clic en "ejecutar como administrador".Just right-click the item, and then click "Run as administrator".

Al iniciar Windows PowerShell desde otro programa, como Cmd.exe, use la opción "ejecutar como administrador" para iniciar el programa.When you start Windows PowerShell from another program such as Cmd.exe, use the "Run as administrator" option to start the program.

CÓMO CONFIGURAR EL EQUIPO PARA LA COMUNICACIÓN REMOTAHOW TO CONFIGURE YOUR COMPUTER FOR REMOTING

Los equipos que ejecutan todas las versiones compatibles de Windows pueden establecer conexiones remotas a y ejecutar comandos remotos en PowerShell sin ninguna configuración.Computers running all supported versions of Windows can establish remote connections to and run remote commands in PowerShell without any configuration. Sin embargo, para recibir conexiones y permitir a los usuarios crear sesiones de PowerShell administradas por el usuario locales y remotas ("PSSessions") y ejecutar comandos en el equipo local, debe habilitar la comunicación remota de PowerShell en el equipo.However, to receive connections, and allow users to create local and remote user-managed PowerShell sessions ("PSSessions") and run commands on the local computer, you must enable PowerShell remoting on the computer.

Windows Server 2012 y las versiones más recientes de Windows Server están habilitadas para la comunicación remota de PowerShell de forma predeterminada.Windows Server 2012 and newer releases of Windows Server are enabled for PowerShell remoting by default. Si cambia la configuración, puede ejecutar el cmdlet Enable-PSRemoting para restaurar la configuración predeterminada.If the settings are changed, you can restore the default settings by running the Enable-PSRemoting cmdlet.

En todas las demás versiones compatibles de Windows, debe ejecutar el cmdlet Enable-PSRemoting para habilitar la comunicación remota de PowerShell.On all other supported versions of Windows, you need to run the Enable-PSRemoting cmdlet to enable PowerShell remoting.

Las características de comunicación remota de PowerShell son compatibles con el servicio WinRM, que es la implementación de Microsoft del protocolo servicios web para administración (WS-Management).The remoting features of PowerShell are supported by the WinRM service, which is the Microsoft implementation of the Web Services for Management (WS-Management) protocol. Cuando se habilita la comunicación remota de PowerShell, se cambia la configuración predeterminada de WS-Management y se agrega una configuración del sistema que permite a los usuarios conectarse a WS-Management.When you enable PowerShell remoting, you change the default configuration of WS-Management and add system configuration that allow users to connect to WS-Management.

Para configurar PowerShell para recibir comandos remotos:To configure PowerShell to receive remote commands:

  1. Inicie PowerShell con la opción "ejecutar como administrador".Start PowerShell with the "Run as administrator" option.
  2. En el símbolo del sistema, escriba: Enable-PSRemotingAt the command prompt, type: Enable-PSRemoting

Para comprobar que la comunicación remota está configurada correctamente, ejecute un comando de prueba como el comando siguiente, que crea una sesión remota en el equipo local.To verify that remoting is configured correctly, run a test command such as the following command, which creates a remote session on the local computer.

New-PSSession

Si la comunicación remota está configurada correctamente, el comando creará una sesión en el equipo local y devolverá un objeto que representa la sesión.If remoting is configured correctly, the command will create a session on the local computer and return an object that represents the session. La salida debe ser similar a la siguiente salida de ejemplo:The output should resemble the following sample output:

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

Si se produce un error en el comando, consulte about_Remote_Troubleshootingpara obtener ayuda.If the command fails, for assistance, see about_Remote_Troubleshooting.

COMPRENDER LAS DIRECTIVASUNDERSTAND POLICIES

Al trabajar de forma remota, se usan dos instancias de PowerShell, una en el equipo local y otra en el equipo remoto.When you work remotely, you use two instances of PowerShell, one on the local computer and one on the remote computer. Como resultado, el trabajo se ve afectado por las directivas de Windows y las directivas de PowerShell en los equipos locales y remotos.As a result, your work is affected by the Windows policies and the PowerShell policies on the local and remote computers.

En general, antes de conectarse y al establecer la conexión, las directivas del equipo local están en vigor.In general, before you connect and as you are establishing the connection, the policies on the local computer are in effect. Cuando se usa la conexión, se aplican las directivas del equipo remoto.When you are using the connection, the policies on the remote computer are in effect.

Limitaciones de autenticación básica en Linux y macOSBasic Authentication Limitations on Linux and macOS

Al conectarse desde un sistema Linux o macOS a Windows, no se admite la autenticación básica a través de HTTP.When connecting from a Linux or macOS system to Windows, Basic Authentication over HTTP is not supported. La autenticación básica se puede usar a través de HTTPS mediante la instalación de un certificado en el servidor de destino.Basic Authentication can be used over HTTPS by installing a certificate on the target server. El certificado debe tener un nombre CN que coincida con el nombre de host, que no haya expirado o se haya revocado.The certificate must have a CN name that matches the hostname, is not expired or revoked. Se puede usar un certificado autofirmado para realizar pruebas.A self-signed certificate may be used for testing purposes.

Consulte Cómo: configurar WINRM para https para obtener más detalles.See How To: Configure WINRM for HTTPS for additional details.

El siguiente comando, que se ejecuta desde un símbolo del sistema con privilegios elevados, configurará el agente de escucha HTTPS en Windows con el certificado instalado.The following command, run from an elevated command prompt, will configure the HTTPS listener on Windows with the installed certificate.

$hostinfo = '@{Hostname="<DNS_NAME>"; CertificateThumbprint="<THUMBPRINT>"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $hostinfo

En el lado de Linux o macOS, seleccione básica para la autenticación y-UseSSl.On the Linux or macOS side, select Basic for authentication and -UseSSl.

Nota: la autenticación básica no se puede usar con cuentas de dominio; se requiere una cuenta local y la cuenta debe estar en el grupo administradores.NOTE: Basic authentication cannot be used with domain accounts; a local account is required and the account must be in the Administrators group.

# The specified local user must have administrator rights on the target machine.
# Specify the unqualified username.
$cred = Get-Credential username
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Basic -UseSSL

Una alternativa a la autenticación básica sobre HTTPS es Negotiate.An alternative to Basic Authentication over HTTPS is Negotiate. Esto da como resultado la autenticación NTLM entre el cliente y el servidor, y la carga se cifra a través de HTTP.This results in NTLM authentication between the client and server and payload is encrypted over HTTP.

A continuación se muestra el uso de Negotiate con New-PSSession:The following illustrates using Negotiate with New-PSSession:

# The specified user must have administrator rights on the target machine.
$cred = Get-Credential username@hostname
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Negotiate

Nota

Windows Server requiere una configuración adicional del registro para permitir que los administradores que no sean el administrador integrado puedan conectarse mediante NTLM.Windows Server requires an additional registry setting to enable administrators, other than the built in administrator, to connect using NTLM. Consulte el valor del registro LocalAccountTokenFilterPolicy en Negotiate Authentication in Authentication for Remote Connections .Refer to the LocalAccountTokenFilterPolicy registry setting under Negotiate Authentication in Authentication for Remote Connections

CONSULTE TAMBIÉNSEE ALSO

about_Remoteabout_Remote

about_Remote_Variablesabout_Remote_Variables

about_PSSessionsabout_PSSessions

Invoke-CommandInvoke-Command

Enter-PSSessionEnter-PSSession

New-PSSessionNew-PSSession