Начинает интерактивный сеанс с удаленным компьютером.
Синтаксис
Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [<CommonParameters>] Enter-PSSession [[-Id] <int>] [<CommonParameters>] Enter-PSSession [-InstanceId <Guid>] [<CommonParameters>] Enter-PSSession [-Name <string>] [<CommonParameters>] Enter-PSSession [[-Session] <PSSession>] [<CommonParameters>] Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>]
Описание
Командлет Enter-PSSession начинает интерактивный сеанс с одним удаленным компьютером. В рамках этого сеанса вводимые команды выполняются на удаленном компьютере, как будто они вводятся непосредственно на удаленном компьютере. В любой момент времени может использоваться только один интерактивный сеанс.
Обычно для этого командлета указывается параметр ComputerName, позволяющий задать имя удаленного компьютера. Также для создания интерактивного сеанса можно использовать сеанс, созданный с помощью командлета New-PSSession.
Чтобы завершить интерактивный сеанс и отключиться от удаленного компьютера, используйте командлет Exit-PSSession или введите "exit".
Параметры
-AllowRedirection
Разрешает перенаправление данного соединения на альтернативный универсальный код ресурса URI.
При использовании параметра ConnectionURI удаленный узел может вернуть инструкцию с перенаправлением на другой URI. По умолчанию Windows PowerShell не перенаправляет соединения, но можно воспользоваться этим параметром и разрешить перенаправление соединений.
Разрешает перенаправление данного соединения на альтернативный URI.
При использовании параметра ConnectionURI удаленный узел может вернуть инструкцию с перенаправлением на другой URI. По умолчанию Windows PowerShell не перенаправляет соединения, но можно воспользоваться параметром AllowRedirection и разрешить перенаправление соединений.
Кроме того, можно ограничить число операций перенаправления подключения, присвоив соответствующее значение свойству MaximumConnectionRedirectionCount привилегированной переменной $PSSessionOption или свойству MaximumConnectionRedirectionCount значения параметра SessionOption. Значение по умолчанию равно 5. Дополнительные сведения см. в описании параметра SessionOption, а также в разделе New-PSSessionOption.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
False |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ApplicationName <string>
Задает сегмент имени приложения в URI подключения. Этот параметр служит для указания имени приложения, если в команде не используется параметр ConnectionURI.
По умолчанию используется значение привилегированной переменной $PSSessionApplicationName на локальном компьютере. Если эта привилегированная переменная не определена, используется значение по умолчанию "WSMAN". Это значение подходит для большинства случаев. Дополнительные сведения см. в разделе about_Preference_Variables.
Служба WinRM использует имя приложения для выбора прослушивателя для обслуживания запроса подключения. Значение этого параметра должно соответствовать значению свойства URLPrefix прослушивателя на удаленном компьютере.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
WSMAN |
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Authentication <AuthenticationMechanism>
Задает механизм, используемый при проверке подлинности учетных данных пользователя. Допустимые значения: "Default", "Basic", "Credssp", "Digest", "Kerberos", "Negotiate" и "NegotiateWithImplicitCredential". По умолчанию используется значение "Default".
Проверка подлинности CredSSP доступна только в Windows Vista, Windows Server 2008 и более поздних версиях Windows.
Сведения о значениях этого параметра см. в описании перечисления System.Management.Automation.Runspaces.AuthenticationMechanism в библиотеке MSDN по адресу https://go.microsoft.com/fwlink/?LinkId=144382 (на английском языке).
Внимание! Проверка подлинности CredSSP, при которой учетные данные пользователя передаются на удаленный компьютер, предназначена для команд, которые должны пройти процедуру проверки подлинности на нескольких ресурсах, например при доступе к удаленному общему сетевому ресурсу. Такой механизм повышает угрозы безопасности удаленных операций. Если безопасность удаленного компьютера нарушена, передаваемые ему учетные данные могут использоваться для управления сетевым сеансом.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-CertificateThumbprint <string>
Задает цифровой сертификат с открытым ключом (X509) учетной записи пользователя, который располагает разрешением для выполнения этого действия. Введите отпечаток сертификата.
Сертификаты используются при проверке подлинности на основе сертификата клиента. Их можно сопоставить только с учетными записями локальных пользователей; они не работают с учетными записями доменов.
Чтобы получить отпечаток сертификата, воспользуйтесь командой Get-Item или Get-ChildItem в Windows PowerShell на диске Cert:.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ComputerName <string>
Начинает интерактивный сеанс с указанным удаленным компьютером. Необходимо ввести имя только одного компьютера. По умолчанию используется значение "Локальный компьютер".
Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескольких удаленных компьютеров. Кроме того, можно передать имя компьютера в Enter-PSSession с помощью конвейера.
Для использования IP-адреса в значении параметра ComputerName в команду необходимо включить параметр Credential. Кроме того, необходимо настроить компьютер на использование транспорта HTTPS или включить IP-адрес удаленного компьютера в список TrustedHosts WinRM на локальном компьютере. Инструкции по добавлению имени компьютера в список TrustedHosts см. в статье "Добавление компьютера в список доверенных узлов" в разделе about_Remote_Troubleshooting.
Примечание. Чтобы включить локальный компьютер в значение параметра ComputerName под управлением Windows Vista и более поздних версий Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора".
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue, ByPropertyName) |
Принимать подстановочные знаки? |
false |
-ConfigurationName <string>
Задает конфигурацию сеанса используемого для интерактивного сеанса.
Введите имя конфигурации или полный URI ресурса для конфигурации сеанса. Если указано только имя конфигурации, перед ним добавляется следующий URI схемы: https://schemas.microsoft.com/powershell.
Конфигурация сеанса находится на удаленном компьютере. Если указанная конфигурация сеанса не существует на удаленном компьютере, команда завершается с ошибкой.
По умолчанию используется значение привилегированной переменной $PSSessionConfigurationName на локальном компьютере. Если значение этой привилегированной переменной не установлено, используется значение по умолчанию "Microsoft.PowerShell". Дополнительные сведения см. в разделе about_Preference_Variables.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-ConnectionURI <Uri>
Задает универсальный идентификатор ресурса (URI), определяющий конечную точку соединения для интерактивного сеанса. Значение URI должно быть указано полностью.
Строка имеет следующий формат:
<Транспорт>://<Имя_компьютера>:<Порт>/<Имя_приложения>
По умолчанию используется следующее значение:
http://localhost:80/WSMAN
Допустимые значения сегмента транспорта в URI: HTTP и HTTPS. Если в команде не указан параметр ConnectionURI, для указания значений URI можно использовать параметры UseSSL, ComputerName, Port и ApplicationName.
Если конечный компьютер перенаправляет соединение на другой URI, Windows PowerShell предотвращает перенаправление, если в команде не задан параметр AllowRedirection.
Обязательно? |
false |
Позиция? |
2 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Credential <PSCredential>
Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь".
Введите имя пользователя, например "User01", "Domain01\User01" или "User@Domain.com", или введите объект PSCredential, например объект, возвращаемый командлетом Get-Credential.
При вводе имени пользователя появится приглашение ввести пароль.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Current user |
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Id <int>
Задает идентификатор существующего сеанса. Enter-PSSession использует указанный сеанс для интерактивного сеанса.
Чтобы определить идентификатор сеанса, используйте командлет Get-PSSession.
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-InstanceId <Guid>
Указывает идентификатор экземпляра существующего сеанса. Enter-PSSession использует указанный сеанс для интерактивного сеанса.
Значение идентификатора экземпляра представляет собой GUID. Чтобы определить идентификатор экземпляра сеанса, используйте командлет Get-PSSession. Также для указания существующего сеанса можно использовать параметры Session, Name и ID. Кроме того, для начала временного сеанса можно использовать параметр ComputerName.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Name <string>
Указывает понятное имя существующего сеанса. Enter-PSSession использует указанный сеанс для интерактивного сеанса.
Если указанное имя соответствует нескольким сеансам, команда завершается с ошибкой. Также для указания существующего сеанса можно использовать параметры Session, InstanceID и ID. Кроме того, для начала временного сеанса можно использовать параметр ComputerName.
Для задания понятного имени сеанса используйте параметр Name командлета New-PSSession.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Port <int>
Задает сетевой порт на удаленном компьютере, используемый для данной команды. По умолчанию используется значение "Порт 80" (HTTP-порт).
Перед использованием альтернативного порта необходимо настроить прослушиватель WinRM на удаленном компьютере на прослушивание этого порта. Для настройки прослушивателя используйте следующие команды:
1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="<номер-порта>"}
Не используйте параметр Port, если этого можно избежать. Параметр порта, указанный в команде, распространяется на все компьютеры или сеансы, для которых используется эта команда. Параметр альтернативного порта может позволить предотвратить выполнение этой команды на всех компьютерах.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Session <PSSession>
Задает сеанс Windows PowerShell (PSSession), который должен использоваться для интерактивного сеанса. Этот параметр принимает объект сеанса. Также для указания PSSession можно использовать параметры Name, InstanceID и ID.
Введите переменную, содержащую объект сеанса, или команду, создающую или получающую объект сеанса, например New-PSSession или Get-PSSession. Кроме того, можно передать объект сеанса командлету Enter-PSSession по конвейеру. С помощью данного параметра можно передать только один объект PSSession. Если во введенной переменной содержится несколько объектов PSSession, команда завершается с ошибкой.
При вызове командлета Exit-PSSession или вводе ключевого слова EXIT интерактивный сеанс завершается, но созданный объект PSSession остается открытым и доступен для использования в дальнейшем.
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue, ByPropertyName) |
Принимать подстановочные знаки? |
true |
-SessionOption <PSSessionOption>
Устанавливает расширенные параметры сеанса. Введите объект SessionOption, созданный с помощью командлета New-PSSessionOption.
Значения по умолчанию для параметров определяются значением привилегированной переменной $PSSessionOption, если оно задано. В противном случае в сеансе используются системные значения по умолчанию.
Описание параметров сеанса, включая значения по умолчанию, см. в разделе New-PSSessionOption. Дополнительные сведения о привилегированной переменной $PSSessionOption см. в разделе about_Preference_Variables.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-UseSSL
Использует протокол SSL (Secure Sockets Layer) для установки подключения к удаленному компьютеру. По умолчанию SSL не используется.
Протокол WS-Management шифрует все передаваемое по сети содержимое Windows PowerShell. UseSSL — это дополнительная мера защиты, которая позволяет передавать данные по подключению HTTPS, а не по подключению HTTP.
Если используется этот параметр, но установить SSL-соединение с портом, указанным в команде, не удается, команда завершается с ошибкой.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.String или System.Management.Automation.Runspaces.PSSession Можно передать имя компьютера (строку) или объекта сеанса командлету Enter-PSSession по конвейеру. |
Выходные данные |
None Этот командлет не возвращает никаких выходных данных. |
Примечания
-- Чтобы подключиться к удаленному компьютеру, необходимо быть членом группы "Администраторы" на удаленном компьютере.
-- Чтобы начать интерактивный сеанс с локальным компьютером под управлением Windows Vista и более поздних версий Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора".
-- При использовании Enter-PSSession для интерактивного сеанса используется ваш профиль пользователя на удаленном компьютере. Команды, содержащиеся в профиле пользователя на удаленном компьютере, включая команды для добавления оснасток Windows PowerShell и изменения командной строки, выполняются перед отображением командной строки удаленного компьютера.
-- Для интерактивного сеанса Enter-PSSession использует культуру пользовательского интерфейса, установленную на локальном компьютере. Чтобы определить культуру пользовательского интерфейса, установленного на локальном компьютере, используйте автоматическую переменную $UICulture.
-- Для выполнения команды Enter-PSSession требуются командлеты Get-Command, Out-Default и Exit-PSSession. Если эти командлеты не включены в конфигурацию сеанса на удаленном компьютере, команда Enter-PSSession завершается с ошибкой.
-- В отличие от команды Invoke-Command, которая выполняет синтаксический разбор и интерпретирует команды перед их отправкой на удаленный компьютер, команда Enter-PSSession сразу отправляет команды на удаленный компьютер, не интерпретируя их.
Пример 1
C:\PS>Enter-PSSession LocalHost\PS> Описание ----------- Эта команда запускает на локальном компьютере интерактивный сеанс. Командная строка изменяется, чтобы указать, что команды выполняются в рамках другого сеанса. Команды, вводимые пользователей, запускаются в рамках нового сеанса, а результаты возвращаются в сеанс по умолчанию в текстовом формате.
Пример 2
C:\PS>enter-pssession -computer Server01 Server01\PS> get-process powershell > C:\ps-test\process.txt Server01\PS> exit-pssession C:\PS> C:\PS> dir C:\ps-test\process.txt Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does not exist. At line:1 char:4 + dir <<<< c:\ps-test\process.txt Описание ----------- Эта команда демонстрирует работу с интерактивным сеансом с удаленным компьютером. Первая команда создает интерактивный сеанс с удаленным компьютером Server01 с использованием командлета Enter-PSSession. Когда сеанс будет создан, в командную строку будет включено имя компьютера. Вторая команда получает процесс PowerShell и перенаправляет вывод в файл Process.txt. Команда передается на удаленный компьютер, и файл сохраняется на удаленном компьютере. В третьей команде используется ключевое слово Exit для завершения интерактивного сеанса и отключения от удаленного компьютера. Четвертая команда позволяет убедиться в том, что файл Process.txt сохранен на удаленном компьютере. Команда Get-ChildItem ("dir"), запущенная на локальном компьютере, не может найти файл.
Пример 3
C:\PS>$s = new-pssession -computername Server01 C:\PS> Enter-PSSession -session $s Server01\PS> Описание ----------- Эти команды используют параметр Session команды Enter-PSSession для создания интерактивного сеанса с помощью существующего сеанса Windows PowerShell (PSSession).
Пример 4
C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\user01 Server01\PS> Описание ----------- Эта команда создает интерактивный сеанс с компьютером Server01. В ней используются параметр Port для указания порта и параметр Credential для указания учетной записи пользователя, который располагает разрешением для подключения к удаленному компьютеру.
Пример 5
C:\PS>Enter-PSSession -computername Server01 Server01:\PS> Exit-PSSession C:\PS> Описание ----------- В этом примере демонстрируется создание и завершение интерактивного сеанса. Первая команда создает интерактивный сеанс с компьютером Server01 с использованием командлета Enter-PSSession. Вторая команда использует командлет Exit-PSSession для завершения сеанса. Для завершения интерактивного сеанса также можно использовать ключевое слово Exit. Результаты использования Exit-PSSession и Exit совпадают.
См. также