Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Краткое описание
Описывает выполнение удаленных команд в PowerShell.
Длинное описание
Удаленные команды можно выполнять на одном или нескольких удаленных компьютерах с помощью временного или постоянного подключения. Вы также можете запустить интерактивный сеанс с одним удаленным компьютером.
Заметка
Чтобы использовать удаленное взаимодействие PowerShell, необходимо настроить локальные и удаленные компьютеры для удаленного взаимодействия. Дополнительные сведения см. в about_Remote_Requirements.
Запуск интерактивного сеанса
Самый простой способ запустить удаленные команды — запустить интерактивный сеанс с удаленным компьютером.
При запуске сеанса команды, которые вы вводите на удаленном компьютере, как будто вы ввели их непосредственно на удаленном компьютере. Вы можете подключиться только к одному компьютеру в каждом интерактивном сеансе.
Чтобы запустить интерактивный сеанс, используйте командлет Enter-PSSession. Следующая команда запускает интерактивный сеанс с компьютером Server01:
Enter-PSSession Server01
PowerShell изменяет командную строку, чтобы включить имя удаленного компьютера.
Server01\PS>
Теперь можно ввести команды на компьютере Server01.
Чтобы завершить интерактивный сеанс, введите следующее:
Exit-PSSession
Дополнительные сведения см. в Ввод-PSSession.
Выполнение удаленной команды
Чтобы выполнить другие команды на удаленных компьютерах, используйте командлет Invoke-Command.
Чтобы выполнить одну команду или несколько несвязанных команд, используйте параметр Invoke-Command, чтобы указать удаленные компьютеры. Используйте параметр ScriptBlock, чтобы указать команду.
Например, следующая команда выполняет команду Get-Culture на компьютере Server01.
Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}
Создание постоянного подключения
При использовании параметра ComputerName командлета Invoke-Command PowerShell устанавливает временное подключение к удаленному компьютеру. При завершении команды он закрывает подключение. Все переменные или функции, определенные в этом временном сеансе, теряются.
Чтобы создать постоянное подключение к удаленному компьютеру, используйте командлет New-PSSession. Например, следующая команда создает psSessions на компьютерах Server01 и Server02, а затем сохраняет psSessions в переменной $s.
$s = New-PSSession -ComputerName Server01, Server02
Выполнение команд в PSSession
С помощью PSSession можно выполнять ряд удаленных команд, которые совместно используют данные, такие как функции, псевдонимы и значения переменных. Чтобы выполнить команды в PSSession, используйте параметр сеанса командлета Invoke-Command.
Например, следующая команда использует командлет Invoke-Command для выполнения команды Get-Process на компьютерах PSSessions на компьютерах Server01 и Server02.
Команда сохраняет процессы в переменной $p в каждой среде PSSession.
Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}
Так как PSSession использует постоянное подключение, можно выполнить другую команду в той же psSession, которая использует переменную $p. Следующая команда подсчитывает количество процессов, сохраненных в $p.
Invoke-Command -Session $s -ScriptBlock {$p.Count}
Запуск удаленной команды на нескольких компьютерах
Чтобы выполнить удаленную команду на нескольких компьютерах, введите все имена компьютеров в значении параметра ComputerNameInvoke-Command. Разделите имена запятыми.
Например, следующая команда выполняет команду Get-Culture на трех компьютерах:
Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}
Вы также можете выполнить команду в нескольких PSSessions. Следующие команды создают psSessions на компьютерах Server01, Server02 и Server03, а затем выполняют команду Get-Culture в каждой из PSSessions.
$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}
Чтобы включить список локальных компьютеров, введите имя локального компьютера, введите точку (.) или введите localhost.
Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}
Запуск скрипта на удаленных компьютерах
Чтобы запустить локальный скрипт на удаленных компьютерах, используйте параметр FilePathInvoke-Command. Вам не нужно копировать файлы. Например, следующая команда запускает скрипт Sample.ps1 на компьютерах S1 и S2:
Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1
PowerShell возвращает результаты скрипта на локальный компьютер.
Как остановить удаленную команду
Чтобы прервать команду, нажмите клавиши CTRL +c. PowerShell передает запрос прерывания удаленному компьютеру, где он завершает удаленную команду.
Узнать больше
Сведения о требованиях к системе для удаленного взаимодействия см. в about_Remote_Requirements.
Сведения о форматировании удаленных выходных данных см. в about_Remote_Output.
Сведения о том, как работает удаленное взаимодействие, как управлять удаленными данными, специальными конфигурациями, проблемами безопасности и другими часто задаваемыми вопросами, см. в статье вопросы и ответы о удаленном взаимодействии PowerShell.
Сведения об устранении ошибок удаленного взаимодействия см. в about_Remote_Troubleshooting.
Сведения о PSSessions и постоянных подключениях см. в about_PSSessions.
Сведения о фоновых заданиях PowerShell см. в about_Jobs.
См. также
PowerShell