Об удаленнойAbout Remote

КРАТКОЕ ОПИСАНИЕSHORT DESCRIPTION

Описание выполнения удаленных команд в Windows PowerShell.Describes how to run remote commands in Windows PowerShell.

ПОДРОБНОЕ ОПИСАНИЕLONG DESCRIPTION

Удаленные команды можно выполнять на одном компьютере или на нескольких компьютерах, используя временное или постоянное подключение.You can run remote commands on a single computer or on multiple computers by using a temporary or persistent connection. Можно также запустить интерактивный сеанс с одним удаленным компьютером.You can also start an interactive session with a single remote computer.

В этом разделе приводится ряд примеров, демонстрирующих выполнение различных типов удаленных команд.This topic provides a series of examples to show you how to run different types of remote command. После выполнения этих основных команд ознакомьтесь с разделами справки, описывающими каждый командлет, используемый в этих командах.After you try these basic commands, read the Help topics that describe each cmdlet that is used in these commands. В этих разделах содержатся сведения и объясняется, как можно изменить команды в соответствии с вашими потребностями.The topics provide the details and explain how you can modify the commands to meet your needs.

Примечание. чтобы использовать удаленное взаимодействие Windows PowerShell, на локальном и удаленном компьютерах необходимо настроить удаленное взаимодействие.Note: To use Windows PowerShell remoting, the local and remote computers must be configured for remoting. Дополнительные сведения см. в разделе about_Remote_Requirements.For more information, see about_Remote_Requirements.

КАК ЗАПУСТИТЬ ИНТЕРАКТИВНЫЙ СЕАНС (ENTER-PSSESSION)HOW TO START AN INTERACTIVE SESSION (ENTER-PSSESSION)

Самый простой способ запуска удаленных команд — запустить интерактивный сеанс с удаленным компьютером.The easiest way to run remote commands is to start an interactive session with a remote computer.

При запуске сеанса команды, которые вы вводите, выполняются на удаленном компьютере, точно так же, как если бы они были введены непосредственно на удаленном компьютере.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. В каждом интерактивном сеансе можно подключиться только к одному компьютеру.You can connect to only one computer in each interactive session.

Чтобы запустить интерактивный сеанс, используйте командлет Enter-PSSession.To start an interactive session, use the Enter-PSSession cmdlet. Следующая команда запускает интерактивный сеанс с компьютером Server01:The following command starts an interactive session with the Server01 computer:

Enter-PSSession Server01

Командная строка изменится, указывая, что вы подключены к компьютеру Server01.The command prompt changes to indicate that you are connected to the Server01 computer.

Server01\PS>

Теперь можно ввести команды на компьютере Server01.Now, you can type commands on the Server01 computer.

Чтобы завершить интерактивный сеанс, введите:To end the interactive session, type:

Exit-PSSession

Дополнительные сведения см. в разделе Ввод-PSSession.For more information, see Enter-PSSession.

ИСПОЛЬЗОВАНИЕ КОМАНДЛЕТОВ С ПАРАМЕТРОМ COMPUTERNAME ДЛЯ ПОЛУЧЕНИЯ УДАЛЕННЫХ ДАННЫХHOW TO USE CMDLETS THAT HAVE A COMPUTERNAME PARAMETER TO GET REMOTE DATA

Несколько командлетов имеют параметр ComputerName, позволяющий получать объекты с удаленных компьютеров.Several cmdlets have a ComputerName parameter that lets you get objects from remote computers.

Поскольку эти командлеты не используют удаленное взаимодействие Windows PowerShell на основе WS-Management, можно использовать параметр ComputerName этих командлетов на любом компьютере с Windows PowerShell.Because these cmdlets do not use WS-Management-based Windows PowerShell remoting, you can use the ComputerName parameter of these cmdlets on any computer that is running Windows PowerShell. Компьютеры не обязательно должны быть настроены для удаленного взаимодействия Windows PowerShell, а компьютеры не должны отвечать требованиям к системе для удаленного взаимодействия.The computers do not have to be configured for Windows PowerShell remoting, and the computers do not have to meet the system requirements for remoting.

Следующие командлеты имеют параметр 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

Например, следующая команда получает службы на удаленном компьютере Server01:For example, the following command gets the services on the Server01 remote computer:

Get-Service -ComputerName Server01

Как правило, командлеты, поддерживающие удаленное взаимодействие без специальной настройки, имеют параметр ComputerName и не имеют параметра сеанса .Typically, cmdlets that support remoting without special configuration have a ComputerName parameter and do not have a Session parameter. Чтобы найти эти командлеты в сеансе, введите:To find these cmdlets in your session, type:

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

ВЫПОЛНЕНИЕ УДАЛЕННОЙ КОМАНДЫHOW TO RUN A REMOTE COMMAND

Чтобы выполнить другие команды на удаленных компьютерах, используйте командлет Invoke-Command.To run other commands on remote computers, use the Invoke-Command cmdlet.

Чтобы выполнить одну команду или несколько несвязанных команд, используйте параметр ComputerName параметра Invoke-Command, чтобы указать удаленные компьютеры.To run a single command or a few unrelated commands, use the ComputerName parameter of Invoke-Command to specify the remote computers. Используйте параметр ScriptBlock для указания команды.Use the ScriptBlock parameter to specify the command.

Например, следующая команда выполняет команду Get-Culture на компьютере Server01.For example, the following command runs a Get-Culture command on the Server01 computer.

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

Параметр ComputerName предназначен для ситуации, когда на одном или нескольких компьютерах выполняется одна команда или несколько несвязанных команд.The ComputerName parameter is designed for situation in which you run a single command or several unrelated commands on one or many computers. Чтобы установить постоянное подключение к удаленному компьютеру, используйте параметр Session.To establish a persistent connection to a remote computer, use the Session parameter.

СОЗДАНИЕ ПОСТОЯННОГО ПОДКЛЮЧЕНИЯ (PSSESSION)HOW TO CREATE A PERSISTENT CONNECTION (PSSESSION)

При использовании параметра ComputerName командлета Invoke-Command Windows PowerShell устанавливает соединение только для команды.When you use the ComputerName parameter of the Invoke-Command cmdlet, Windows PowerShell establishes a connection just for the command. Затем по завершении команды она закрывает подключение.Then, it closes the connection when the command is complete. Все переменные или функции, определенные в команде, теряются.Any variables or functions that are defined in the command are lost.

Чтобы создать постоянное подключение к удаленному компьютеру, используйте командлет New-PSSession.To create a persistent connection to a remote computer, use the New-PSSession cmdlet. Например, следующая команда создает PSSession на компьютерах Server01 и Server02, а затем сохраняет PSSession в переменной $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

ВЫПОЛНЕНИЕ КОМАНД В PSSESSIONHOW TO RUN COMMANDS IN A PSSESSION

С помощью PSSession можно выполнять ряд удаленных команд, которые совместно используют данные, такие как функции, псевдонимы и значения переменных.With a PSSession, you can run a series of remote commands that share data, like functions, aliases, and the values of variables. Для выполнения команд в PSSession используйте параметр Session командлета Invoke-Command.To run commands in a PSSession, use the Session parameter of the Invoke-Command cmdlet.

Например, следующая команда использует командлет Invoke-Command для выполнения команды Get-Process в PSSession на компьютерах Server01 и 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. Команда сохраняет процессы в переменной $p в каждом сеансе PSSession.The command saves the processes in a $p variable in each PSSession.

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

Так как сеанс PSSession использует постоянное подключение, можно выполнить другую команду в том же сеансе PSSession, который использует переменную $p.Because the PSSession uses a persistent connection, you can run another command in the same PSSession that uses the $p variable. Следующая команда подсчитывает количество процессов, сохраненных в $p.The following command counts the number of processes saved in $p.

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

ВЫПОЛНЕНИЕ УДАЛЕННОЙ КОМАНДЫ НА НЕСКОЛЬКИХ КОМПЬЮТЕРАХHOW TO RUN A REMOTE COMMAND ON MULTIPLE COMPUTERS

Чтобы выполнить удаленную команду на нескольких компьютерах, введите все имена компьютеров в значении параметра ComputerName команды 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. Разделяйте имена запятыми.Separate the names with commas.

Например, следующая команда выполняет команду Get-Culture на трех компьютерах:For example, the following command runs a Get-Culture command on three computers:

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

Можно также выполнить команду в нескольких PSSession.You can also run a command in multiple PSSessions. Следующие команды создают PSSession на компьютерах Server01, Server02 и Server03, а затем выполняют Get-Cultureную команду в каждом из PSSession.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}

Чтобы включить список компьютеров локального компьютера, введите имя локального компьютера, введите точку (.) или введите 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}

ЗАПУСК СЦЕНАРИЯ НА УДАЛЕННЫХ КОМПЬЮТЕРАХHOW TO RUN A SCRIPT ON REMOTE COMPUTERS

Чтобы запустить локальный скрипт на удаленных компьютерах, используйте параметр FilePath командлета Invoke-Command.To run a local script on remote computers, use the FilePath parameter of Invoke-Command.

Например, следующая команда запускает сценарий Sample.ps1 на компьютерах S1 и 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

Результаты сценария возвращаются на локальный компьютер.The results of the script are returned to the local computer. Нет необходимости копировать файлы.You do not need to copy any files.

КАК ПРЕРЫВАТЬ УДАЛЕННУЮ КОМАНДУHOW TO STOP A REMOTE COMMAND

Чтобы прервать выполнение команды, нажмите клавиши CTRL + C.To interrupt a command, press CTRL+C. Запрос на прерывание передается на удаленный компьютер, на котором завершается Удаленная команда.The interrupt request is passed to the remote computer where it terminates the remote command.

ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯFOR MORE INFORMATION

  • Сведения о требованиях к системе для удаленного взаимодействия см. в разделе about_Remote_Requirements.For information about the system requirements for remoting, see about_Remote_Requirements.

  • Справку по форматированию удаленных выходных данных см. в разделе about_Remote_Output.For help in formatting remote output, see about_Remote_Output.

  • Сведения о принципах работы удаленного взаимодействия, об управлении удаленными данными, специальных конфигурациях, проблемах безопасности и других часто задаваемых вопросах см. в разделе 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.

  • Дополнительные сведения об устранении ошибок удаленного взаимодействия см. в разделе about_Remote_Troubleshooting.For help in resolving remoting errors, see about_Remote_Troubleshooting.

  • Дополнительные сведения о PSSession и постоянных подключениях см. в разделе about_PSSessions.For information about PSSessions and persistent connections, see about_PSSessions.

  • Дополнительные сведения о фоновых заданиях Windows PowerShell см. в разделе about_Jobs.For information about Windows PowerShell background jobs, see about_Jobs.

СЛОВАМИKEYWORDS

about_Remotingabout_Remoting

СМ. ТАКЖЕSEE 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