Acerca de remotoAbout Remote

DESCRIPCIÓN BREVESHORT DESCRIPTION

Describe cómo ejecutar comandos remotos en PowerShell.Describes how to run remote commands in PowerShell.

DESCRIPCIÓN LARGALONG DESCRIPTION

Puede ejecutar comandos remotos en un único equipo o en varios equipos mediante una conexión temporal o persistente.You can run remote commands on a single computer or on multiple computers by using a temporary or persistent connection. También puede iniciar una sesión interactiva con un único equipo remoto.You can also start an interactive session with a single remote computer.

En este tema se proporciona una serie de ejemplos para mostrar cómo ejecutar diferentes tipos de comando remoto.This topic provides a series of examples to show you how to run different types of remote command. Después de probar estos comandos básicos, lea los temas de ayuda que describen cada cmdlet que se usa en estos comandos.After you try these basic commands, read the Help topics that describe each cmdlet that is used in these commands. Los temas proporcionan los detalles y explican cómo puede modificar los comandos para satisfacer sus necesidades.The topics provide the details and explain how you can modify the commands to meet your needs.

Nota: para usar la comunicación remota de PowerShell, los equipos locales y remotos deben estar configurados para la comunicación remota.Note: To use PowerShell remoting, the local and remote computers must be configured for remoting. Para obtener más información, consulte about_Remote_Requirements.For more information, see about_Remote_Requirements.

INICIO DE UNA SESIÓN INTERACTIVA (ENTER-PSSESSION)HOW TO START AN INTERACTIVE SESSION (ENTER-PSSESSION)

La forma más fácil de ejecutar comandos remotos es iniciar una sesión interactiva con un equipo remoto.The easiest way to run remote commands is to start an interactive session with a remote computer.

Cuando se inicia la sesión, los comandos que se escriben se ejecutan en el equipo remoto, como si se hubieran escrito directamente en el equipo remoto.When the session starts, the commands that you type run on the remote computer, just as though you typed them directly on the remote computer. Solo puede conectarse a un equipo en cada sesión interactiva.You can connect to only one computer in each interactive session.

Para iniciar una sesión interactiva, use el cmdlet Enter-PSSession.To start an interactive session, use the Enter-PSSession cmdlet. El comando siguiente inicia una sesión interactiva con el equipo Server01:The following command starts an interactive session with the Server01 computer:

Enter-PSSession Server01

El símbolo del sistema cambia para indicar que está conectado al equipo Server01.The command prompt changes to indicate that you are connected to the Server01 computer.

Server01\PS>

Ahora, puede escribir comandos en el equipo Server01.Now, you can type commands on the Server01 computer.

Para finalizar la sesión interactiva, escriba:To end the interactive session, type:

Exit-PSSession

Para obtener más información, consulte Enter-PSSession.For more information, see Enter-PSSession.

CÓMO USAR LOS CMDLETS QUE TIENEN UN PARÁMETRO COMPUTERNAME PARA OBTENER DATOS REMOTOSHOW TO USE CMDLETS THAT HAVE A COMPUTERNAME PARAMETER TO GET REMOTE DATA

Varios cmdlets tienen un parámetro ComputerName que le permite obtener objetos de equipos remotos.Several cmdlets have a ComputerName parameter that lets you get objects from remote computers.

Dado que estos cmdlets no usan la comunicación remota de PowerShell basada en WS-Management, puede usar el parámetro ComputerName de estos cmdlets en cualquier equipo que ejecute PowerShell.Because these cmdlets do not use WS-Management-based PowerShell remoting, you can use the ComputerName parameter of these cmdlets on any computer that is running PowerShell. Los equipos no tienen que estar configurados para la comunicación remota de PowerShell y los equipos no tienen que cumplir los requisitos del sistema para la comunicación remota.The computers do not have to be configured for PowerShell remoting, and the computers do not have to meet the system requirements for remoting.

Los cmdlets siguientes tienen un parámetro ComputerName:The following cmdlets have a ComputerName parameter:

Clear-EventLog    Limit-EventLog
Get-Counter       New-EventLog
Get-EventLog      Remove-EventLog
Get-HotFix        Restart-Computer
Get-Process       Show-EventLog
Get-Service       Stop-Computer
Get-WinEvent      Test-Connection
Get-WmiObject     Write-EventLog

Por ejemplo, el comando siguiente obtiene los servicios en el equipo remoto Server01:For example, the following command gets the services on the Server01 remote computer:

Get-Service -ComputerName Server01

Normalmente, los cmdlets que admiten la comunicación remota sin una configuración especial tienen un parámetro ComputerName y no tienen un parámetro Session .Typically, cmdlets that support remoting without special configuration have a ComputerName parameter and do not have a Session parameter. Para encontrar estos cmdlets en la sesión, escriba:To find these cmdlets in your session, type:

Get-Command | Where-Object {
  $_.Parameters.Keys -contains 'ComputerName' -and
  $_.Parameters.Keys -notcontains 'Session'
}

CÓMO EJECUTAR UN COMANDO REMOTOHOW TO RUN A REMOTE COMMAND

Para ejecutar otros comandos en equipos remotos, use el cmdlet Invoke-Command.To run other commands on remote computers, use the Invoke-Command cmdlet.

Para ejecutar un solo comando o algunos comandos no relacionados, use el parámetro ComputerName de Invoke-Command para especificar los equipos remotos.To run a single command or a few unrelated commands, use the ComputerName parameter of Invoke-Command to specify the remote computers. Use el parámetro ScriptBlock para especificar el comando.Use the ScriptBlock parameter to specify the command.

Por ejemplo, el siguiente comando ejecuta un comando Get-Culture en el equipo Server01.For example, the following command runs a Get-Culture command on the Server01 computer.

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}

El parámetro ComputerName está diseñado para situaciones en las que se ejecuta un solo comando o varios comandos no relacionados en uno o varios equipos.The ComputerName parameter is designed for situation in which you run a single command or several unrelated commands on one or many computers. Para establecer una conexión persistente a un equipo remoto, use el parámetro Session.To establish a persistent connection to a remote computer, use the Session parameter.

CÓMO CREAR UNA CONEXIÓN PERSISTENTE (PSSESSION)HOW TO CREATE A PERSISTENT CONNECTION (PSSESSION)

Cuando se usa el parámetro ComputerName del cmdlet Invoke-Command, Windows PowerShell establece una conexión solo para el comando.When you use the ComputerName parameter of the Invoke-Command cmdlet, Windows PowerShell establishes a connection just for the command. Después cierra la conexión cuando se completa el comando.Then, it closes the connection when the command is complete. Las variables o funciones que se definen en el comando se pierden.Any variables or functions that are defined in the command are lost.

Para crear una conexión persistente a un equipo remoto, use el cmdlet New-PSSession.To create a persistent connection to a remote computer, use the New-PSSession cmdlet. Por ejemplo, el siguiente comando crea PSSessions en los equipos Server01 y Server02 y, a continuación, guarda el PSSessions en la variable $s.For example, the following command creates PSSessions on the Server01 and Server02 computers and then saves the PSSessions in the $s variable.

$s = New-PSSession -ComputerName Server01, Server02

CÓMO EJECUTAR COMANDOS EN UNA PSSESSIONHOW TO RUN COMMANDS IN A PSSESSION

Con una PSSession, puede ejecutar una serie de comandos remotos que comparten datos, como funciones, alias y los valores de las variables.With a PSSession, you can run a series of remote commands that share data, like functions, aliases, and the values of variables. Para ejecutar comandos en una PSSession, use el parámetro Session del cmdlet Invoke-Command.To run commands in a PSSession, use the Session parameter of the Invoke-Command cmdlet.

Por ejemplo, el siguiente comando usa el cmdlet Invoke-Command para ejecutar un comando Get-Process en el PSSessions en los equipos Server01 y Server02.For example, the following command uses the Invoke-Command cmdlet to run a Get-Process command in the PSSessions on the Server01 and Server02 computers. El comando guarda los procesos en una variable de $p en cada PSSession.The command saves the processes in a $p variable in each PSSession.

Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}

Dado que la PSSession utiliza una conexión persistente, puede ejecutar otro comando en la misma PSSession que utiliza la variable $p.Because the PSSession uses a persistent connection, you can run another command in the same PSSession that uses the $p variable. El comando siguiente cuenta el número de procesos guardados en $p.The following command counts the number of processes saved in $p.

Invoke-Command -Session $s -ScriptBlock {$p.count}

CÓMO EJECUTAR UN COMANDO REMOTO EN VARIOS EQUIPOSHOW TO RUN A REMOTE COMMAND ON MULTIPLE COMPUTERS

Para ejecutar un comando remoto en varios equipos, escriba todos los nombres de equipo en el valor del parámetro ComputerName de Invoke-Command.To run a remote command on multiple computers, type all of the computer names in the value of the ComputerName parameter of Invoke-Command. Separe los nombres con comas.Separate the names with commas.

Por ejemplo, el siguiente comando ejecuta un comando Get-Culture en tres equipos:For example, the following command runs a Get-Culture command on three computers:

Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}

También puede ejecutar un comando en varios PSSessions.You can also run a command in multiple PSSessions. Los siguientes comandos crean PSSessions en los equipos Server01, Server02 y Server03 y, a continuación, ejecutan un comando Get-Culture en cada una de las PSSessions.The following commands create PSSessions on the Server01, Server02, and Server03 computers and then run a Get-Culture command in each of the PSSessions.

$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}

Para incluir la lista de equipos del equipo local, escriba el nombre del equipo local, escriba un punto (.) o escriba "localhost".To include the local computer list of computers, type the name of the local computer, type a dot (.), or type "localhost".

Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

CÓMO EJECUTAR UN SCRIPT EN EQUIPOS REMOTOSHOW TO RUN A SCRIPT ON REMOTE COMPUTERS

Para ejecutar un script local en equipos remotos, use el parámetro FilePath de Invoke-Command.To run a local script on remote computers, use the FilePath parameter of Invoke-Command.

Por ejemplo, el siguiente comando ejecuta el script Sample.ps1 en los equipos S1 y S2:For example, the following command runs the Sample.ps1 script on the S1 and S2 computers:

Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1

Los resultados del script se devuelven al equipo local.The results of the script are returned to the local computer. No es necesario copiar ningún archivo.You do not need to copy any files.

CÓMO DETENER UN COMANDO REMOTOHOW TO STOP A REMOTE COMMAND

Para interrumpir un comando, presione CTRL + C.To interrupt a command, press CTRL+C. La solicitud de interrupción se pasa al equipo remoto en el que finaliza el comando remoto.The interrupt request is passed to the remote computer where it terminates the remote command.

PARA OBTENER MÁS INFORMACIÓNFOR MORE INFORMATION

  • Para obtener información sobre los requisitos del sistema para la comunicación remota, vea about_Remote_Requirements.For information about the system requirements for remoting, see about_Remote_Requirements.

  • Para obtener ayuda para dar formato a la salida remota, vea about_Remote_Output.For help in formatting remote output, see about_Remote_Output.

  • Para obtener información sobre cómo funciona la comunicación remota, cómo administrar datos remotos, configuraciones especiales, problemas de seguridad y otras preguntas más frecuentes, consulte about_Remote_FAQ.For information about how remoting works, how to manage remote data, special configurations, security issues, and other frequently asked questions, see about_Remote_FAQ.

  • Para obtener ayuda en la resolución de errores de comunicación remota, consulte about_Remote_Troubleshooting.For help in resolving remoting errors, see about_Remote_Troubleshooting.

  • Para obtener información sobre PSSessions y las conexiones persistentes, consulte about_PSSessions.For information about PSSessions and persistent connections, see about_PSSessions.

  • Para obtener información sobre los trabajos en segundo plano de PowerShell, consulte about_Jobs.For information about PowerShell background jobs, see about_Jobs.

PALABRAKEYWORDS

about_Remotingabout_Remoting

CONSULTE TAMBIÉNSEE ALSO

about_PSSessionsabout_PSSessions

about_Remote_Disconnected_Sessionsabout_Remote_Disconnected_Sessions

about_Remote_Requirementsabout_Remote_Requirements

about_Remote_FAQabout_Remote_FAQ

about_Remote_TroubleShootingabout_Remote_TroubleShooting

about_Remote_Variablesabout_Remote_Variables

Enter-PSSessionEnter-PSSession

Invoke-CommandInvoke-Command

New-PSSessionNew-PSSession