Powershell подключение к удаленному компьютеру: Удаленное подключение к компьютерам через PowerShell Remoting в рабочей группе (без домена)
Содержание
Удаленное подключение к компьютерам через PowerShell Remoting в рабочей группе (без домена)
PowerShell Remoting отличный инструмент, который позволяет подключаться и выполнять команды на удаленных компьютерах через WinRM. Если компьютеры находятся в одном домене Active Directory, то PSRemoting использует Kerberos для аутентификации на удалённых хостах. Однако, если ваши компьютеры находятся в рабочей группе, то для аутентификации придется использовать NTLM (TrustedHosts) или SSL сертификаты. В этой статье мы рассмотрим, как настроить PSRemoting для удаленного подключения к компьютеру в рабочей группе.
В нашем примере в локальной сети на базе рабочей группы Windows есть два хоста:
- Рабочая станция администратора —
192.168.13.100
- Компьютер пользователя —
192.168.13.222
Наша задача – удаленно подключиться к компьютеру пользователя через PowerShell Remoting.
Прежде всего нужно включить и настроить WinRM на удаленном компьютере. Включить WinRM на удаленном компьютере придется локально или удаленно (например, через RDP или psexec).
Проверьте, что на компьютере запущена служба WinRM:
Get-Service -Name "*WinRM*" | select status
Если служба не запущена, запустите ее:
Enable-PSRemoting
WinRM has been updated to receive requests. WinRM service type changed successfully. WinRM service started. WinRM has been updated for remote management. WinRM firewall exception enabled. Configured LocalAccountTokenFilterPolicy to grant administrative rights remotely to local users.
Как вы видите, автоматически включен параметр UAC LocalAccountTokenFilterPolicy, разрешающий удаленный доступ под учетной записью с правами администратора.
Если для сетевого подключения на компьютере установлен тип сети Public (общедоступная), то при включении WinRM появится ошибка:
Set-WSManQuickConfig : ... WinRM firewall exception will not work since one of the network connection types on this machine is set to Public. Change the network connection type to either Domain or Private and try again.
Вам нужно изменить тип сети на частную (private) (
Set-NetConnectionProfile -NetworkCategory Private
), или использовать команду:
Enable-PSRemoting –SkipNetworkProfileCheck.
Откройте порт (TCP 5985) для подключения к WinRM в Windows Defender Firewall. Проще всего открыть порт с помощью PowerShell. В этом примере мы откроем удаленный доступ только для IP адреса компьютера администратора (безопаснее), но можно открыть и для всех (укажите Any вместо IP адреса):
Set-NetFirewallRule -DisplayName "Windows Remote Management (HTTP-In)" -RemoteAddress 192.168.13.100
Enable-NetFirewallRule -DisplayName "Windows Remote Management (HTTP-In)"
С компьютера администратора проверьте, что компьютер пользователя теперь разрешает принимать удаленные подключения через PSRemoting:
Test-NetConnection 192.168.13.222 –Port 5985
Test-WsMan 192. 168.13.222
Однако, если попытаться удаленно подключиться к компьютеру пользователя с помощью команд Invoke-Command или Enter-PSSession, появится ошибка:
Enter-PSSession 192.168.13.222
Enter-PSSession : Connecting to remote server 192.168.13.222 failed with the following error message: The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. PSRemotingTransportException.
HTTP Listener WinRM на удаленном компьютере разрешает подключение только через Kerberos аутентификацию.
Get-ChildItem -Path WSMan:\localhost\Service\Auth\
Чтобы работала Negotiate аутентификация через NTLM ваш компьютер должны доверять удаленному компьютеру. В домене это достигается с помощью Kerberos, а в рабочей группе придется добавить IP адреса компьютера в TrustedHosts.
Добавьте компьютер пользователя в TrustedHosts на компьютере администратора (можно добавить по IP адресу или FQDN):
Set-Item wsman:\localhost\client\TrustedHosts -Value 192.168.13.222 -Force
Также вы можете разрешить удаленное подключение ко все компьютерам (обычно не рекомендуется, т.к. один из главных недостатков NTLM в том, что он не осуществляет проверку подлинности).
Set-Item wsman:\localhost\Client\TrustedHosts -value *
Попробуйте теперь подключиться к удаленному компьютеру через PSRemoting:
Enter-PSSession -ComputerName 192.168.13.222 -Credential 192.168.13.222\root
Введите пароль администратора удаленного компьютера и убедитесь, что подключение успешно установлено (в строке приглашения PowerShell теперь отображается имя или IP удаленного компьютера).
С помощью Invoke-Command вы можете выполнять команды на удаленных компьютерах. Например, выполнить удалённую перезагрузку компьютера:
Invoke-Command -ComputerName 192.168.13.222 -Credential 192.168.13.222\root –ScriptBlock {Restart-Computer}
Или выполнить PowerShell скрипт:
Invoke-Command -ComputerName 192.168.13.222 -Credential 192.168.13.222\root -FilePath c:\PS\Scripts\GetComputerInfo.ps1
Также вы можете использовать в WinRM протокол HTTPS для подключения к удаленным компьютерам. Для этого нужно выпустить SSL сертификат на удаленном компьютере и импортировать его на компьютер администратора. В этом случае не нужно добавлять адрес удаленного компьютера в TrustedHosts. Подробнее о настройке PowerShell Remoting через WinRM HTTPS.
Обратите внимание, что для аутентификации на удаленном компьютере нужно указывать пароль пользователя для подключения с помощью опции –Credential. Если в вашей сети много компьютеров и на каждом из них используется свой пароль локального администратора, удобно хранить пароли подключения в хранилище. Это может быть как локальное хранилище паролей Windows Credential Manager или внешнее хранилище KeePass, LastPass, HashiCorp Vault, Azure Key Vault, Bitwarden.
Для доступа к сохраненным паролям в таком хранилище можно использовать модуль PowerShell Secret Management. Теперь для подключения к удаленному компьютеру через PSRemoting вам достаточно:
- Сохранить пароль для подключения, например в Credential Manager:
cmdkey /add:192.168.13.222 /user:root /pass:Password
- Получить имя и пароль из хранилища с помощью модуля CredentialManager:
$psCred = Get-StoredCredential -Target "192.168.13.222"
- Подключиться к удаленному компьютеру через PSRemoting с сохраненным паролем:
Enter-PSSession -ComputerName 192.168.13.222 -Credential $psCred
Если вы храните пароли в другом типе хранилища, используйте модуль Microsoft.PowerShell.SecretManagement для получения сохранённых учетных данных.
В новых версиях PowerShell(v6 и v7) вы можете использовать протокола Secure Shell (SSH) для подключения к удаленному компьютеру через PowerShell Remoting. Для этого в Windows должен быть включен встроенный SSH сервер. Можно даже аутентифицироваться по SSH с помощью RSA ключа:
Enter-PSSession -HostName [email protected]:22 -KeyFilePath c:\PS\your_rsa_key
По умолчанию WinRM разрешает удаленное подключение только для администраторов. Однако вы можете разрешить удаленный доступ через PSRemoting и для обычных пользователей.
Выполнение удаленных команд — PowerShell
-
Статья -
- Чтение занимает 3 мин
-
Одна команда Windows PowerShell позволяет запускать команды на одном или сотнях компьютеров. Windows PowerShell поддерживает удаленное вычисление с помощью разных технологий, включая WMI, RPC и WS-Management.
PowerShell поддерживает удаленное взаимодействие WMI, WS-Management и SSH. В PowerShell 6 RPC больше не поддерживается. В PowerShell 7 и более поздних версиях RPC поддерживается только в Windows.
Дополнительные сведения о удаленном взаимодействии в PowerShell см. в следующих статьях:
- Удаленное взаимодействие через SSH в PowerShell
- Удаленное взаимодействие через WSMan в PowerShell
Удаленное взаимодействие с Windows PowerShell без настройки
Многие командлеты Windows PowerShell имеют параметр ComputerName, который позволяет собирать данные и изменять параметры одного или нескольких удаленных компьютеров. Эти командлеты используют разные протоколы связи и работают во всех операционных системах Windows без специальной настройки.
В эти командлеты входят следующие:
- Restart-Computer
- Test-Connection
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
Обычно командлеты, которые поддерживают удаленное взаимодействие без специальной настройки, имеют параметр ComputerName, но не имеют параметра Session. Чтобы найти эти командлеты в сеансе, введите:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Служба удаленного взаимодействия Windows PowerShell
Благодаря использованию протокола WS-Management служба удаленного взаимодействия Windows PowerShell позволяет запустить любую команду Windows PowerShell на одном или нескольких удаленных компьютерах. Вы можете устанавливать постоянные подключения, запускать интерактивные сеансы и выполнять скрипты на удаленных компьютерах.
Чтобы использовать службу удаленного взаимодействия Windows PowerShell, удаленный компьютер должен быть настроен для удаленного управления.
Дополнительные сведения, в том числе инструкции, см. в разделе about_Remote_Requirements.
После настройки службы удаленного взаимодействия Windows PowerShell вы получите доступ ко многим стратегиям удаленного взаимодействия.
В этой статье перечислены только некоторые из них. См. дополнительные сведения об удаленном взаимодействии.
Запуск интерактивного сеанса
Чтобы запустить интерактивный сеанс с одним удаленным компьютером, используйте командлет Enter-PSSession. Например, чтобы запустить интерактивный сеанс с удаленным компьютером Server01, введите:
Enter-PSSession Server01
В командной строке отобразится имя удаленного компьютера. Все команды, введенные в командной строке, запускаются на удаленном компьютере, а результаты отображаются на локальном компьютере.
Чтобы завершить интерактивный сеанс, введите:
Exit-PSSession
См. дополнительные сведения о командлетах Enter-PSSession и Exit-PSSession:
- Enter-PSSession
- Exit-PSSession;
Выполнение удаленной команды
Чтобы выполнить команду на одном или нескольких компьютерах, используйте командлет 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
для создания постоянного сеанса на удаленном компьютере. В следующем примере создаются удаленные сеансы на удаленных компьютерах Server01 и 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"}}
Расширенная служба удаленного взаимодействия
Это и есть служба удаленного взаимодействия Windows PowerShell. Используя командлеты, установленные с Windows PowerShell, можно установить и настроить удаленные сеансы с локальных и удаленных компьютеров, создать настраиваемые и ограниченные сеансы, разрешить пользователям импортировать команды из удаленного сеанса, которые могут неявно выполняться в удаленном сеансе, настроить безопасность удаленного сеанса и многое другое.
Windows PowerShell включает поставщик WSMan. Поставщик создает диск WSMAN:
, который позволяет перемещаться по иерархии параметров конфигурации на локальном и удаленном компьютерах.
См. дополнительные сведения о поставщике WSMan и командлетах WS-Management или введите команду Get-Help wsman
в консоли Windows PowerShell.
Дополнительные сведения можно найти в разделе
- Вопросы и ответы об удаленном взаимодействии PowerShell
- Register-PSSessionConfiguration
- Import-PSSession
Справку по ошибкам службы удаленного взаимодействия см. в разделе about_Remote_Troubleshooting.
См. также:
- about_Remote
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Invoke-Command
- Import-PSSession
- New-PSSession
- Register-PSSessionConfiguration
- Поставщик WSMan
Запуск удаленных команд — PowerShell
- Статья
- 3 минуты на чтение
Вы можете запускать команды на одном или сотнях компьютеров с помощью одной команды PowerShell. Окна
PowerShell поддерживает удаленные вычисления с использованием различных технологий, включая WMI, RPC и
WS-менеджмент.
PowerShell поддерживает удаленное взаимодействие WMI, WS-Management и SSH. В PowerShell 6 RPC больше не используется.
поддерживается. В PowerShell 7 и более поздних версиях RPC поддерживается только в Windows.
Дополнительные сведения об удаленном взаимодействии в PowerShell см. в следующих статьях:
- Удаленное взаимодействие SSH в PowerShell
- Удаленное взаимодействие WSMan в PowerShell
Удаленное взаимодействие Windows PowerShell без настройки
Многие командлеты Windows PowerShell имеют параметр ComputerName, который позволяет собирать данные и
изменить настройки на одном или нескольких удаленных компьютерах. Эти командлеты используют различные протоколы связи.
и работать на всех операционных системах Windows без какой-либо специальной настройки.
К этим командлетам относятся:
- Restart-Computer
- Тестовое соединение
- Очистить журнал событий
- Get-EventLog
- Get-HotFix
- Процесс получения
- Get-Service
- Набор-Сервис
- Get-WinEvent
- Get-WmiObject
Как правило, командлеты, поддерживающие удаленное взаимодействие без специальной настройки, имеют имя_компьютера
параметр и не имеют параметра сеанса. Чтобы найти эти командлеты в вашем сеансе, введите:
Команда Get | где { $_.parameters.keys — содержит «ComputerName» — и $_.parameters.keys — не содержит «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 см. по адресу:
- Enter-PSSession
- Выход-PSSession
Запуск удаленной команды
Чтобы запустить команду на одном или нескольких компьютерах, используйте
Командлет Invoke-Command. Например,
запустить команду Get-UICulture на
на удаленных компьютерах Server01 и Server02 введите:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
Результат возвращается на ваш компьютер.
Имя LCID DisplayName PSComputerName ---- ---- ----------- -------------- 1033 en-US Английский (США) server01.corp.fabrikam.com 1033 en-US Английский (США) server02.corp.fabrikam.com
Запуск сценария
Чтобы запустить сценарий на одном или нескольких удаленных компьютерах, используйте параметр FilePath команды Invoke-Command
командлет. Сценарий должен быть включен или доступен для вашего локального компьютера. Результаты возвращаются на ваш
локальный компьютер.
Например, следующая команда запускает сценарий DiskCollect.ps1 на удаленных компьютерах, Server01
и Сервер02.
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
Установка постоянного подключения
Используйте командлет New-PSSession
для создания постоянного сеанса на удаленном компьютере. Следующее
Пример создает удаленные сеансы на Server01 и 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 | где {$_.InstalledBy -ne "NT AUTHORITY\SYSTEM"}}
Advanced Remoting
Удаленное управление Windows PowerShell только начинается здесь. С помощью командлетов, установленных вместе с Windows
PowerShell, вы можете устанавливать и настраивать удаленные сеансы как с локальной, так и с удаленной стороны,
создавать индивидуальные и ограниченные сеансы, позволять пользователям импортировать команды из удаленного сеанса,
фактически неявно запускать удаленный сеанс, настраивать безопасность удаленного сеанса и многое другое.
более.
Windows PowerShell включает поставщика WSMan. Провайдер создает диск WSMAN:
, который позволяет
перемещаться по иерархии параметров конфигурации на локальном и удаленных компьютерах.
Дополнительные сведения о поставщике WSMan см.
Поставщик WSMan и
О командлетах WS-Management,
или в консоли Windows PowerShell введите Get-Help wsman
.
Для получения дополнительной информации см.:
- Часто задаваемые вопросы по удаленному взаимодействию PowerShell
- Регистр-PSSessionConfiguration
- Import-PSSession
Для получения справки об ошибках удаленного взаимодействия см.
about_Remote_Troubleshooting.
См. также
- about_Remote
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Вызов команды
- Import-PSSession
- Новый-PSSession
- Регистрация-PSSessionConfiguration
- Поставщик WSMan
Enter-PSSession (Microsoft.PowerShell.Core) — PowerShell | Microsoft Learn
- Справочник
- Модуль:
- Microsoft. PowerShell.Core
Запускает интерактивный сеанс с удаленным компьютером.
Синтаксис
Enter-PSSession [-ИмяКомпьютера][-EnableNetworkAccess] [[-Учетные данные] ] [-ConfigurationName <строка>] [-Порт ] [-использоватьSSL] [-ИмяПриложения <Строка>] [-SessionOption ] [-Аутентификация <механизм аутентификации>] [-CertificateThumbprint ] [<Общие параметры>]
Enter-PSSession [-HostName] <строка> [-Порт] [-имя_пользователя <строка>] [-KeyFilePath <Строка>] [-SSHТранспорт] [-ConnectingTimeout <число>] [ ]
Enter-PSSession [[-Сессия]] [ ]
Enter-PSSession [[-ConnectionUri]] [-EnableNetworkAccess] [[-Учетные данные] ] [-ConfigurationName <строка>] [-Разрешить перенаправление] [-SessionOption ] [-Аутентификация <механизм аутентификации>] [-CertificateThumbprint ] [<Общие параметры>]
Enter-PSSession [-InstanceId] [ ]
Enter-PSSession [[-Идентификатор]] [ ]
Enter-PSSession [-Имя <Строка>] []
Enter-PSSession [-VMId][-Учетные данные] [-ConfigurationName <строка>] [ ]
Enter-PSSession [-VMName] <строка> [-Учетные данные][-ConfigurationName <строка>] [<Общие параметры>]
Enter-PSSession [-ContainerId][-ConfigurationName <строка>] [-Запустить от имени администратора] [ ]
Описание
Командлет Enter-PSSession
запускает интерактивный сеанс с одним удаленным компьютером.
Во время сеанса команды, которые вы вводите, выполняются на удаленном компьютере так же, как если бы вы
печатать непосредственно на удаленном компьютере. Вы можете иметь только один интерактивный сеанс одновременно.
Как правило, вы используете ComputerName параметр для указания имени удаленного компьютера.
Однако вы также можете использовать сеанс, созданный с помощью командлета New-PSSession
для
интерактивный сеанс. Однако вы не можете использовать Disconnect-PSSession
, Connect-PSSession
или
Командлеты Receive-PSSession
для отключения или повторного подключения к интерактивному сеансу.
Начиная с PowerShell 6.0 вы можете использовать Secure Shell (SSH) для установления соединения с удаленным
компьютер, если SSH доступен на локальном компьютере, а удаленный компьютер настроен с
Конечная точка PowerShell SSH. Преимущество удаленного сеанса PowerShell на основе SSH заключается в том, что он работает через
несколько платформ (Windows, Linux, macOS). Для удаленного взаимодействия на основе SSH вы используете Имя хоста
набор параметров для указания удаленного компьютера и соответствующей информации о подключении. Для большего
информацию о том, как настроить удаленное взаимодействие PowerShell SSH, см.
Удаленное взаимодействие PowerShell через SSH.
Чтобы завершить интерактивный сеанс и отключиться от удаленного компьютера, используйте Exit-PSSession
командлет или введите exit
.
Примеры
Пример 1: Запуск интерактивного сеанса
PS> Enter-PSSession [localhost]: PS>
Эта команда запускает интерактивный сеанс на локальном компьютере. Командная строка меняется на
указать, что вы сейчас запускаете команды в другом сеансе.
Команды, которые вы вводите, выполняются в новом сеансе, и результаты возвращаются к значениям по умолчанию.
сеанс в виде текста.
Пример 2. Работа с интерактивным сеансом
Первая команда использует командлет Enter-PSSession
для запуска интерактивного сеанса с Server01,
удаленный компьютер. Когда сеанс начинается, командная строка изменяется и включает имя компьютера.
Вторая команда получает процесс PowerShell и перенаправляет вывод на Файл Process.txt
.
Команда отправляется на удаленный компьютер, и файл сохраняется на удаленном компьютере.
Третья команда использует ключевое слово Exit для завершения интерактивного сеанса и закрытия соединения.
Четвертая команда подтверждает, что файл Process.txt находится на удаленном компьютере. Get-ChildItem
Команда («dir») на локальном компьютере не может найти файл.
PS C:\> Enter-PSSession -ComputerName Server01 [Сервер01]: PS C:\> [Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt [Server01]: PS C:\> выйти ПС С:\> PS C:\> каталог C:\ps-test\Process.txt Get-ChildItem: не удается найти путь «C:\ps-test\Process.txt», так как он не существует. В строке:1 символ:4 + каталог <<<< c:\ps-test\Process.txt
Эта команда показывает, как работать в интерактивном сеансе с удаленным компьютером.
Пример 3: Используйте параметр Session
PS> $s = New-PSSession -ComputerName Server01 PS> Введите-PSSession -Session $s [Server01]: PS>
Эти команды используют параметр Session Enter-PSSession
для запуска интерактивного сеанса в
существующий сеанс PowerShell ( PSSession ).
Пример 4. Запустите интерактивный сеанс и укажите параметры порта и учетных данных
PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01 [Server01]: PS>
Эта команда запускает интерактивный сеанс с компьютером Server01. Он использует порт .
параметр для указания порта и параметр Credential для указания учетной записи пользователя, который
имеет разрешение на подключение к удаленному компьютеру.
Пример 5: Остановить интерактивный сеанс
PS> Enter-PSSession -ComputerName Server01 [Server01]: PS> Exit-PSSession ПС>
В этом примере показано, как запустить и остановить интерактивный сеанс. Первая команда использует
Командлет Enter-PSSession
для запуска интерактивного сеанса с компьютером Server01.
Вторая команда использует командлет Exit-PSSession
для завершения сеанса. Вы также можете использовать
Ключевое слово Exit для завершения интерактивного сеанса. Exit-PSSession
и Exit имеют одинаковый эффект.
Пример 6: запуск интерактивного сеанса с использованием SSH
PS> Enter-PSSession -HostName UserA@LinuxServer01
В этом примере показано, как начать интерактивный сеанс с помощью Secure Shell (SSH). Если SSH
настроен на удаленном компьютере для использования паролей, вам будет предложено ввести пароль.
В противном случае необходимо использовать аутентификацию пользователя на основе ключа.
Пример 7: запуск интерактивного сеанса с использованием SSH с портом и ключом аутентификации пользователя
PS> Enter-PSSession -HostName UserA@LinuxServer02:22 -KeyFilePath c:\sshkeys\userAKey_rsa
В этом примере показано, как начать интерактивный сеанс с использованием SSH. Имя пользователя и номер порта SSH
указываются как часть значения параметра HostName . Параметр KeyFilePath
указывает расположение ключа RSA, используемого для аутентификации пользователя на удаленном компьютере.
Параметры
-AllowRedirection
-ApplicationName
-Authentication
-CertificateThumbprint
-ComputerName
-ConfigurationName
-ConnectingTimeout
-ConnectionUri
-ContainerId
-Credential
-EnableNetworkAccess
-HostName
-Id
-InstanceId
-KeyFilePath
-Name
-Port
- RunAsAdministrator
-Session
-SessionOption
-SSHTransport
-Subsystem
-UserName
-UseSSL
-VMId
-VMName
Вводы
System.String, System.Management.Automation.Runspaces.PSSession
В этот командлет можно передать имя компьютера в виде строки или объект сеанса.
Выходные данные
Нет
Командлет не возвращает никаких выходных данных.
Примечания
Для подключения к удаленному компьютеру необходимо быть членом группы администраторов на удаленном
компьютер. Чтобы начать интерактивный сеанс на локальном компьютере, необходимо запустить PowerShell с параметром
Запуск от имени администратора вариант.
При использовании Enter-PSSession
ваш профиль пользователя на удаленном компьютере используется для интерактивного
сессия. Команды в профиле удаленного пользователя, включая команды для добавления модулей PowerShell и
чтобы изменить командную строку, запустите до отображения удаленной подсказки.
Enter-PSSession
использует настройку языка и региональных параметров пользовательского интерфейса на локальном компьютере для интерактивного сеанса. К
найдите местную культуру пользовательского интерфейса, используйте $UICulture
автоматическая переменная.
Enter-PSSession
требуются командлеты Get-Command
, Out-Default
и Exit-PSSession
. Если эти
командлеты не включены в конфигурацию сеанса на удаленном компьютере, Enter-PSSession
команды не работают.
В отличие от Invoke-Command
, который анализирует и интерпретирует команды перед отправкой их на удаленное устройство.
компьютер, Enter-PSSession
отправляет команды непосредственно на удаленный компьютер без
интерпретация.
Если сеанс, в который вы хотите войти, занят обработкой команды, может возникнуть задержка перед
PowerShell отвечает на команду Enter-PSSession
. Вы подключены, как только сессия
доступен. Чтобы отменить команду Enter-PSSession
, нажмите CTRL + C .
Набор параметров HostName был включен, начиная с PowerShell 6.0. Он был добавлен для обеспечения
Удаленное взаимодействие PowerShell на основе Secure Shell (SSH). И SSH, и PowerShell поддерживаются на нескольких
платформах (Windows, Linux, macOS) и удаленное взаимодействие PowerShell работает на этих платформах, где
PowerShell и SSH установлены и настроены. Это отдельно от предыдущей Windows только
удаленное взаимодействие, основанное на WinRM, и многие специфические функции и ограничения WinRM не
подать заявление. Например, квоты на основе WinRM, параметры сеанса, пользовательская конфигурация конечной точки и
функции отключения/повторного подключения в настоящее время не поддерживаются. Для получения дополнительной информации о том, как настроить
Удаленное взаимодействие PowerShell SSH, см.
Удаленное взаимодействие PowerShell через SSH.
До PowerShell 7.1 удаленное взаимодействие через SSH не поддерживало удаленные сеансы второго перехода. Этот
возможность была ограничена сеансами с использованием WinRM. PowerShell 7.1 позволяет использовать Enter-PSSession
и
Enter-PSHostProcess
для работы из любого интерактивного удаленного сеанса.