Enter-PSSession
Запускает интерактивный сеанс с удаленным компьютером.
Синтаксис
ComputerName (по умолчанию)
Enter-PSSession
[-ComputerName] <String>
[[-Credential] <PSCredential>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
SSHHost
Enter-PSSession
[-HostName] <String>
[-Options <Hashtable>]
[-Port <Int32>]
[-UserName <String>]
[-KeyFilePath <String>]
[-Subsystem <String>]
[-ConnectingTimeout <Int32>]
[-SSHTransport]
[<CommonParameters>]
Session
Enter-PSSession
[[-Session] <PSSession>]
[<CommonParameters>]
Uri
Enter-PSSession
[[-ConnectionUri] <Uri>]
[[-Credential] <PSCredential>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
InstanceId
Enter-PSSession
[-InstanceId <Guid>]
[<CommonParameters>]
Id
Enter-PSSession
[[-Id] <Int32>]
[<CommonParameters>]
Name
Enter-PSSession
[-Name <String>]
[<CommonParameters>]
VMId
Enter-PSSession
[-VMId] <Guid>
[-Credential] <PSCredential>
[-ConfigurationName <String>]
[<CommonParameters>]
VMName
Enter-PSSession
[-VMName] <String>
[-Credential] <PSCredential>
[-ConfigurationName <String>]
[<CommonParameters>]
ContainerId
Enter-PSSession
[-ContainerId] <String>
[-ConfigurationName <String>]
[-RunAsAdministrator]
[<CommonParameters>]
Описание
Командлет 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 используется параметр HostName , чтобы указать удаленный компьютер и соответствующие сведения о подключении. Дополнительные сведения о настройке удаленного взаимодействия PowerShell SSH см. в статье о удаленном взаимодействии PowerShell по протоколу SSH.
Чтобы завершить интерактивный сеанс и отключиться от удаленного компьютера, используйте командлет Exit-PSSession
или введите exit
.
Это важно
Enter-PSSession
предназначен для замены текущего интерактивного сеанса новым интерактивным удаленным сеансом. Не следует вызывать его из функции или скрипта или передавать его в виде команды в исполняемый файл pwsh
.
Примеры
Пример 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
[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. Использование параметра сеанса
PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>
Эти команды используют параметр сеансаEnter-PSSession
для запуска интерактивного сеанса в существующем сеансе PowerShell (PSSession).
Пример 4. Запуск интерактивного сеанса и указание параметров порта и учетных данных
PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>
Эта команда запускает интерактивный сеанс с компьютером Server01. Он использует параметр порта
Пример 5. Остановка интерактивного сеанса
PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>
В этом примере показано, как запустить и остановить интерактивный сеанс. Первая команда использует командлет 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, используемого для проверки подлинности пользователя на удаленном компьютере.
Пример 8. Запуск интерактивного сеанса с помощью параметров SSH
$options = @{
Port=22
User = 'UserA'
Host = 'LinuxServer02'
}
Enter-PSSession -KeyFilePath C:\sshkeys\userAKey_rsa -Options $options
В этом примере показано, как запустить интерактивный сеанс с помощью SSH. Параметр Options принимает хэш-список значений, передаваемых в качестве параметров базовой ssh
команде, установленной подключением к удаленной системе.
Параметры
-AllowRedirection
Разрешает перенаправление этого подключения к альтернативному универсальному идентификатору ресурса (URI). По умолчанию перенаправление запрещено.
При использовании параметра ConnectionURI удаленный целевой объект может вернуть инструкцию для перенаправления в другой универсальный код ресурса (URI). По умолчанию PowerShell не перенаправляет подключения, но этот параметр можно использовать для перенаправления подключения.
Можно также ограничить количество перенаправлений подключения, изменив значение параметра MaximumConnectionRedirectionCount в сеансе. Используйте параметр MaximumRedirection командлета New-PSSessionOption
или задайте свойство MaximumConnectionRedirectionCount переменной настроек $PSSessionOption
. Значение по умолчанию — 5.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
Uri
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-ApplicationName
Определяет сегмент имени приложения в URI соединения. Используйте этот параметр, чтобы указать имя приложения, если параметр ConnectionURI не используется в команде.
Значение по умолчанию — это значение переменной предпочтения $PSSessionApplicationName
на локальном компьютере. Если эта переменная предпочтения не определена, значение по умолчанию — WSMAN. Это значение подходит для большинства использования. Дополнительные сведения см. в разделе about_Preference_Variables.
Служба WinRM использует имя приложения для выбора прослушивателя для обслуживания запроса на подключение. Значение этого параметра должно соответствовать значению свойства URLPrefix прослушивателя на удаленном компьютере.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-Authentication
Указывает механизм, используемый для проверки подлинности учетных данных пользователя. Допустимые значения для этого параметра:
- По умолчанию
- Базовый
- Credssp
- дайджест
- Kerberos
- Вести переговоры
- NegotiateWithImplicitCredential
Значение по умолчанию — Default.
Проверка подлинности CredSSP доступна только в Windows Vista, Windows Server 2008 и более поздних версиях операционной системы Windows.
Дополнительные сведения о значениях этого параметра см. в разделе AuthenticationMechanism Enum.
Осторожность
Проверка подлинности поставщика поддержки безопасности учетных данных (CredSSP), при которой учетные данные пользователя передаются на удалённый компьютер для прохождения проверки подлинности, предназначена для команд, требующих аутентификации на нескольких источниках, таких как доступ к удалённому сетевому ресурсу. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, можно использовать для управления сетевым сеансом.
Свойства параметра
Тип: | AuthenticationMechanism |
Default value: | None |
Допустимые значения: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
Uri
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-CertificateThumbprint
Указывает сертификат цифрового открытого ключа (X509) учетной записи пользователя, которая имеет разрешение на выполнение этого действия. Введите отпечаток пальца сертификата.
Сертификаты используются в аутентификации, основанной на клиентских сертификатах. Их можно сопоставить только с локальными учетными записями пользователей; Они не работают с учетными записями домена.
Чтобы получить сертификат, используйте команду Get-Item
или Get-ChildItem
на диске PowerShell Cert.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
Uri
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-ComputerName
Указывает имя компьютера. Этот командлет запускает интерактивный сеанс с указанным удаленным компьютером. Введите только одно имя компьютера. По умолчанию используется локальный компьютер.
Введите имя NetBIOS, IP-адрес или полное доменное имя компьютера. Вы также можете передать имя компьютера в Enter-PSSession
.
Чтобы использовать IP-адрес в значении параметра ComputerName, команда должна включать параметр Credential. Кроме того, компьютер должен быть настроен для транспорта HTTPS или IP-адрес удаленного компьютера должен быть включен в список WinRM TrustedHosts на локальном компьютере. Инструкции по добавлению имени компьютера в список TrustedHosts см. в разделе "Добавление компьютера в список доверенных узлов" в about_Remote_Troubleshooting.
Замечание
Чтобы включить локальный компьютер в значение параметра ComputerName, необходимо запустить PowerShell с параметром "Запуск от имени администратора".
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | CN |
Наборы параметров
ComputerName
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-ConfigurationName
Указывает конфигурацию сеанса, используемую для интерактивного сеанса.
Введите имя конфигурации или полный URI ресурса для конфигурации сеанса. Если указать только имя конфигурации, предопределен следующий URI схемы: http://schemas.microsoft.com/powershell
.
При использовании с SSH это указывает подсистему, используемую в целевом объекте, как определено в sshd_config. Значение по умолчанию для SSH — это подсистема powershell
.
Конфигурация сеанса для сеанса расположена на удаленном компьютере. Если указанная конфигурация сеанса не существует на удаленном компьютере, команда завершается ошибкой.
Значение по умолчанию — это значение переменной предпочтения $PSSessionConfigurationName
на локальном компьютере. Если эта переменная предпочтения не задана, по умолчанию используется Microsoft.PowerShell. Дополнительные сведения см. в разделе about_Preference_Variables.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
Uri
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
VMId
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
VMName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
ContainerId
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-ConnectingTimeout
Указывает время в миллисекундах, разрешенное для завершения начального подключения SSH. Если подключение не завершено в течение указанного времени, возвращается ошибка.
Этот параметр появился в PowerShell 7.2
Свойства параметра
Тип: | Int32 |
Default value: | unlimited |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
SSHHost
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-ConnectionUri
Задает универсальный код ресурса (URI), определяющий конечную точку подключения для сеанса. Универсальный код ресурса (URI) должен быть полностью определённым. Формат этой строки выглядит следующим образом:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Значение по умолчанию выглядит следующим образом:
http://localhost:5985/WSMAN
Если не указать ConnectionURI, можно использовать параметры UseSSL, ComputerName, порти параметры applicationName ApplicationName для указания значений connectionURI.
Допустимые значения для сегмента транспорта URI: HTTP и HTTPS. Если указать URI подключения с сегментом транспорта, но не указать порт, сеанс создается с помощью портов стандартов: 80 для HTTP и 443 для HTTPS. Чтобы использовать порты по умолчанию для удаленного взаимодействия PowerShell, укажите порт 5985 для HTTP или 5986 для HTTPS.
Если целевой компьютер перенаправляет подключение к другому URI, PowerShell запрещает перенаправление, если в команде не используется параметр AllowRedirection.
Свойства параметра
Тип: | Uri |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | УРИ, CU |
Наборы параметров
Uri
Position: | 1 |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-ContainerId
Указывает идентификатор контейнера.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ContainerId
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-Credential
Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, созданный командлетом Get-Credential
. Если ввести имя пользователя, вам будет предложено ввести пароль.
Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.
Замечание
Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно SecureString?.
Свойства параметра
Тип: | PSCredential |
Default value: | Current user |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | 1 |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
Uri
Position: | 1 |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
VMId
Position: | 1 |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
VMName
Position: | 1 |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-EnableNetworkAccess
Указывает, что этот командлет добавляет интерактивный маркер безопасности в сеансы обратного цикла. Интерактивный маркер позволяет выполнять команды в сеансе обратного цикла, который получает данные с других компьютеров. Например, можно выполнить команду в сеансе, который копирует XML-файлы с удаленного компьютера на локальный компьютер.
Сеанс обратного цикла — это PSSession, которая возникает и заканчивается на том же компьютере. Чтобы создать сеанс обратного цикла, опустите параметр ComputerName или задайте для нее значение. (dot), localhost или имя локального компьютера.
По умолчанию сеансы обратного цикла создаются с помощью сетевого маркера, который может не предоставить достаточно разрешений для проверки подлинности на удаленных компьютерах.
Параметр EnableNetworkAccess действует только в сеансах обратного цикла. Если вы используете EnableNetworkAccess при создании сеанса на удаленном компьютере, команда завершается успешно, но параметр игнорируется.
Вы также можете разрешить удаленный доступ в сеансе обратного цикла с помощью значения
Этот параметр появился в Windows PowerShell 3.0.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
Uri
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-HostName
Указывает имя компьютера для подключения на основе Secure Shell (SSH). Это аналогично параметру ComputerName , за исключением того, что подключение к удаленному компьютеру выполняется с помощью SSH, а не Windows WinRM. Этот параметр поддерживает указание имени пользователя и (или) порта в составе значения параметра HostName с помощью формы user@hostname:port
. Имя пользователя и (или) порт, указанный как часть имени узла, имеет приоритет над -UserName
и -Port
параметрами, если указано. Это позволяет передавать несколько имен компьютеров в этот параметр, где некоторые имеют определенные имена пользователей и (или) порты, а другие используют имя пользователя и (или) порт из -UserName
и -Port
параметров.
Этот параметр появился в PowerShell 6.0.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
SSHHost
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Id
Указывает идентификатор существующего сеанса.
Enter-PSSession
использует указанный сеанс для интерактивного сеанса.
Чтобы найти идентификатор сеанса, используйте командлет Get-PSSession
.
Свойства параметра
Тип: | Int32 |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
Id
Position: | 0 |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-InstanceId
Указывает идентификатор экземпляра существующего сеанса.
Enter-PSSession
использует указанный сеанс для интерактивного сеанса.
Идентификатор экземпляра — это GUID. Чтобы найти идентификатор экземпляра сеанса, используйте командлет Get-PSSession
. Можно также использовать параметры сеанса, имениили идентификатора для указания существующего сеанса. Также можно использовать параметр ComputerName для запуска временного сеанса.
Свойства параметра
Тип: | Guid |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
InstanceId
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-KeyFilePath
Указывает путь к файлу ключа, используемый Secure Shell (SSH) для проверки подлинности пользователя на удаленном компьютере.
SSH позволяет выполнять проверку подлинности пользователей с помощью закрытых и открытых ключей в качестве альтернативы базовой проверке подлинности паролей. Если удаленный компьютер настроен для проверки подлинности ключа, этот параметр можно использовать для предоставления ключа, определяющего пользователя.
Этот параметр появился в PowerShell 6.0.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | IdentityFilePath |
Наборы параметров
SSHHost
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Name
Указывает понятное имя существующего сеанса.
Enter-PSSession
использует указанный сеанс для интерактивного сеанса.
Если указанное имя соответствует нескольким сеансам, команда завершается ошибкой. Вы также можете использовать параметры сеанса, InstanceIdили идентификатора для указания существующего сеанса. Также можно использовать параметр ComputerName для запуска временного сеанса.
Чтобы установить понятное имя сеанса, используйте параметр Name командлета New-PSSession
.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
Name
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-Options
Указывает хэш-список параметров SSH, используемых при подключении к удаленному сеансу на основе SSH. Возможные параметры — это любые значения, поддерживаемые версией команды SSH на основе Unix.
Все значения, явно переданные параметрами, имеют приоритет над значениями, переданными в хэш-таблицы Options . Например, при использовании параметра Port переопределяется любая Port
пара "ключ-значение", переданная в хэш-файл " Параметры ".
Свойства параметра
Тип: | Hashtable |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
SSHHost
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Port
Указывает сетевой порт на удаленном компьютере, который используется для этой команды.
В PowerShell 6.0 этот параметр был включен в набор параметров HostName , который поддерживает подключения Secure Shell (SSH).
WinRM (набор параметров ComputerName)
Чтобы подключиться к удаленному компьютеру, удаленный компьютер должен прослушивать порт, используемый подключением. Порты по умолчанию — 5985, который является портом WinRM для HTTP и 5986, который является портом WinRM для HTTPS.
Перед использованием альтернативного порта необходимо настроить прослушиватель WinRM на удаленном компьютере, чтобы прослушивать этот порт. Чтобы настроить прослушиватель, используйте следующие команды:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Не используйте параметр Port , если только не требуется. Параметр порта в команде применяется ко всем компьютерам или сеансам, на которых выполняется команда. Альтернативный параметр порта может предотвратить выполнение команды на всех компьютерах.
SSH (набор параметров HostName)
Чтобы подключиться к удаленному компьютеру, удаленный компьютер должен быть настроен с помощью службы SSH (SSHD) и должен прослушивать порт, используемый подключением. Порт по умолчанию для SSH — 22.
Свойства параметра
Тип: | Int32 |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
SSHHost
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-RunAsAdministrator
Указывает, что PSSession выполняется от имени администратора.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ContainerId
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Session
Указывает сеанс PowerShell (PSSession) для интерактивного сеанса. Этот параметр принимает объект сеанса. Можно также использовать параметры name, InstanceIdили id, чтобы указать PSSession.
Введите переменную, содержащую объект сеанса или команду, которая создает или получает объект сеанса, например команду New-PSSession
или Get-PSSession
. Можно также передать объект сеанса в Enter-PSSession
. С помощью этого параметра можно отправить только один PSSession. Если ввести переменную, содержащую несколько PSSession, команда завершается ошибкой.
При использовании Exit-PSSession
или ключевого слова exit
интерактивный сеанс заканчивается, но созданный PSSession остается открытым и доступным для использования.
Свойства параметра
Тип: | PSSession |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
Session
Position: | 0 |
Обязательно: | False |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-SessionOption
Задает дополнительные параметры сеанса. Введите объект SessionOption, например объект, создаваемый с помощью командлета New-PSSessionOption
, или хэш-таблицу, в которой ключи являются именами вариантов сеанса, а значения — значениями параметров сеанса.
Значения по умолчанию для параметров определяются значением переменной предпочтения $PSSessionOption
, если она задана. В противном случае значения по умолчанию устанавливаются параметрами, заданными в конфигурации сеанса.
Значения параметра сеанса имеют приоритет над значениями по умолчанию для сеансов, заданных в переменной предпочтения $PSSessionOption
и в конфигурации сеанса. Однако они не имеют приоритета над максимальными значениями, квотами или ограничениями, установленными в конфигурации сеанса.
Описание параметров сеанса, включая значения по умолчанию, см. в New-PSSessionOption
.
Сведения о переменной предпочтения $PSSessionOption
см. в about_Preference_Variables. Дополнительные сведения о конфигурациях сеансов см. в about_Session_Configurations.
Свойства параметра
Тип: | PSSessionOption |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
Uri
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-SSHTransport
Указывает, что удаленное подключение установлено с помощью Secure Shell (SSH).
По умолчанию PowerShell использует Windows WinRM для подключения к удаленному компьютеру. Этот коммутатор заставляет PowerShell использовать набор параметров HostName для установки удаленного подключения на основе SSH.
Этот параметр появился в PowerShell 6.0.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Допустимые значения: | true |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
SSHHost
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Subsystem
Задает подсистему SSH, используемую для новой подсистемы PSSession.
Это указывает подсистему, используемую в целевом объекте, как определено в sshd_config. Подсистема запускает определенную версию PowerShell с предопределенными параметрами. Если указанная подсистема не существует на удаленном компьютере, команда завершается ошибкой.
Если этот параметр не используется, по умолчанию используется подсистема powershell
.
Свойства параметра
Тип: | String |
Default value: | Powershell |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
SSHHost
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-UserName
Указывает имя пользователя для учетной записи, используемой для создания сеанса на удаленном компьютере. Метод проверки подлинности пользователей зависит от настройки Secure Shell (SSH) на удаленном компьютере.
Если SSH настроен для базовой проверки подлинности паролей, вам будет предложено ввести пароль пользователя.
Если SSH настроен для проверки подлинности пользователя на основе ключей, uou не запрашивает пароль. Необходимо указать путь к файлу ключа SSH. Если файл ключа пользователя находится в известном расположении SSH, параметр KeyFilePath не нужен. Проверка подлинности пользователя происходит автоматически на основе имени пользователя. Дополнительные сведения см. в документации по SSH о проверке подлинности пользователей на основе ключей.
Если параметр UserName не указан, используется текущее имя пользователя, вошедшего в систему.
Этот параметр появился в PowerShell 6.0.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
SSHHost
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-UseSSL
Указывает, что этот командлет использует протокол SSL для установления подключения к удаленному компьютеру. По умолчанию SSL не используется.
WS-Management шифрует все содержимое PowerShell, передаваемое по сети. Параметр UseSSL — это дополнительная защита, которая отправляет данные через HTTPS-подключение вместо HTTP-подключения.
Если вы используете этот параметр, но SSL недоступен на порту, который используется для команды, команда завершается ошибкой.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ComputerName
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-VMId
Указывает идентификатор виртуальной машины.
Свойства параметра
Тип: | Guid |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | VMGuid |
Наборы параметров
VMId
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-VMName
Указывает имя виртуальной машины.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
VMName
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
String
Вы можете передать имя компьютера в виде строки в этот командлет.
PSSession
Объект сеанса можно передать в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
PowerShell включает следующие псевдонимы для Enter-PSSession
:
- Все платформы:
etsn
Чтобы подключиться к удаленному компьютеру, необходимо быть членом группы "Администраторы" на удаленном компьютере. Чтобы запустить интерактивный сеанс на локальном компьютере, необходимо запустить 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клавиши CTRL.
Набор параметров HostName был включен начиная с PowerShell 6.0. Он был добавлен для предоставления удаленного взаимодействия PowerShell на основе Secure Shell (SSH). SSH и PowerShell поддерживаются на нескольких платформах (Windows, Linux, macOS) и удаленном взаимодействии PowerShell на этих платформах, где установлены и настроены SSH PowerShell. Это отличается от предыдущего удаленного взаимодействия Windows, основанного на WinRM, и большая часть конкретных функций и ограничений WinRM не применяется. Например, квоты на основе WinRM, параметры сеанса, настраиваемая конфигурация конечной точки и функции отключения и повторного подключения в настоящее время не поддерживаются. Дополнительные сведения о настройке удаленного взаимодействия PowerShell SSH см. в статье о удаленном взаимодействии PowerShell по протоколу SSH.
До PowerShell 7.1 удаленное взаимодействие через SSH не поддерживало удаленные сеансы второго шага. Эта возможность ограничена сеансами с помощью WinRM. PowerShell 7.1 позволяет Enter-PSSession
и Enter-PSHostProcess
работать в любом интерактивном удаленном сеансе.
Исполняемый ssh
файл получает данные конфигурации из следующих источников в следующем порядке:
- Параметры командной строки
- файл конфигурации пользователя (~/.ssh/config)
- Файл конфигурации на уровне системы (/etc/ssh/ssh_config)
Следующие параметры командлета сопоставляются с ssh
параметрами и параметрами:
Параметр командлета | Параметр ssh | эквивалентный параметр ssh -o |
---|---|---|
-KeyFilePath |
-i <KeyFilePath> |
-o IdentityFile=<KeyFilePath> |
-UserName |
-l <UserName> |
-o User=<UserName> |
-Port |
-p <Port> |
-o Port=<Port> |
-ComputerName -Subsystem |
-s <ComputerName> <Subsystem> |
-o Host=<ComputerName> |
Все значения, явно переданные параметрами, имеют приоритет над значениями, переданными в хэш-таблицы Options . Дополнительные сведения о файлах см. в ssh_config
разделе ssh_config(5).