Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Одна команда Windows PowerShell позволяет запускать команды на одном или сотнях компьютеров. Windows PowerShell поддерживает удаленные вычисления с помощью различных технологий, включая WMI, RPC и WS-Management.
PowerShell поддерживает удаленное управление с использованием WMI, WS-Management и SSH. В PowerShell 7 и более поздних версиях RPC поддерживается только в Windows.
Дополнительные сведения об удаленном взаимодействии в PowerShell см. в следующих статьях:
Удаленное взаимодействие с Windows PowerShell без настройки
Многие командлеты Windows PowerShell имеют параметр ComputerName, который позволяет собирать данные и изменять параметры одного или нескольких удаленных компьютеров. Эти командлеты используют разные протоколы связи и работают во всех операционных системах Windows без специальной настройки.
К этим командлетам относятся:
- Перезагрузить-компьютер
- Проверка подключения
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
Обычно командлеты, которые поддерживают удаленное взаимодействие без специальной настройки, имеют параметр ComputerName и не имеют параметра Session. Чтобы найти эти командлеты в сеансе, введите:
Get-Command | Where-Object {
$_.Parameters.Keys -contains "ComputerName" -and
$_.Parameters.Keys -notcontains "Session"
}
Удаленное управление Windows PowerShell
С помощью протокола WS-Management удаленное взаимодействие Windows PowerShell позволяет выполнять любую команду Windows PowerShell на одном или нескольких удаленных компьютерах. Вы можете установить постоянные подключения, запустить интерактивные сеансы и запустить скрипты на удаленных компьютерах.
Чтобы использовать удаленное управление Windows PowerShell, удаленный компьютер должен быть настроен для удаленного управления. Дополнительные сведения, включая инструкции, см. в разделе "О требованиях к удаленной работе".
После настройки удаленного взаимодействия Windows PowerShell вам доступны многие стратегии удаленного взаимодействия. В этой статье перечислены лишь некоторые из них. Дополнительные сведения см. в разделе об удаленном.
Запуск интерактивного сеанса
Чтобы запустить интерактивный сеанс с одним удаленным компьютером, используйте командлет Enter-PSSession. Например, чтобы запустить интерактивный сеанс с удаленным компьютером Server01, введите следующее:
Enter-PSSession Server01
Командная строка изменяется, чтобы отображать имя удаленного компьютера. Команды, которые вы вводите в командной строке, выполняются на удаленном компьютере, а результаты отображаются на локальном компьютере.
Чтобы завершить интерактивный сеанс, введите следующее:
Exit-PSSession
Дополнительные сведения о командлетах Enter-PSSession
и Exit-PSSession
см. в следующей статье:
- Войти-PSSession
- exit-PSSession (выход из сеанса PowerShell)
Выполнение удаленной команды
Чтобы выполнить команду на одном или нескольких компьютерах, используйте командлет Invoke-Command. Например, чтобы запустить команду Get-UICulture на удаленных компьютерах Server01 и Server02, введите следующее:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
Выходные данные возвращаются на компьютер.
LCID Name DisplayName PSComputerName
---- ---- ----------- --------------
1033 en-US English (United States) server01.corp.fabrikam.com
1033 en-US English (United States) server02.corp.fabrikam.com
Запуск скрипта
Чтобы запустить скрипт на одном или нескольких удаленных компьютерах, используйте параметр FilePath командлета Invoke-Command
. Скрипт должен быть включен или доступен на локальном компьютере. Результаты возвращаются на локальный компьютер.
Например, следующая команда запускает скрипт DiskCollect.ps1
на удаленных компьютерах, Server01 и Server02.
Invoke-Command -ComputerName Server01, Server02 -FilePath C:\Scripts\DiskCollect.ps1
Установка постоянного подключения
Используйте командлет New-PSSession
для создания постоянного сеанса на удаленном компьютере. В следующем примере создаются удаленные сеансы на Сервере01 и Server02. Объекты сеанса хранятся в переменной $s
.
$s = New-PSSession -ComputerName Server01, Server02
После того как сеансы установлены, в них можно выполнить любую команду. Так как сеансы являются постоянными, вы можете собирать данные из одной команды и использовать их в другой.
Например, следующая команда запускает команду Get-HotFix
в сеансах в переменной $s
и сохраняет результаты в переменной $h
. Переменная $h
создается в каждом сеансе из $s
, но она не существует в локальном сеансе.
Invoke-Command -Session $s {$h = Get-HotFix}
Теперь можно использовать данные в переменной $h
с другими командами в том же сеансе. Результаты отображаются на локальном компьютере. Рассмотрим пример.
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NT AUTHORITY\SYSTEM"}}
Расширенное удалённое управление
PowerShell включает командлеты, которые позволяют:
- Настраивайте и создавайте удаленные сеансы как с локальной, так и с удаленной стороны.
- Создание настраиваемых и ограниченных сеансов
- Импорт команд из удаленного сеанса, которые выполняются автоматически неявно на этом удаленном сеансе.
- Настройка безопасности удаленного сеанса
PowerShell в Windows включает поставщика WSMan. Поставщик создает WSMan:
диск, который позволяет перемещаться по иерархии параметров конфигурации на локальном компьютере и удаленных компьютерах.
Дополнительные сведения о поставщике WSMan см. в поставщика WSMan и сведения о командлетах WS-Managementили в консоли Windows PowerShell, введите Get-Help WSMan
.
Дополнительные сведения можно найти здесь
- часто задаваемые вопросы о удаленном взаимодействии PowerShell
- Register-PSSessionConfiguration
- Import-PSSession
Для получения информации об ошибках удаленного взаимодействия см. в about_Remote_Troubleshooting.
См. также
PowerShell