Enter-PSSession

Запускает интерактивный сеанс с удаленным компьютером.

Синтаксис

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-Port <Int32>]
     [-UseSSL]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [[-Session] <PSSession>]
     [<CommonParameters>]
Enter-PSSession
     [[-ConnectionUri] <Uri>]
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-AllowRedirection]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-InstanceId <Guid>]
     [<CommonParameters>]
Enter-PSSession
     [[-Id] <Int32>]
     [<CommonParameters>]
Enter-PSSession
     [-Name <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMId] <Guid>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-ContainerId] <String>
     [-ConfigurationName <String>]
     [-RunAsAdministrator]
     [<CommonParameters>]

Описание

Командлет Enter-PSSession запускает интерактивный сеанс с одним удаленным компьютером. Во время сеанса команды, введенные на удаленном компьютере, выполняются так же, как если бы вы вводили непосредственно на удаленном компьютере. В любой момент времени может использоваться только один интерактивный сеанс.

Как правило имя удаленного компьютера указывается с помощью параметра ComputerName. Однако можно также использовать сеанс, создаваемый с помощью командлета New-PSSession для интерактивного сеанса. Однако нельзя использовать Disconnect-PSSession``Connect-PSSessionкомандлеты или Receive-PSSession командлеты для отключения или повторного подключения к интерактивному сеансу.

Чтобы завершить интерактивный сеанс и отключиться от удаленного компьютера, используйте Exit-PSSession командлет или введите exit.

Примеры

Пример 1. Запуск интерактивного сеанса

PS C:\> Enter-PSSession
[localhost]: PS C:\>

Эта команда запускает интерактивный сеанс на локальном компьютере. Командная строка изменяется, показывая, что команды выполняются в рамках другого сеанса.

Вводимые команды выполняются в рамках нового сеанса, а результаты возвращаются в сеанс по умолчанию в виде текста.

Пример 2. Работа с интерактивным сеансом

Первая команда использует Enter-PSSession командлет для запуска интерактивного сеанса с сервером Server01, удаленным компьютером. При запуске сеанса в командную строку включается имя компьютера. Вторая команда получает процесс Windows PowerShell и перенаправляет выходные данные в файл Process.txt. Команда передается на удаленный компьютер, и файл сохраняется на удаленном компьютере. Третья команда использует ключевое слово Exit для завершения интерактивного сеанса и закрытия соединения. Четвертая команда позволяет убедиться в том, что файл Process.txt сохранен на удаленном компьютере. Команда Get-ChildItem ("dir") на локальном компьютере не может найти файл.

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
PS C:\> 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

Эта команда демонстрирует работу в интерактивном сеансе с удаленным компьютером.

Пример 3. Использование параметра Session

PS C:\> $s = New-PSSession -ComputerName Server01
PS C:\> Enter-PSSession -Session $s
[Server01]: PS C:\>

Эти команды используют параметр Session для запуска интерактивного сеанса Enter-PSSession в существующем сеансе Windows PowerShell (PSSession).

Пример 4. Запуск интерактивного сеанса и указание параметров порта и учетных данных

PS C:\> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS C:\>

Эта команда запускает интерактивный сеанс на компьютере Server01. Он использует параметр Port для указания порта и параметра Credential , чтобы указать учетную запись пользователя, имеющего разрешение на подключение к удаленному компьютеру.

Пример 5. Остановка интерактивного сеанса

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\> Exit-PSSession
PS C:\>

В этом примере показано, как запускать и останавливать интерактивный сеанс. Первая команда использует Enter-PSSession командлет для запуска интерактивного сеанса с компьютером Server01.

Вторая команда использует Exit-PSSession командлет для завершения сеанса. Вы также можете использовать ключевое слово Exit для завершения интерактивного сеанса. Exit-PSSession и Exit имеют одинаковый эффект.

Параметры

-AllowRedirection

Разрешает перенаправление данного соединения на альтернативный URI. По умолчанию перенаправление не допускается.

При использовании параметра ConnectionURI удаленный компьютер может вернуть инструкцию для перенаправления на другой URI. По умолчанию Windows PowerShell не перенаправляет соединения, но можно воспользоваться этим параметром и разрешить перенаправление соединений.

Можно также ограничить количество перенаправлений соединение, изменив значение параметра сеанса MaximumConnectionRedirectionCount. Используйте параметр MaximumRedirection командлета New-PSSessionOption или задайте свойство MaximumConnectionRedirectionCount переменной $PSSessionOption предпочтения. Значение по умолчанию — 5.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ApplicationName

Определяет сегмент имени приложения в URI соединения. Используйте этот параметр, чтобы указать имя приложения, если в команде не используется параметр ConnectionURI.

Значение по умолчанию — это значение переменной $PSSessionApplicationName предпочтения на локальном компьютере. Если привилегированная переменная не определена, значение по умолчанию — WSMAN. Это значение подходит для большинства случаев Дополнительные сведения см. в разделе about_Preference_Variables.

Служба WinRM использует имя приложения для выбора прослушивателя для обслуживания запроса на подключение. Значение этого параметра должно совпадать со значением свойства URLPrefix прослушивателя на удаленном компьютере.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Authentication

Задает механизм, используемый при проверке подлинности учетных данных пользователя. Допустимые значения для этого параметра:

  • По умолчанию
  • Basic
  • Credssp
  • Digest (дайджест)
  • Kerberos;
  • Согласование
  • NegotiateWithImplicitCredential

Значение по умолчанию — Default.

Проверка подлинности CredSSP доступна только в Windows Vista, Windows Server 2008 и более поздних версиях операционной системы Windows.

Дополнительные сведения о значениях этого параметра см. в разделе AuthenticationMechanism Enum.

Внимание! Аутентификация CredSSP, в рамках которой учетные данные пользователя передаются на удаленный компьютер для проверки, предназначена для команд, требующих аутентификацию нескольких ресурсов, например для доступа к удаленной сетевой папке. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, могут использоваться для управления сетевым сеансом.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-CertificateThumbprint

Задает цифровой сертификат с открытым ключом (X509) учетной записи пользователя, который располагает разрешением для выполнения этого действия. Введите отпечаток сертификата.

Сертификаты используются при проверке подлинности на основе сертификата клиента. Они могут сопоставляться только с учетными записями локальных пользователей и не работают с учетными записями доменов.

Чтобы получить сертификат, используйте Get-Item Get-ChildItem или команду на диске Windows PowerShell Cert: .

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ComputerName

Указывает имя компьютера. Этот командлет запускает интерактивный сеанс с указанным удаленным компьютером. Введите имя одного компьютера. По умолчанию это локальный компьютер.

Введите имя NetBIOS, IP-адрес или полное доменное имя компьютера. Вы также можете передать имя компьютера в Enter-PSSession.

Чтобы использовать IP-адрес в значении параметра ComputerName , команда должна включать параметр Credential . Кроме того, компьютер должен быть настроен для транспорта HTTPS или IP-адрес удаленного компьютера должен быть включен в список TrustedHosts службы WinRM на локальном компьютере. Инструкции по добавлению имени компьютера в список TrustedHosts см. в разделе "Добавление компьютера в список надежных узлов" в about_Remote_Troubleshooting.

Примечание. В Windows Vista и более поздних версиях операционной системы Windows для включения локального компьютера в значение параметра ComputerName необходимо запустить Windows PowerShell с параметром запуска от имени администратора.

Type:String
Aliases:Cn
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-ConfigurationName

Задает конфигурацию сеанса, используемого для интерактивного сеанса.

Введите имя конфигурации или полное имя ресурса (URI) для конфигурации сеанса. Если указать только имя конфигурации, предустановлен следующий универсальный код ресурса (URI) схемы: http://schemas.microsoft.com/powershell

Конфигурация сеанса для сеанса размещается на удаленном компьютере. Если указанной конфигурации сеанса нет на удаленном компьютере, команда завершается ошибкой.

Значение по умолчанию — это значение переменной $PSSessionConfigurationName предпочтения на локальном компьютере. Если эта привилегированная переменная не определена, значением по умолчанию является Microsoft.PowerShell. Дополнительные сведения см. в разделе about_Preference_Variables.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-ConnectionUri

Указывает универсальный код ресурса (URI), определяющий конечную точку подключения для сеанса. Значение URI должно быть указано полностью. Строка имеет следующий формат:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Значение по умолчанию определяется следующим образом.

http://localhost:5985/WSMAN

Если не указывать ConnectionURI, можно использовать параметры UseSSL, ComputerName, Port и ApplicationName для задания значений ConnectionURI.

Допустимые значения для сегмента транспорта URI — HTTP и HTTPS. Если вы указываете URI подключения с сегментом транспорта, но не указываете порт, сеанс создается с помощью стандартных портов: 80 для HTTP и 443 для HTTPS. Чтобы использовать порты по умолчанию для удаленного взаимодействия Windows PowerShell, укажите порт 5985 для протокола HTTP и 5986 для протокола HTTPS.

Если конечный компьютер перенаправляет соединение на другой URI, Windows PowerShell предотвращает перенаправление, если в команде не указать параметр AllowRedirection.

Type:Uri
Aliases:URI, CU
Position:1
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-ContainerId

Указывает идентификатор контейнера.

Type:String
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Credential

Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию используется текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential , созданный командлетом Get-Credential . Если ввести имя пользователя, вам будет предложено ввести пароль.

Учетные данные хранятся в объекте PSCredential , а пароль хранится как SecureString.

Примечание

Дополнительные сведения о защите данных SecureString см. в разделе "Защита SecureString"?.

Type:PSCredential
Position:1
Default value:Current user
Accept pipeline input:True
Accept wildcard characters:False
-EnableNetworkAccess

Указывает, что этот командлет добавляет интерактивный маркер безопасности в сеансы замыкания на себя. Интерактивный маркер позволяет выполнять в петлевом сеансе команды, которые получают данные с других компьютеров. Например, можно выполнить команду в сеансе, который копирует XML-файлы с удаленного компьютера на локальный.

Сеанс замыкания на себя — это сеанс PSSession , который создается и заканчивается на том же компьютере. Чтобы создать сеанс замыкания на себя, опустите параметр ComputerName или задайте для нее значение . (dot), localhost или имя локального компьютера.

По умолчанию сеансы замыкания на себя создаются с помощью сетевого маркера, который может не предоставить достаточно разрешений для проверки подлинности на удаленных компьютерах.

Параметр EnableNetworkAccess действует только в петлевых сеансах. Если при создании сеанса на удаленном компьютере используется EnableNetworkAccess , команда завершается успешно, но параметр игнорируется.

Удаленный доступ в петлевом сеансе также можно разрешить с помощью значения CredSSP параметра Authentication, который делегирует учетные данные сеанса на другие компьютеры.

Этот параметр впервые появился в Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Id

Указывает идентификатор существующего сеанса. Enter-PSSession использует указанный сеанс для интерактивного сеанса.

Чтобы найти идентификатор сеанса, используйте Get-PSSession командлет.

Type:Int32
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-InstanceId

Указывает идентификатор экземпляра существующего сеанса. Enter-PSSession использует указанный сеанс для интерактивного сеанса.

Значение идентификатора экземпляра представляет собой GUID. Чтобы найти идентификатор экземпляра сеанса, используйте Get-PSSession командлет. Для указания существующего сеанса можно также использовать параметры сеанса, имени или идентификатора . Можно также использовать параметр ComputerName для запуска временного сеанса.

Type:Guid
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Name

Указывает понятное имя существующего сеанса. Enter-PSSession использует указанный сеанс для интерактивного сеанса.

Если указанное имя соответствует сразу нескольким сеансам, команда завершается ошибкой. Для указания существующего сеанса можно также использовать параметры Session, InstanceID или ID . Можно также использовать параметр ComputerName для запуска временного сеанса.

Чтобы установить понятное имя для сеанса, используйте параметр Name командлета New-PSSession .

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Port

Указывает сетевой порт на удаленном компьютере, используемом для этой команды. Для подключения к удаленному компьютеру требуется, чтобы он прослушивал порт, используемый соединением. По умолчанию используется порт 5985, который является портом WinRM для HTTP и 5986, который является портом WinRM для HTTPS.

Прежде чем использовать альтернативный порт, необходимо настроить прослушиватель WinRM на удаленном компьютере для прослушивания по этому порту. Для настройки прослушивателя используйте следующие команды:

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

Не используйте параметр Port, если этого можно избежать. Настройка порта в команде применяется ко всем компьютерам или сеансам, на которых выполняется команда. Альтернативный порт может помешать выполнению команды на всех компьютерах.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-RunAsAdministrator

Указывает, что PSSession выполняется от имени администратора.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Session

Указывает сеанс Windows PowerShell (PSSession), используемый для интерактивного сеанса. Этот параметр принимает объект сеанса. Для указания PSSession можно также использовать параметры Name, InstanceID или ID.

Введите переменную, содержащую объект сеанса или команду, которая создает или получает объект сеанса, например New-PSSession команду или Get-PSSession команду. Вы также можете передать объект сеанса в Enter-PSSession. С помощью этого параметра можно отправить только одну PSSession . Если ввести переменную, содержащую несколько PSSession, команда завершается ошибкой.

При использовании Exit-PSSession или ключевом слове EXIT интерактивный сеанс завершается, но созданная служба PSSession остается открытой и доступной для использования.

Type:PSSession
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-SessionOption

Задает дополнительные параметры для сеанса. Введите объект SessionOption , например объект, создаваемый с помощью командлета New-PSSessionOption , или хэш-таблицу, в которой ключи являются именами параметров сеанса, а значения — значениями параметров сеанса.

Значения по умолчанию для параметров определяются значением переменной $PSSessionOption предпочтения, если она задана. В противном случае значения по умолчанию задаются параметрами, указанными в конфигурации сеанса.

Значения параметров сеанса имеют приоритет над значениями по умолчанию для сеансов, заданных в переменной $PSSessionOption предпочтения и в конфигурации сеанса. Однако они не имеют приоритет над максимальными значениями, квотами и ограничениями, заданными в конфигурации сеанса.

Описание параметров сеанса, включая значения по умолчанию, см. в разделе New-PSSessionOption. Сведения о переменной $PSSessionOption предпочтения см. в разделе about_Preference_Variables. Дополнительные сведения о конфигурациях сеансов см. в разделе about_Session_Configurations.

Type:PSSessionOption
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-UseSSL

Указывает, что этот командлет использует протокол SSL для установления подключения к удаленному компьютеру. По умолчанию SSL не используется.

Протокол WS-Management шифрует все содержимое Windows PowerShell, передаваемое по сети. Параметр UseSSL — это дополнительная защита, которая отправляет данные через HTTPS-подключение вместо HTTP-подключения.

Если вы используете этот параметр, но SSL недоступен на порту, используемом для команды, команда завершается ошибкой.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-VMId

Указывает идентификатор виртуальной машины.

Type:Guid
Aliases:VMGuid
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-VMName

Указывает имя виртуальной машины.

Type:String
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

Входные данные

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 команду, нажмите клавиши CTRLC+.