Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Краткое описание
Описывает выполнение удаленных команд в 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