Receive-PSSession
Возвращает результаты выполнения команд в отключенных сеансах
Синтаксис
Receive-PSSession
[-Session] <PSSession>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-Id] <Int32>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ComputerName] <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ComputerName] <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri>
[-AllowRedirection]
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri>
[-AllowRedirection]
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Этот командлет доступен только на платформе Windows.
Командлет Receive-PSSession
получает результаты выполнения команд в сеансах PowerShell (PSSession), которые были отключены. Если сеанс в настоящее время подключен, получает результаты команд, Receive-PSSession
которые выполнялись при отключении сеанса. Если сеанс по-прежнему отключен, Receive-PSSession
подключается к сеансу, возобновляет все приостановленные команды и получает результаты выполнения команд в сеансе.
Этот командлет появился в PowerShell 3.0.
Можно использовать Receive-PSSession
в дополнение к команде или вместо нее Connect-PSSession
.
Receive-PSSession
может подключаться к любому отключенным или повторно подключенным сеансам, запущенным в других сеансах или на других компьютерах.
Receive-PSSession
работает с сеансами PSSession, которые были намеренно отключены с помощью командлета Disconnect-PSSession
Invoke-Command
или параметра InDisconnectedSession. Или отключается непреднамеренно из-за прерывания работы сети.
Если командлет используется Receive-PSSession
для подключения к сеансу, в котором команды не выполняются или приостанавливаются, Receive-PSSession
он подключается к сеансу, но не возвращает выходные данные или ошибки.
Дополнительные сведения о функции отключенных сеансов см. в разделе about_Remote_Disconnected_Sessions.
В некоторых примерах используется сплаттинг для уменьшения длины строки и улучшения удобочитаемости. Дополнительные сведения см. в разделе about_Splatting.
Примеры
Пример 1. Подключение к PSSession
Этот пример подключается к сеансу на удаленном компьютере и получает результаты команд, выполняемых в сеансе.
Receive-PSSession -ComputerName Server01 -Name ITTask
Указывает Receive-PSSession
удаленный компьютер с параметром ComputerName . Параметр Name определяет сеанс ITTask на компьютере Server01. В примере возвращаются результаты команд, которые выполнялись в сеансе ITTask.
Так как команда не использует параметр OutTarget , результаты отображаются в командной строке.
Пример 2. Получение результатов всех команд в отключенных сеансах
Этот пример получает результаты всех команд, выполняемых во всех отключенных сеансах на двух удаленных компьютерах.
Если какой-либо сеанс не был отключен или не выполняет команды, Receive-PSSession
не подключается к сеансу и не возвращает выходные данные или ошибки.
Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Get-PSSession
использует параметр ComputerName для указания удаленных компьютеров. Объекты отправляются по конвейеру в Receive-PSSession
.
Пример 3. Получение результатов выполнения скрипта в сеансе
В этом примере командлет используется Receive-PSSession
для получения результатов скрипта, который выполнялся в сеансе удаленного компьютера.
$parms = @{
ComputerName = "Server01"
Name = "ITTask"
OutTarget = "Job"
JobName = "ITTaskJob01"
Credential = "Domain01\Admin01"
}
Receive-PSSession @parms
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ITTaskJob01 Running True Server01
Команда использует параметры ComputerName и Name для идентификации отключенного сеанса.
Он использует параметр OutTarget со значением Job, чтобы направить Receive-PSSession
для возврата результатов в виде задания. Параметр JobName указывает имя задания в сеансе повторного подключения.
Параметр Credential выполняет Receive-PSSession
команду, используя разрешения администратора домена.
Выходные данные показывают, что Receive-PSSession
возвращенные результаты в качестве задания в текущем сеансе. Чтобы получить результаты задания, используйте Receive-Job
команду
Пример 4. Получение результатов после сбоя сети
В этом примере командлет используется Receive-PSSession
для получения результатов задания после сбоя сети, нарушающего подключение к сеансу. PowerShell автоматически пытается повторно подключить сеанс один раз в секунду в течение следующих четырех минут и откажется от усилий только в том случае, если все попытки в течение четырехминутного интервала завершаются ошибкой.
PS> $s = New-PSSession -ComputerName Server01 -Name AD -ConfigurationName ADEndpoint
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
8 AD Server01 Opened ADEndpoint Available
PS> Invoke-Command -Session $s -FilePath \\Server12\Scripts\SharedScripts\New-ADResolve.ps1
Running "New-ADResolve.ps1"
# Network outage
# Restart local computer
# Network access is not re-established within 4 minutes
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell None
8 AD Server01 Disconnected ADEndpoint None
PS> Receive-PSSession -ComputerName Server01 -Name AD -OutTarget Job -JobName AD
Job Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ADJob Running True Server01
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell Busy
8 AD Server01 Opened ADEndpoint Available
Командлет New-PSSession
создает сеанс на компьютере Server01 и сохраняет его в переменной $s
. Переменная $s
отображает, что состояние открыто, а доступность доступна. Эти значения указывают, что вы подключены к сеансу и можете выполнять команды в сеансе.
Командлет Invoke-Command
выполняет скрипт в сеансе в переменной $s
. Скрипт начинает выполняться и возвращает данные, но из-за сбоя сети сеанс прерывается. Пользователю необходимо завершить сеанс и перезагрузить локальный компьютер.
При перезагрузке компьютера пользователь запускает PowerShell и выполняет Get-PSSession
команду для получения сеансов на компьютере Server01. В выходных данных показано, что сеанс AD по-прежнему существует на компьютере Server01. Состояние указывает, что сеанс AD отключен. Значение Доступности Отсутствует указывает, что сеанс не подключен ни к одному сеансу клиента.
Командлет Receive-PSSession
повторно подключается к сеансу AD и получает результаты скрипта, запущенного в сеансе. Команда использует параметр OutTarget для запроса результатов в задании с именем ADJob. Команда возвращает объект задания, а выходные данные указывают на то, что скрипт все еще выполняется.
Командлет Get-PSSession
используется для проверка состояния задания. Выходные данные подтверждают, что Receive-PSSession
командлет повторно подключился к сеансу AD , который теперь открыт и доступен для команд. Кроме того, скрипт возобновил выполнение и получает результаты скрипта.
Пример 5. Повторное подключение к отключенным сеансам
В этом примере командлет используется для повторного Receive-PSSession
подключения к сеансам, которые были намеренно отключены, и получения результатов заданий, выполнявшихся в сеансах.
PS> $parms = @{
InDisconnectedSession = $True
ComputerName = "Server01", "Server02", "Server30"
FilePath = "\\Server12\Scripts\SharedScripts\Get-BugStatus.ps1"
Name = "BugStatus"
SessionOption = @{IdleTimeout = 86400000}
ConfigurationName = "ITTasks"
}
PS> Invoke-Command @parms
PS> Exit
PS> $s = Get-PSSession -ComputerName Server01, Server02, Server30 -Name BugStatus
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Disconnected ITTasks None
8 ITTask Server02 Disconnected ITTasks None
2 ITTask Server30 Disconnected ITTasks None
PS> $Results = Receive-PSSession -Session $s
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Opened ITTasks Available
8 ITTask Server02 Opened ITTasks Available
2 ITTask Server30 Opened ITTasks Available
PS> $Results
Bug Report - Domain 01
----------------------
ComputerName BugCount LastUpdated
-------------- --------- ------------
Server01 121 Friday, December 30, 2011 5:03:34 PM
Командлет Invoke-Command
выполняет скрипт на трех удаленных компьютерах. Поскольку скрипт собирает и суммирует данные из нескольких баз данных, для его завершения часто требуется длительное время. Команда использует параметр InDisconnectedSession , который запускает скрипты, а затем немедленно отключает сеансы. Параметр SessionOption расширяет значение IdleTimeout отключенного сеанса. Отключенные сеансы считаются неактивными с момента их отключения. Важно установить время ожидания простоя достаточно долго, чтобы команды можно было выполнить и повторно подключиться к сеансу. IdleTimeout можно задать только при создании PSSession и изменить его только при отключении от него. Вы не можете изменить значение IdleTimeout при подключении к PSSession или получении его результатов. После выполнения команды пользователь выходит из PowerShell и закрывает компьютер.
На следующий день пользователь возобновляет работу Windows, запускает PowerShell и использует Get-PSSession
для получения сеансов, в которых выполнялись скрипты. Команда определяет сеансы по имени компьютера, имени сеанса и имени конфигурации сеанса и сохраняет сеансы в переменной $s
. Значение переменной $s
отображается и показывает, что сеансы отключены, но не заняты.
Командлет Receive-PSSession
подключается к сеансам в переменной $s
и получает их результаты.
Команда сохраняет результаты в переменной $Results
. Отобразится $s
переменная, которая показывает, что сеансы подключены и доступны для команд.
Результаты скрипта в переменной $Results
отображаются в консоли PowerShell. Если какой-либо из результатов непредвиден, пользователь может выполнять команды в сеансах, чтобы исследовать первопричину.
Пример 6. Выполнение задания в отключенном сеансе
В этом примере показано, что происходит с заданием, которое выполняется в отключенном сеансе.
PS> $s = New-PSSession -ComputerName Server01 -Name Test
PS> $j = Invoke-Command -Session $s { 1..1500 | Foreach-Object {"Return $_"; sleep 30}} -AsJob
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Running True Server01
PS> $s | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server01 Disconnected Microsoft.PowerShell None
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Disconnected True Server01
PS> Receive-Job $j -Keep
Return 1
Return 2
PS> $s2 = Connect-PSSession -ComputerName Server01 -Name Test
PS> $j2 = Receive-PSSession -ComputerName Server01 -Name Test
PS> Receive-Job $j
Return 3
Return 4
Командлет New-PSSession
создает тестовый сеанс на компьютере Server01. Сеанс сохраняется в переменную $s
.
Командлет Invoke-Command
выполняет команду в сеансе в переменной $s
. Команда использует параметр AsJob для выполнения команды в качестве задания и создает объект задания в текущем сеансе.
Команда возвращает объект задания, сохраненный в переменной $j
. Переменная $j
отображает объект задания.
Объект сеанса в переменной $s
отправляется по конвейеру Disconnect-PSSession
и сеанс отключается.
Переменная $j
отображается и показывает результат отключения объекта задания в переменной $j
. Состояние задания меняется на "Отключено".
Выполняется Receive-Job
в задании в переменной $j
. Выходные данные показывают, что задание начало возвращать выходные данные до сеанса и задание было отключено.
Командлет Connect-PSSession
выполняется в том же сеансе клиента. Команда повторно подключается к сеансу тестирования на компьютере Server01 и сохраняет сеанс в переменной $s2
.
Командлет Receive-PSSession
получает результаты задания, которое выполнялось в сеансе. Так как команда выполняется в том же сеансе, Receive-PSSession
по умолчанию возвращает результаты в виде задания и повторно использует тот же объект задания. Команда сохраняет задание в переменной $j2
. Командлет Receive-Job
получает результаты задания в переменной $j
.
Параметры
-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 подключения. Например, в следующем URI подключения WSMan является именем приложения: http://localhost:5985/WSMAN
.
Имя приложения сеанса хранится в свойстве сеанса Runspace.ConnectionInfo.AppName.
Значение параметра используется для выбора и фильтрации сеансов. Это не изменяет приложение, которое использует сеанс.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Authentication
Указывает механизм, используемый для проверки подлинности учетных данных пользователя в команде для повторного подключения к отключенным сеансам. Допустимые значения для этого параметра:
- Default
- Basic
- Credssp
- Digest (дайджест)
- Kerberos
- Согласование
- NegotiateWithImplicitCredential
Значение по умолчанию — Default.
Дополнительные сведения о значениях этого параметра см. в разделе Перечисление AuthenticationMechanism.
Внимание!
Проверка подлинности поставщика поддержки безопасности учетных данных (CredSSP), при которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности в нескольких ресурсах, таких как доступ к удаленной сетевой папке. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, могут использоваться для управления сетевым сеансом.
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | Default |
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
Указывает компьютер, на котором хранится отключенный сеанс. Сеансы хранятся на компьютере, который находится на стороне сервера или на принимающей стороне подключения. По умолчанию это локальный компьютер.
Введите netBIOS-имя, IP-адрес или полное доменное имя (FQDN) одного компьютера.
Использование подстановочных знаков запрещено. Чтобы указать локальный компьютер, введите имя компьютера, точку (.
), $env:COMPUTERNAME
или localhost.
Type: | String |
Aliases: | Cn |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ConfigurationName
Указывает имя конфигурации сеанса. Этот командлет подключается только к сеансам, которые используют указанную конфигурацию сеанса.
Введите имя конфигурации или полное имя ресурса (URI) для конфигурации сеанса. Если указать только имя конфигурации, добавляется следующая схема URI:
http://schemas.microsoft.com/powershell
.
Имя конфигурации сеанса хранится в свойстве сеанса ConfigurationName.
Значение параметра используется для выбора и фильтрации сеансов. Она не изменяет конфигурацию сеанса, которую использует сеанс.
Дополнительные сведения о конфигурациях сеансов см. в разделе about_Session_Configurations.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Запрос подтверждения перед выполнением командлета.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionUri
Указывает универсальный код ресурса (URI), определяющий конечную точку подключения, которая используется для повторного подключения к отключенным сеансам.
Значение URI должно быть указано полностью. Формат строки выглядит следующим образом:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Значение по умолчанию определяется следующим образом.
http://localhost:5985/WSMAN
Если URI подключения не указан, можно использовать параметры UseSSL, ComputerName, Port и ApplicationName , чтобы указать значения URI подключения.
Допустимые значения для сегмента Transport идентификатора 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: | http://localhost:5985/WSMAN |
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: | False |
Accept wildcard characters: | False |
-Id
Указывает идентификатор отключенного сеанса. Параметр Id работает только в том случае, если отключенный сеанс был ранее подключен к текущему сеансу.
Этот параметр является допустимым, но недействителен, если сеанс хранится на локальном компьютере, но не был подключен к текущему сеансу.
Type: | Int32 |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Указывает идентификатор экземпляра отключенного сеанса. Идентификатор экземпляра — это GUID, который однозначно идентифицирует PSSession на локальном или удаленном компьютере. Идентификатор экземпляра хранится в свойстве InstanceIDобъекта PSSession.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobName
Указывает понятное имя возвращаемого Receive-PSSession
задания.
Receive-PSSession
возвращает задание, если параметр OutTarget имеет значение Job или задание, выполняющееся в отключенном сеансе, было запущено в текущем сеансе.
Если задание, выполняемое в отключенном сеансе, было запущено в текущем сеансе, PowerShell повторно использует исходный объект задания в сеансе и игнорирует значение параметра JobName .
Если задание, выполняемое в отключенном сеансе, было запущено в другом сеансе, PowerShell создает новый объект задания. При этом используется имя по умолчанию, но его можно изменить с помощью этого параметра.
Если значение по умолчанию или явное значение параметра OutTarget не является Job, команда выполняется успешно, но параметр JobName не оказывает влияния.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Указывает понятное имя отключенного сеанса.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutTarget
Определяет, как возвращаются результаты сеанса. Допустимые значения для этого параметра:
- Задание. асинхронно возвращает результаты в объекте задания. С помощью параметра JobName можно указать имя задания (имя по умолчанию или новое).
- Узел. возвращает результаты из командной строки (синхронно). Если команда возобновляется или результаты состоят из большого числа объектов, ответ может быть отложен.
Значение по умолчанию параметра OutTarget — Host. Если команда, полученная в отключенном сеансе, была запущена в текущем сеансе, значением по умолчанию параметра OutTarget является форма запуска команды. Если команда была запущена как задание, по умолчанию она возвращается как задание. В противном случае он по умолчанию возвращается в ведущее приложение.
Как правило, основная программа отображает возвращаемые объекты в командной строке без задержки, но это не всегда так.
Type: | OutTarget |
Accepted values: | Default, Host, Job |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Port
Указывает сетевой порт удаленного компьютера, используемый для повторного подключения к сеансу. Чтобы подключиться к удаленному компьютеру, он должен прослушивать порт, используемый подключением. По умолчанию используются порты 5985, которые являются портом WinRM для HTTP, и 5986, который является портом WinRM для HTTPS.
Перед использованием альтернативного порта необходимо настроить прослушиватель WinRM на удаленном компьютере для прослушивания этого порта. Чтобы настроить прослушиватель, введите в командной строке PowerShell следующие две команды:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Не используйте параметр Port , если это не требуется. Порт, заданный в команде, применяется ко всем компьютерам или сеансам, на которых выполняется команда. Альтернативный порт может помешать выполнению команды на всех компьютерах.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Session
Указывает отключенный сеанс. Введите переменную, содержащую PSSession , или команду, которая создает или получает PSSession, например Get-PSSession
команду .
Type: | PSSession |
Position: | 0 |
Default value: | None |
Required: | True |
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 |
-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 |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Вы можете передать объекты сеанса в этот командлет, например объекты, возвращаемые командлетом Get-PSSession
.
Идентификаторы сеансов можно передать в этот командлет.
Этот командлет позволяет передать идентификаторы экземпляров сеансов по конвейеру.
Вы можете передать имена сеансов в этот командлет.
Выходные данные
Если значение или значение по умолчанию параметра OutTarget равно Job
, Receive-PSSession
возвращает объект задания.
Этот командлет возвращает результаты команд, которые выполнялись в отключенном сеансе, если таковые есть.
Примечания
PowerShell включает следующие псевдонимы для Receive-PSSession
:
- Для всех платформ.
rcsn
Этот командлет доступен только на платформах Windows.
Receive-PSSession
получает результаты только из сеансов, которые были отключены. Отключить и повторно подключить можно только сеансы, подключенные к компьютерам под управлением PowerShell 3.0 или более поздних версий.
Если команды, выполнявшиеся в отключенном сеансе, не дали результатов или результаты уже были возвращены в другой сеанс, Receive-PSSession
выходные данные не создаются.
Режим буферизации выходных данных сеанса определяет, как команды в сеансе управляют выходными данными при отключении сеанса. Если для параметра OutputBufferingMode сеанса задано значение Drop, а выходной буфер заполнен, команда начинает удалять выходные данные. Receive-PSSession
Не удается восстановить эти выходные данные. Дополнительные сведения о режиме буферизации вывода см. в статьях справки по командлетам New-PSSessionOption и New-PSTransportOption .
Вы не можете изменить значение времени ожидания простоя psSession при подключении к PSSession или получении результатов. Параметр Receive-PSSession
SessionOption объекта принимает объект SessionOption со значением IdleTimeout. Однако значение IdleTimeout объекта SessionOption и значение IdleTimeout переменной $PSSessionOption
игнорируются при подключении к PSSession или получении результатов.
- Вы можете задать и изменить время ожидания простоя PSSession при создании PSSession с помощью
New-PSSession
командлетов илиInvoke-Command
и при отключении от PSSession. - Свойство IdleTimeoutPSSession имеет решающее значение для отключенных сеансов, так как оно определяет продолжительность обслуживания отключенного сеанса на удаленном компьютере. Отключенные сеансы считаются находящимися в режиме простоя с момента их отключения, даже если в них выполняются команды.
При запуске задания в удаленном сеансе с помощью параметра AsJob командлета Invoke-Command
объект задания создается в текущем сеансе, несмотря на то, что задание выполняется в удаленном сеансе. При отключении удаленного сеанса объект задания в текущем сеансе отключается от задания. Объект задания содержит все результаты, которые были возвращены ему, но не получает новые результаты от задания в отключенном сеансе.
Если другой клиент подключается к сеансу, который содержит выполняющееся задание, результаты, доставленные в исходный объект задания в исходном сеансе, недоступны во вновь подключенном сеансе. После повторного подключения сеанса доступны только те результаты, которые не были доставлены в исходный объект задания.
Аналогичным образом, если вы запускаете скрипт в сеансе, а затем отключаетесь от сеанса, все результаты, которые скрипт доставляет в сеанс перед отключением, будут недоступны другому клиенту, который подключается к сеансу.
Чтобы предотвратить потерю данных в сеансах, которые планируется отключить, используйте параметр InDisconnectedSession командлета Invoke-Command
. Поскольку этот параметр запрещает возвращать результаты текущему сеансу, после повторного подключения сеанса доступны все результаты.
Вы также можете предотвратить потерю данных с помощью командлета Invoke-Command
для выполнения Start-Job
команды в удаленном сеансе. В этом случае объект задания создается в удаленном сеансе. Командлет нельзя использовать Receive-PSSession
для получения результатов задания. Вместо этого используйте Connect-PSSession
командлет для подключения к сеансу Invoke-Command
, а затем используйте командлет для выполнения Receive-Job
команды в сеансе.
Если сеанс, содержащий выполняющееся задание, отключается, а затем повторно подключается, исходный объект задания повторно используется только в том случае, если задание отключено и повторно подключено к тому же сеансу, а команда для повторного подключения не указывает новое имя задания. Если сеанс повторно подключается к другому сеансу клиента или указано новое имя задания, PowerShell создает новый объект задания для нового сеанса.
При отключении PSSession состояние сеанса — Отключено, а доступность — Нет.
- Значение свойства State определяется текущим сеансом. Значение Disconnected означает, что PSSession не подключен к текущему сеансу. Однако это не означает, что PSSession отключен от всех сеансов. Он может быть подключен к другому сеансу. Определить возможность подключения или повторного подключения к сеансу позволяет свойство Availability.
- Если свойство Availability имеет значение None, подключиться к сеансу можно. Значение Busy указывает, что вы не можете подключиться к PSSession , так как оно подключено к другому сеансу.
- Дополнительные сведения о значениях свойства State сеансов см. в разделе RunspaceState.
- Дополнительные сведения о значениях свойства Availability сеансов см. в разделе RunspaceAvailability.