New-PSSession
Создает постоянное подключение к локальному или удаленному компьютеру.
Синтаксис
New-PSSession
[[-ComputerName] <String[]>]
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[-ConnectionUri] <Uri[]>
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
[-VMId] <Guid[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
-VMName <String[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[[-Session] <PSSession[]>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-ConfigurationName <String>]
-ContainerId <String[]>
[-RunAsAdministrator]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-UseWindowsPowerShell]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-Port <Int32>]
[-HostName] <String[]>
[-UserName <String>]
[-KeyFilePath <String>]
[-Subsystem <String>]
[-ConnectingTimeout <Int32>]
[-SSHTransport]
[-Options <Hashtable>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
-SSHConnection <Hashtable[]>
[<CommonParameters>]
Описание
Командлет New-PSSession
создает сеанс PowerShell (PSSession) на локальном или удаленном компьютере. При создании PSSession PowerShell устанавливает постоянное подключение к удаленному компьютеру.
Используйте PSSession для выполнения нескольких команд, которые совместно используют данные, такие как функция или значение переменной. Чтобы выполнить команды в PSSession, используйте Invoke-Command
командлет . Чтобы использовать PSSession для прямого взаимодействия с удаленным компьютером, используйте Enter-PSSession
командлет . Дополнительные сведения см. в разделе about_PSSessions.
Команды можно выполнять на удаленном компьютере без создания PSSession с параметрами Enter-PSSession
ComputerName или Invoke-Command
. При использовании параметра ComputerName PowerShell создает временное подключение, которое используется для команды, а затем закрывается.
Начиная с PowerShell 6.0 вы можете использовать Secure Shell (SSH), чтобы установить подключение к удаленному компьютеру и создать сеанс на удаленном компьютере, если SSH доступен на локальном компьютере и удаленный компьютер настроен с помощью конечной точки SSH PowerShell. Преимущество удаленного сеанса PowerShell на основе SSH заключается в том, что он может работать на нескольких платформах (Windows, Linux, macOS). Для сеансов на основе SSH используйте параметр HostName или SSHConnection , заданный для указания удаленного компьютера и соответствующих сведений о подключении. Дополнительные сведения о настройке удаленного взаимодействия PowerShell SSH см. в статье Удаленное взаимодействие PowerShell по SSH.
Примечание
При использовании удаленного взаимодействия WSMan из клиента Linux или macOS с конечной точкой HTTPS, где сертификат сервера не является доверенным (например, самозаверяющий сертификат). Чтобы установить подключение, необходимо указать PSSessionOption , включающее значения SkipCACheck и SkipCNCheck , равные $true
. Это можно сделать, только если вы находитесь в среде, где вы можете быть уверены в сертификате сервера и сетевом подключении к целевой системе.
Примеры
Пример 1. Create сеанса на локальном компьютере
$s = New-PSSession
Эта команда создает новое psSession на локальном компьютере и сохраняет psSession в переменной $s
.
Теперь вы можете использовать это PSSession для выполнения команд на локальном компьютере.
Пример 2. Create сеанса на удаленном компьютере
$Server01 = New-PSSession -ComputerName Server01
Эта команда создает новое psSession на компьютере Server01 и сохраняет его в переменной $Server01
.
При создании нескольких объектов PSSession назначьте их переменным с полезными именами. Это поможет управлять объектами PSSession в последующих командах.
Пример 3. Create сеансов на нескольких компьютерах
$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03
Эта команда создает три объекта PSSession , по одному на каждом из компьютеров, указанных параметром ComputerName .
Команда использует оператор присваивания (=
) для назначения новых объектов PSSession переменным: $s1
, $s2
, $s3
. Он назначает PSSession Server01 для $s1
, PSSession Server02 — $s2
, а PSSession Server03 — .$s3
При назначении нескольких объектов последовательности переменных PowerShell назначает каждый объект переменной в ряду соответственно. Если объектов больше, чем переменных, все оставшиеся объекты назначаются последней переменной. Если переменных больше, чем объектов, остальные переменные пусты ($null
).
Пример 4. Create сеанса с указанным портом
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
Эта команда создает новое psSession на компьютере Server01, которое подключается к порту 8081
сервера и использует протокол SSL. В новом PSSession используется альтернативная конфигурация сеанса с именем E12
.
Прежде чем задать порт, необходимо настроить прослушиватель службы удаленного управления Windows для прослушивания порта 8081 на удаленном компьютере. Дополнительные сведения см. в описании параметра Port.
Пример 5. Create сеанса на основе существующего сеанса
New-PSSession -Session $s -Credential Domain01\User01
Эта команда создает PSSession с теми же свойствами, что и существующий PSSession. Этот формат команд можно использовать, когда ресурсы существующего PSSession исчерпаны и для разгрузки части спроса требуется новое psSession .
Команда использует параметр Session для New-PSSession
указания PSSession , сохраненного в переменной $s
. Для выполнения команды используются учетные Domain1\Admin01
данные пользователя.
Пример 6. Create сеанса с глобальным область в другом домене
$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
В этом примере показано, как создать PSSession с глобальным область на компьютере в другом домене.
По умолчанию объекты PSSession, созданные в командной строке, создаются с помощью локальных область, а объекты PSSession, созданные в скрипте, имеют область скрипта.
Чтобы создать PSSession с глобальным область, создайте новое psSession, а затем сохраните PSSession в переменной, которая приводится к глобальному область. В этом случае $s
переменная приводится к глобальному область.
Команда использует параметр ComputerName, чтобы указать удаленный компьютер. Так как компьютер находится в домене, отличном от учетной записи пользователя, полное имя компьютера указывается вместе с учетными данными пользователя.
Пример 7. Create сеансов для нескольких компьютеров
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
Эта команда создает PSSession на каждом из 200 компьютеров, перечисленных в Servers.txt
файле, и сохраняет результирующее psSession в переменной $rs
. Для объектов PSSession ограничение 50
регулирования равно .
Этот формат команды можно использовать, если имена компьютеров хранятся в базе данных, электронной таблице, текстовом файле или другом формате, преобразуемом в текст.
Пример 8. Create сеанса с помощью URI
$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01
Эта команда создает PSSession на компьютере Server01 и сохраняет его в переменной $s
. Он использует параметр URI для указания транспортного протокола, удаленного компьютера, порта и альтернативной конфигурации сеанса. Параметр Credential также используется для указания учетной записи пользователя, которая имеет разрешение на создание сеанса на удаленном компьютере.
Пример 9. Запуск фонового задания в наборе сеансов
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob
Эти команды создают набор объектов PSSession , а затем запускают фоновое задание в каждом из объектов PSSession .
Первая команда создает новое psSession на каждом из компьютеров, перечисленных в Servers.txt
файле. Для создания PSSession используется New-PSSession
командлет . Значение параметра ComputerName — это команда, которая использует Get-Content
командлет для получения списка компьютеров с именами Servers.txt
файла.
Команда использует параметр Credential для создания объектов PSSession , имеющих разрешение администратора домена, и использует параметр ThrottleLimit , чтобы ограничить команду 16
одновременными подключениями. Команда сохраняет объекты PSSession в переменной $s
.
Вторая команда использует параметр AsJob командлета для запуска фонового Invoke-Command
задания, которое выполняет Get-Process PowerShell
команду в каждом из объектов PSSession в $s
.
Дополнительные сведения о фоновых заданиях PowerShell см . в статье about_Jobs и about_Remote_Jobs.
Пример 10. Create сеанса для компьютера с помощью его URI
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
Эта команда создает объекты PSSession , которые подключаются к компьютеру, указанному с помощью URI, а не имени компьютера.
Пример 11. Create параметра сеанса
$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01
В этом примере показано, как создать объект параметра сеанса и использовать параметр SessionOption .
Первая команда использует New-PSSessionOption
командлет для создания параметра сеанса. Полученный объект SessionOption сохраняется в переменной $so
.
Вторая команда использует параметр в новом сеансе. Команда использует New-PSSession
командлет для создания нового сеанса. Значением параметра SessionOption является объект SessionOption в переменной $so
.
Пример 12. Create сеанса с помощью SSH
New-PSSession -HostName UserA@LinuxServer01
В этом примере показано, как создать psSession с помощью Secure Shell (SSH). Если на удаленном компьютере настроен SSH для запроса паролей, вы получите запрос на ввод пароля. В противном случае потребуется использовать проверку подлинности пользователя на основе ключа SSH.
Пример 13. Create сеанса с помощью SSH и укажите порт и ключ проверки подлинности пользователя
New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa
В этом примере показано, как создать PSSession с помощью Secure Shell (SSH). Параметр Port используется для указания используемого порта, а параметр KeyFilePath — для указания ключа RSA, используемого для идентификации и проверки подлинности пользователя на удаленном компьютере.
Пример 14. Create нескольких сеансов с помощью SSH
$sshConnections = @(
@{
HostName = 'WinServer1'
UserName = 'domain\userA'
KeyFilePath = 'c:\users\UserA\id_rsa'
}
@{
HostName = 'UserB@LinuxServer5'
KeyFilePath = 'c:\UserB\<path>\id_rsa'
}
)
New-PSSession -SSHConnection $sshConnections
В этом примере показано, как создать несколько сеансов с помощью Secure Shell (SSH) и набора параметров SSHConnection . Параметр SSHConnection принимает массив хэш-таблиц, содержащих сведения о подключении для каждого сеанса. Обратите внимание, что в этом примере требуется, чтобы на конечных удаленных компьютерах была настроена поддержка проверки подлинности пользователей на основе ключей.
Пример 15. Create нового сеанса с помощью параметров SSH
$options = @{
Port=22
User = 'UserB'
Host = 'LinuxServer5'
}
New-PSSession -KeyFilePath '/Users/UserB/id_rsa' -Options $options
В этом примере показано, как создать новый сеанс на основе SSH на удаленном компьютере под управлением Linux с помощью параметров SSH. Параметр Options принимает хэш-таблицы значений, передаваемых в качестве параметров базовой ssh
команде, установленной для подключения к удаленной системе.
Параметры
-AllowRedirection
Указывает, что этот командлет разрешает перенаправление этого подключения на альтернативный универсальный код ресурса (URI).
При использовании параметра ConnectionURI удаленный компьютер может вернуть инструкцию для перенаправления на другой URI. По умолчанию PowerShell не перенаправляет подключения, но вы можете использовать этот параметр, чтобы включить перенаправление подключения.
Можно также ограничить количество перенаправлений соединение, изменив значение параметра сеанса MaximumConnectionRedirectionCount. Используйте параметр MaximumRedirection командлета New-PSSessionOption
или задайте свойство MaximumConnectionRedirectionCount переменной предпочтения $PSSessionOption . Значение по умолчанию — 5
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ApplicationName
Определяет сегмент имени приложения в URI соединения. Используйте этот параметр, чтобы указать имя приложения, если в команде не используется параметр ConnectionURI.
Значение по умолчанию — это значение переменной $PSSessionApplicationName
предпочтения на локальном компьютере. Если эта переменная предпочтения не определена, значение по умолчанию — WSMAN
. Это значение подходит для большинства случаев Дополнительные сведения см. в разделе about_Preference_Variables.
Служба удаленного управления Windows (WinRM) использует имя приложения для выбора прослушивателя для обслуживания запроса на подключение. Значение этого параметра должно совпадать со значением свойства URLPrefix прослушивателя на удаленном компьютере.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Authentication
Задает механизм, используемый при проверке подлинности учетных данных пользователя. Допустимые значения для этого параметра:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
Значение по умолчанию — Default
.
Дополнительные сведения о значениях этого параметра см. в разделе AuthenticationMechanism Enumeration.
Внимание!
Проверка подлинности поставщика поддержки безопасности учетных данных (CredSSP), при которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности в нескольких ресурсах, таких как доступ к удаленной сетевой папке. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, могут использоваться для управления сетевым сеансом.
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CertificateThumbprint
Задает цифровой сертификат с открытым ключом (X509) учетной записи пользователя, который располагает разрешением для выполнения этого действия. Введите отпечаток сертификата.
Сертификаты используются при проверке подлинности на основе сертификата клиента. Они могут сопоставляться только с учетными записями локальных пользователей и не работают с учетными записями доменов.
Чтобы получить сертификат, используйте Get-Item
команду или Get-ChildItem
на диске PowerShell Cert:
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Задает массив имен компьютеров. Этот командлет создает постоянное подключение (PSSession) к указанному компьютеру. При вводе нескольких имен New-PSSession
компьютеров создается несколько объектов PSSession , по одному для каждого компьютера. По умолчанию это локальный компьютер.
Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескольких удаленных компьютеров. Чтобы указать локальный компьютер, введите имя localhost
компьютера или точку (.
). Если компьютер находится в другом домене, отличном от домена пользователя, полное доменное имя является обязательным.
Вы также можете передать имя компьютера в кавычки в New-PSSession
.
Чтобы использовать IP-адрес в значении параметра ComputerName , команда должна включать параметр Credential . Кроме того, компьютер должен быть настроен для транспорта HTTPS или IP-адрес удаленного компьютера должен быть включен в список TrustedHosts службы WinRM на локальном компьютере. Инструкции по добавлению имени компьютера в список TrustedHosts см. в разделе How to Add a Computer to the Trusted Host List (Добавление компьютера в список надежных узлов) статьи about_Remote_Troubleshooting.
Чтобы включить локальный компьютер в значение параметра ComputerName, запустите Windows PowerShell с помощью параметра Запуск от имени администратора.
Type: | String[] |
Aliases: | Cn |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ConfigurationName
Указывает конфигурацию сеанса, используемую для нового сеанса PSSession.
Введите имя конфигурации или полное имя ресурса (URI) для конфигурации сеанса. Если указать только имя конфигурации, в начале добавляется следующий универсальный код ресурса (URI) схемы: http://schemas.microsoft.com/PowerShell
.
Конфигурация сеанса для сеанса размещается на удаленном компьютере. Если указанной конфигурации сеанса нет на удаленном компьютере, команда завершается ошибкой.
Значение по умолчанию — это значение переменной $PSSessionConfigurationName
предпочтения на локальном компьютере. Если эта переменная предпочтения не задана, по умолчанию используется значение Microsoft.PowerShell
. Дополнительные сведения см. в разделе about_Preference_Variables.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ConnectingTimeout
Указывает время в миллисекундах, необходимое для завершения начального SSH-подключения. Если подключение не завершается в течение указанного времени, возвращается ошибка.
Этот параметр появился в PowerShell 7.2
Type: | Int32 |
Position: | Named |
Default value: | unlimited |
Required: | False |
Accept pipeline input: | False |
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. Чтобы использовать порты по умолчанию для удаленного взаимодействия PowerShell, укажите порт 5985
для HTTP или 5986
HTTPS.
Если конечный компьютер перенаправляет подключение на другой универсальный код ресурса (URI), PowerShell запрещает перенаправление, если в команде не используется параметр AllowRedirection .
Type: | Uri[] |
Aliases: | URI, CU |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ContainerId
Указывает массив идентификаторов контейнеров. Этот командлет запускает интерактивный сеанс с каждым из указанных контейнеров. Используйте команду , docker ps
чтобы получить список идентификаторов контейнеров. Дополнительные сведения см. в справке по команде Docker ps .
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Credential
Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01
или Domain01\User01
, или введите объект PSCredential , созданный командлетом Get-Credential
. Если ввести имя пользователя, вам будет предложено ввести пароль.
Учетные данные хранятся в объекте PSCredential , а пароль хранится как SecureString.
Примечание
Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно secure is SecureString?.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnableNetworkAccess
Указывает, что этот командлет добавляет интерактивный маркер безопасности в сеансы замыкания на себя. Интерактивный маркер позволяет выполнять в петлевом сеансе команды, которые получают данные с других компьютеров. Например, можно выполнить команду в сеансе, который копирует XML-файлы с удаленного компьютера на локальный.
Сеанс замыкания на себя — это сеанс PSSession , который создается и заканчивается на одном компьютере. Чтобы создать сеанс замыкания на себя, опустите параметр ComputerName или задайте для его значения точку (.
), localhost
или имя локального компьютера.
По умолчанию этот командлет создает сеансы замыкания на себя с помощью сетевого маркера, который может не предоставлять достаточные разрешения для проверки подлинности на удаленных компьютерах.
Параметр EnableNetworkAccess действует только в петлевых сеансах. Если при создании сеанса на удаленном компьютере используется enableNetworkAccess , команда будет выполнена успешно, но параметр игнорируется.
Вы также можете включить удаленный доступ в сеансе замыкания на себя, используя CredSSP
значение параметра Authentication , который делегирует учетные данные сеанса другим компьютерам.
Чтобы защитить компьютер от вредоносного доступа, отключенные сеансы замыкания на себя, имеющие интерактивные маркеры, созданные с помощью параметра EnableNetworkAccess , можно повторно подключить только к компьютеру, на котором был создан сеанс. Отключенные сеансы, использующие проверку подлинности CredSSP, можно повторно подключить с других компьютеров. Для получения дополнительной информации см. Disconnect-PSSession
.
Этот параметр появился в PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostName
Задает массив имен компьютеров для подключения на основе Secure Shell (SSH). Это похоже на параметр ComputerName , за исключением того, что подключение к удаленному компьютеру осуществляется с помощью SSH, а не Windows WinRM.
Этот параметр появился в PowerShell 6.0.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KeyFilePath
Указывает путь к файлу ключа, используемый Secure Shell (SSH) для проверки подлинности пользователя на удаленном компьютере.
SSH позволяет выполнять проверку подлинности пользователей с помощью закрытых или открытых ключей в качестве альтернативы обычной проверке подлинности по паролю. Если удаленный компьютер настроен для проверки подлинности по ключу, этот параметр можно использовать для предоставления ключа, который идентифицирует пользователя.
Этот параметр появился в PowerShell 6.0.
Type: | String |
Aliases: | IdentityFilePath |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Указывает понятное имя для PSSession.
Имя можно использовать для ссылки на PSSession при использовании других командлетов, таких как Get-PSSession
и Enter-PSSession
. Имя не обязательно должно быть уникальным для компьютера или текущего сеанса.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Options
Указывает хэш-таблице параметров SSH, используемых при подключении к удаленному сеансу на основе SSH. Возможные параметры — это любые значения, поддерживаемые версией команды SSH на основе Unix.
Все значения, явно переданные параметрами, имеют приоритет над значениями, переданными в хэш-таблицы параметров . Например, использование параметра Port переопределяет любую Port
пару "ключ-значение", переданную в хэш-сводке Options .
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Port
Задает сетевой порт на удаленном компьютере, используемый для данного соединения. Для подключения к удаленному компьютеру требуется, чтобы он прослушивал порт, используемый соединением. Порты по умолчанию: 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, если этого можно избежать. Настройка порта в команде применяется ко всем компьютерам или сеансам, на которых выполняется команда. Альтернативный порт может помешать выполнению команды на всех компьютерах.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsAdministrator
Указывает, что PSSession выполняется от имени администратора.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Session
Задает массив объектов PSSession , которые этот командлет использует в качестве модели для нового PSSession. Этот параметр создает новые объекты PSSession , которые имеют те же свойства, что и указанные объекты PSSession .
Введите переменную, содержащую объекты PSSession или команду, которая создает или получает объекты PSSession , такие как New-PSSession
команда или Get-PSSession
.
Результирующие объекты PSSession имеют то же имя компьютера, имя приложения, универсальный код ресурса (URI) подключения, порт, имя конфигурации, ограничение регулирования и значение SSL, что и оригиналы, но имеют другое отображаемое имя, идентификатор и идентификатор экземпляра (GUID).
Type: | PSSession[] |
Position: | 0 |
Default value: | None |
Required: | False |
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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SSHConnection
Этот параметр принимает массив хэш-таблиц, где каждая хэш-таблицы содержит один или несколько параметров подключения, необходимых для установки подключения Secure Shell (SSH) (HostName, Port, UserName, KeyFilePath).
Параметры хэш-соединения совпадают с параметрами, определенными для набора параметров SSHHost .
Параметр SSHConnection полезен для создания нескольких сеансов, в которых каждый сеанс требует разных сведений о подключении.
Этот параметр появился в PowerShell 6.0.
Type: | Hashtable[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SSHTransport
Указывает, что удаленное подключение установлено с помощью Secure Shell (SSH).
По умолчанию PowerShell использует Windows WinRM для подключения к удаленному компьютеру. Этот параметр заставляет PowerShell использовать набор параметров HostName для установки удаленного подключения на основе SSH.
Этот параметр появился в PowerShell 6.0.
Type: | SwitchParameter |
Accepted values: | true |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Subsystem
Указывает подсистему SSH, используемую для нового PSSession.
Это указывает подсистему, используемую в целевом объекте, как определено в sshd_config
. Подсистема запускает определенную версию PowerShell с предопределенными параметрами. Если указанная подсистема не существует на удаленном компьютере, команда завершается ошибкой.
Если этот параметр не используется, по умолчанию используется подсистема powershell
.
Type: | String |
Position: | Named |
Default value: | powershell |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ThrottleLimit
Указывает максимальное число одновременных подключений, которые можно установить для запуска этой команды.
Если опустить этот параметр или ввести значение 0
(ноль), используется значение 32
по умолчанию , .
Предел регулирования применяется только к текущему командлету, а не к сеансу или компьютеру.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
Указывает имя пользователя для учетной записи, используемой для создания сеанса на удаленном компьютере. Метод проверки подлинности пользователя зависит от настройки Secure Shell (SSH) на удаленном компьютере.
Если SSH настроен для обычной проверки подлинности паролем, вам будет предложено ввести пароль пользователя.
Если SSH настроен для проверки подлинности пользователя на основе ключей, путь к файлу ключа можно указать с помощью параметра KeyFilePath , и вам не будет предложено ввести пароль. Обратите внимание, что если файл ключа пользователя клиента находится в известном расположении SSH, параметр KeyFilePath не требуется для проверки подлинности на основе ключей, а проверка подлинности пользователя выполняется автоматически на основе имени пользователя. Дополнительные сведения см. в документации по SSH о проверке подлинности пользователей на основе ключей.
Этот параметр не является обязательным. Если параметр UserName не указан, для подключения используется текущее имя пользователя для входа.
Этот параметр появился в PowerShell 6.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseSSL
Указывает, что этот командлет использует протокол SSL для установки подключения к удаленному компьютеру. По умолчанию SSL не используется.
WS-Management шифрует все содержимое PowerShell, передаваемое по сети. Параметр UseSSL обеспечивает дополнительную защиту, которая отправляет данные через HTTPS-подключение, а не через HTTP-подключение.
Если вы используете этот параметр, но SSL недоступен на порту, используемом для команды, команда завершается ошибкой.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseWindowsPowerShell
Создает удаленное подключение к новому Windows PowerShell пространству выполнения в локальной системе.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VMId
Задает массив идентификаторов виртуальных машин. Этот командлет запускает интерактивный сеанс PowerShell Direct с каждой из указанных виртуальных машин. Дополнительные сведения см. в статье Автоматизация виртуальных машин и управление ими с помощью PowerShell.
Используйте Get-VM
для просмотра виртуальных машин, доступных на узле Hyper-V.
Type: | Guid[] |
Aliases: | VMGuid |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMName
Указывает массив имен виртуальных машин. Этот командлет запускает интерактивный сеанс PowerShell Direct с каждой из указанных виртуальных машин. Дополнительные сведения см. в статье Автоматизация виртуальных машин и управление ими с помощью PowerShell.
Используйте Get-VM
для просмотра виртуальных машин, доступных на узле Hyper-V.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Входные данные
Вы можете передать строку в этот командлет.
System.URI
Вы можете передать URI в этот командлет.
Объект сеанса можно передать в этот командлет.
Выходные данные
Примечания
PowerShell включает следующие псевдонимы для New-PSSession
:
Для всех платформ.
nsn
Этот командлет использует инфраструктуру удаленного взаимодействия PowerShell. Чтобы использовать этот командлет, локальный компьютер и все удаленные компьютеры должны быть настроены для удаленного взаимодействия PowerShell. Дополнительные сведения см. в разделе about_Remote_Requirements.
Чтобы создать PSSession на локальном компьютере, запустите PowerShell с параметром Запуск от имени администратора .
Завершив работу с PSSession, используйте
Remove-PSSession
командлет , чтобы удалить psSession и освободить его ресурсы.Наборы параметров HostName и SSHConnection были включены начиная с PowerShell 6.0. Они были добавлены для предоставления удаленного взаимодействия PowerShell на основе Secure Shell (SSH). SSH и PowerShell поддерживаются на нескольких платформах (Windows, Linux, macOS), и удаленное взаимодействие PowerShell будет работать на этих платформах, где установлены и настроены PowerShell и SSH. Это отличается от предыдущего удаленного взаимодействия только для Windows, основанного на WinRM, и многие из функций и ограничений WinRM не применяются. Например, квоты на основе WinRM, параметры сеанса, настраиваемая конфигурация конечной точки, а также функции отключения и повторного подключения не поддерживаются. Дополнительные сведения о настройке удаленного взаимодействия PowerShell SSH см. в статье Удаленное взаимодействие PowerShell по SSH.
Исполняемый 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).