Поделиться через


Enter-PSSession

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

Синтаксис

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-Port <Int32>]
     [-UseSSL]
     [-ConfigurationName <String>]
     [-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
     [-VMGuid] <Guid>
     -Credential <PSCredential>
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [<CommonParameters>]

Описание

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

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

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

Примеры

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

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

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

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

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

The first command uses the **Enter-PSSession** cmdlet to start an interactive session with Server01, a remote computer. When the session starts, the command prompt changes to include the computer name.
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>

The second command gets the Windows PowerShell process and redirects the output to the Process.txt file. The command is submitted to the remote computer, and the file is saved on the remote computer.
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt

The third command uses the **Exit** keyword to end the interactive session and close the connection.
[Server01]: PS C:\> exit
PS C:\>

The fourth command confirms that the Process.txt file is on the remote computer. A **Get-ChildItem** ("dir") command on the local computer cannot find the file.
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. Использование параметра сеанса

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

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

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

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

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

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

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

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

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

Параметры

-AllowRedirection

Разрешает перенаправление этого подключения к альтернативному универсальному идентификатору ресурса (URI). По умолчанию перенаправление запрещено.

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ApplicationName

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

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

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Authentication

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

  • По умолчанию
  • Основной
  • Credssp
  • Переваривать
  • Kerberos
  • Вести переговоры
  • NegotiateWithImplicitCredential

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

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

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

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

Тип:AuthenticationMechanism
Допустимые значения:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CertificateThumbprint

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

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

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ComputerName

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

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

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

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

Тип:String
Aliases:Cn
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-ConfigurationName

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

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

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

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-ConnectionUri

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

<транспорт>://<Имя компьютера>:<порт>/<ApplicationName>

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

https://localhost:5985/WSMAN

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

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

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

Тип:Uri
Aliases:URI, CU
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Credential

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

Введите имя пользователя, например User01, Domain01\User01или User@Domain.com, или введите объект PSCredential, например один, возвращенный командлетом Get-Credential.

При вводе имени пользователя этот командлет запрашивает пароль.

Тип:PSCredential
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-EnableNetworkAccess

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

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

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

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Id

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

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

Тип:Int32
Position:0
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-InstanceId

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

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

Тип:Guid
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Name

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

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

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки: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\>"}

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Session

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

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

Если вы используете exit-PSSession или ключевое слово EXIT, интерактивный сеанс заканчивается, но созданный PSSession остается открытым и доступным для использования.

Тип:PSSession
Position:0
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-SessionOption

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

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

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

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

Тип:PSSessionOption
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UseSSL

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VMGuid

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

Тип:Guid
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-VMName

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

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

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

System.String, System.Management.Automation.Runspaces.PSSession

Вы можете передать имя компьютера в виде строки или объекта сеанса в этот командлет.

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

None

Командлет не возвращает выходные данные.

Примечания

  • Чтобы подключиться к удаленному компьютеру, необходимо быть членом группы "Администраторы" на удаленном компьютере.
  • В Windows Vista и более поздних версиях операционной системы Windows для запуска интерактивного сеанса на локальном компьютере необходимо запустить Windows PowerShell с параметром "Запуск от имени администратора".
  • При использовании Ввод-PSSession профиль пользователя на удаленном компьютере используется для интерактивного сеанса. Команды в профиле удаленного пользователя, включая команды для добавления оснастки Windows PowerShell и изменения командной строки, запускаются перед отображением удаленной строки.
  • Ввод-PSSession использует параметр языка и региональных параметров пользовательского интерфейса на локальном компьютере для интерактивного сеанса. Чтобы найти язык и региональные параметры локального пользовательского интерфейса, используйте $UICulture автоматическую переменную.
  • Ввод-PSSession требуют командлетов Get-Command, Out-Default и Exit-PSSession. Если эти командлеты не включены в конфигурацию сеанса на удаленном компьютере, команда ВВОД-PSSession завершается ошибкой.
  • В отличие от Invoke-Command, который анализирует и интерпретирует команды перед их отправкой на удаленный компьютер, ввод-PSSession отправляет команды непосредственно на удаленный компьютер без интерпретации.
  • Если сеанс, который вы хотите ввести, занят обработкой команды, может возникнуть задержка, прежде чем Windows PowerShell отвечает на команде ВВОД-PSSession. Вы будете подключены сразу после того, как сеанс будет доступен. Чтобы отменить команду ВВОД-PSSession, нажмите .