Receive-PSSession
Возвращает результаты команд в отключенных сеансах
Синтаксис
Session (по умолчанию)
Receive-PSSession
[-Session] <PSSession>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Id
Receive-PSSession
[-Id] <Int32>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ComputerSessionName
Receive-PSSession
[-ComputerName] <String>
-Name <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ComputerInstanceId
Receive-PSSession
[-ComputerName] <String>
-InstanceId <Guid>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ConnectionUriSessionName
Receive-PSSession
[-ConnectionUri] <Uri>
-Name <String>
[-ConfigurationName <String>]
[-AllowRedirection]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ConnectionUriInstanceId
Receive-PSSession
[-ConnectionUri] <Uri>
-InstanceId <Guid>
[-ConfigurationName <String>]
[-AllowRedirection]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceId
Receive-PSSession
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
SessionName
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 работает над PSSessions, которые были отключены намеренно с помощью командлета Disconnect-PSSession или параметра Invoke-CommandInDisconnectedSession. Или отключается непреднамеренно путем прерывания сети.
Если вы используете командлет Receive-PSSession для подключения к сеансу, в котором команды не выполняются или приостановлены, Receive-PSSession подключается к сеансу, но не возвращает выходные данные или ошибки.
Дополнительные сведения о функции разъединённых сеансов см. в разделе about_Remote_Disconnected_Sessions.
В некоторых примерах используется сложение для уменьшения длины строки и повышения удобочитаемости. Дополнительные сведения см. в about_Splatting.
Примеры
Пример 1. Подключение к PSSession
Этот пример подключается к сеансу на удаленном компьютере и получает результаты команд, выполняемых в сеансе.
Receive-PSSession -ComputerName Server01 -Name ITTask
Receive-PSSession указывает удаленный компьютер с параметром ComputerName. Параметр имени определяет сеанс 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 указывает имя задания в повторно подключенном сеансе.
Параметр учетных данных запускает команду 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 повторно подключается к сеансу Active Directory и получает результаты скрипта, запущенного в сеансе. Команда использует параметр 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 выполняется в том же сеансе клиента. Команда повторно подключается к сеансу test на компьютере Server01 и сохраняет сеанс в переменной $s2.
Командлет Receive-PSSession получает результаты задания, которое выполнялось в сеансе. Так как команда выполняется в том же сеансе, Receive-PSSession возвращает результаты в качестве задания по умолчанию и повторно использует тот же объект задания. Команда сохраняет задание в переменной $j2. Командлет Receive-Job получает результаты задания в переменной $j.
Параметры
-AllowRedirection
Указывает, что этот командлет разрешает перенаправление этого подключения к альтернативному универсальному идентификатору ресурса (URI).
При использовании параметра ConnectionURI удаленный целевой объект может вернуть инструкцию для перенаправления в другой универсальный код ресурса (URI). По умолчанию PowerShell не перенаправляет подключения, но этот параметр можно использовать для перенаправления подключения.
Можно также ограничить количество перенаправлений подключения, изменив значение параметра MaximumConnectionRedirectionCount в сеансе. Используйте параметр MaximumRedirection командлета New-PSSessionOption или задайте свойство MaximumConnectionRedirectionCount переменной настроек $PSSessionOption. Значение по умолчанию — 5.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ConnectionUriSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ApplicationName
Указывает приложение. Этот командлет подключается только к сеансам, используюющим указанное приложение.
Введите сегмент имени приложения URI подключения. Например, в следующем URI подключения WSMan — это имя приложения: http://localhost:5985/WSMAN.
Имя приложения сеанса хранится в свойстве Runspace.ConnectionInfo.AppName сеанса.
Значение параметра используется для выбора и фильтрации сеансов. Оно не изменяет приложение, которое использует сеанс.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Authentication
Указывает механизм, используемый для проверки подлинности учетных данных пользователя в команде для повторного подключения к отключенном сеансу. Допустимые значения для этого параметра:
- По умолчанию
- Базовый
- Credssp
- дайджест
- Kerberos
- Вести переговоры
- NegotiateWithImplicitCredential
Значение по умолчанию — Default.
Для получения дополнительной информации о значениях этого параметра см. перечисление AuthenticationMechanism.
Осторожность
Проверка подлинности поставщика поддержки безопасности учетных данных (CredSSP), в которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности на нескольких ресурсах, таких как доступ к удаленному сетевому ресурсу. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, можно использовать для управления сетевым сеансом.
Свойства параметра
| Тип: | AuthenticationMechanism |
| Default value: | Default |
| Допустимые значения: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-CertificateThumbprint
Указывает сертификат цифрового публичного ключа (X509) учетной записи пользователя, которая имеет разрешение на подключение к отключенному сеансу. Введите отпечаток пальца сертификата.
Сертификаты используются в аутентификации, основанной на клиентских сертификатах. Сертификаты можно сопоставить только с локальными учетными записями пользователей и не работать с учетными записями домена.
Чтобы получить отпечаток сертификата, используйте команду Get-Item или Get-ChildItem на диске PowerShell Cert:.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ComputerName
Указывает компьютер, на котором хранится отключенный сеанс. Сеансы хранятся на компьютере на стороне сервера или принимающей стороне соединения. По умолчанию используется локальный компьютер.
Введите имя NetBIOS, IP-адрес или полное доменное имя (FQDN) одного компьютера.
Подстановочные знаки не разрешены. Чтобы указать локальный компьютер, введите имя компьютера, точку (.), $Env:COMPUTERNAMEили localhost.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | CN |
Наборы параметров
ComputerInstanceId
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-ConfigurationName
Указывает имя конфигурации сеанса. Этот командлет подключается только к сеансам, используюющим указанную конфигурацию сеанса.
Введите имя конфигурации или полный URI ресурса для конфигурации сеанса. Если указать только имя конфигурации, предопределен следующий универсальный код ресурса (URI) схемы:
http://schemas.microsoft.com/powershell.
Имя конфигурации сеанса хранится в свойстве ConfigurationName сеанса.
Значение параметра используется для выбора и фильтрации сеансов. Он не изменяет конфигурацию сеанса, которую он использует.
Дополнительные сведения о конфигурациях сеансов см. в about_Session_Configurations.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
ConnectionUriSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Confirm
Запрашивает подтверждение перед запуском cmdlet.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | cf |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ConnectionUri
Задает URI (универсальный указатель ресурса), определяющий конечную точку подключения, которая используется для восстановления соединения с отключенным сеансом.
Универсальный код ресурса (URI) должен быть полностью определённым. Формат строки выглядит следующим образом:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Значение по умолчанию выглядит следующим образом:
http://localhost:5985/WSMAN
Если URI подключения не указан, можно использовать параметры UseSSL, ComputerName, порти параметры applicationName для указания значений URI подключения.
Допустимые значения для сегмента транспорта URI: HTTP и HTTPS. Если указать URI подключения с сегментом транспорта, но не указать порт, сеанс создается со стандартными портами: 80 для HTTP и 443 для HTTPS. Чтобы использовать порты по умолчанию для удаленного взаимодействия PowerShell, укажите порт 5985 для HTTP или 5986 для HTTPS.
Если целевой компьютер перенаправляет подключение к другому URI, PowerShell запрещает перенаправление, если в команде не используется параметр AllowRedirection.
Свойства параметра
| Тип: | Uri |
| Default value: | http://localhost:5985/WSMAN |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | УРИ, CU |
Наборы параметров
ConnectionUriSessionName
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Credential
Указывает учетную запись пользователя, которая имеет разрешение на подключение к отключенном сеансу. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, созданный командлетом Get-Credential. Если ввести имя пользователя, вам будет предложено ввести пароль.
Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.
Замечание
Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно SecureString?.
Свойства параметра
| Тип: | PSCredential |
| Default value: | Current user |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Id
Указывает идентификатор отключенного сеанса. Параметр id работает только в том случае, если отключенный сеанс ранее был подключен к текущему сеансу.
Этот параметр действителен, но не действует, если сеанс хранится на локальном компьютере, но не был подключен к текущему сеансу.
Свойства параметра
| Тип: | Int32 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
Id
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-InstanceId
Указывает идентификатор экземпляра отключенной сессии. Идентификатор экземпляра — это GUID, который однозначно идентифицирует PSSession на локальном или удаленном компьютере. Идентификатор экземпляра хранится в свойстве InstanceIdPSSession.
Свойства параметра
| Тип: | Guid |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
InstanceId
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-JobName
Указывает удобочитаемое имя для задания, которое возвращает Receive-PSSession.
Receive-PSSession возвращает задание, если значение параметра OutTarget установлено на «Задание», или если задание, выполняемое в отключенном сеансе, было запущено в текущем сеансе.
Если задание, выполняемое в отключенном сеансе, было запущено в текущем сеансе, PowerShell повторно использует исходный объект задания в сеансе и игнорирует значение параметра JobName.
Если задание, которое выполняется в отключенном сеансе, было запущено в другом сеансе, PowerShell создает новый объект задания. Он использует имя по умолчанию, но этот параметр можно использовать для изменения имени.
Если значение по умолчанию или явное значение параметра OutTarget не является заданием, команда завершается успешно, но параметр JobName не действует.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Name
Указывает понятное имя отключенного сеанса.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerSessionName
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriSessionName
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
SessionName
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-OutTarget
Устанавливает способ возврата результатов сеанса. Допустимые значения для этого параметра:
- задания. Возвращает результаты асинхронно в объекте задания. Для указания имени или нового имени задания можно использовать параметр JobName.
- узел. Возвращает результаты в командную строку (синхронно). Если команда возобновляется или результаты состоят из большого количества объектов, ответ может быть отложен.
Значением по умолчанию параметра OutTarget является Host. Если команда, полученная в отключенном сеансе, была запущена в текущем сеансе, значение по умолчанию параметра OutTarget является формой, в которой была запущена команда. Если команда была запущена как задание, по умолчанию она возвращается в качестве задания. В противном случае он автоматически возвращается в хост-программу.
Как правило, в программе узла отображаются возвращенные объекты в командной строке без задержки, но это поведение может отличаться.
Свойства параметра
| Тип: | OutTarget |
| Default value: | None |
| Допустимые значения: | Default, Host, Job |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | 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\>
Не используйте параметр порта, если это не необходимо. Порт, заданный в команде, применяется ко всем компьютерам или сеансам, на которых выполняется команда. Альтернативный параметр порта может предотвратить выполнение команды на всех компьютерах.
Свойства параметра
| Тип: | Int32 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Session
Указывает отключенный сеанс. Введите переменную, содержащую PSSession или команду, которая создает или получает PSSession, например команду Get-PSSession.
Свойства параметра
| Тип: | PSSession |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
Session
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | 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 |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ConnectionUriInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-UseSSL
Указывает, что этот командлет использует протокол SSL для подключения к отключенным сеансам. По умолчанию SSL не используется.
WS-Management шифрует все содержимое PowerShell, передаваемое по сети. UseSSL — это дополнительная защита, которая отправляет данные через HTTPS-подключение вместо HTTP-подключения.
Если вы используете этот параметр и SSL недоступен на порту, который используется для команды, команда завершается ошибкой.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ComputerInstanceId
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ComputerSessionName
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-WhatIf
Показывает, что произойдет, если командлет будет запущен. Командлет не выполняется.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | wi |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
PSSession
Объекты сеанса можно передать в этот командлет, например объекты, возвращаемые командлетом Get-PSSession.
Int32
Идентификаторы сеанса можно передать в этот командлет.
Guid
Вы можете передать идентификаторы экземпляров сеансов этому командлету.
String
Имена сеансов можно передать в этот командлет.
Выходные данные
Job
Если значение (по умолчанию) параметра OutTarget равно Job, Receive-PSSession возвращает объект задания.
PSObject
Этот командлет возвращает результаты команд, которые выполнялись в отключенном сеансе, если таковые есть.
Примечания
PowerShell включает следующие псевдонимы для Receive-PSSession:
- Все платформы:
rcsn
Этот командлет доступен только на платформах Windows.
Receive-PSSession получает результаты только из сеансов, которые были отключены. Только сеансы, которые подключаются к компьютерам или завершаются на компьютерах с PowerShell 3.0 или более поздними версиями, могут быть отключены и повторно подключены.
Если команды, выполняемые в отключенном сеансе, не создавали результаты или если результаты уже были возвращены в другой сеанс, Receive-PSSession не создает никаких выходных данных.
Режим буферизации выходных данных сеанса определяет, как команды в сеансе управляют выходными данными при отключении сеанса. Если значение параметра OutputBufferingMode сеанса— Drop, а выходной буфер заполнен, команда начинает удалять выходные данные.
Receive-PSSession не удается восстановить эти выходные данные. Дополнительные сведения о параметре режима буферизации выходных данных можно найти в статьях справки к командлетам New-PSSessionOption и New-PSTransportOption.
Невозможно изменить значение времени ожидания простоя PSSession при подключении к PSSession или при получении результатов. Параметр SessionOptionReceive-PSSession принимает объект SessionOption, имеющий значение IdleTimeout. Однако значение IdleTimeout объекта SessionOption и значение IdleTimeout переменной $PSSessionOption игнорируются при подключении к PSSession или получении результатов.
- Вы можете задать и изменить время ожидания PSSession при создании PSSessionс помощью командлетов
New-PSSessionилиInvoke-Command, а также при отключении от PSSession. - Свойство IdleTimeout PSSession имеет решающее значение для отключенных сеансов, так как определяет, сколько времени сеанс отключен на удаленном компьютере сохраняется. Отключенные сеансы считаются неактивными с момента отключения, даже если команды выполняются в отключенном сеансе.
При запуске задания в удаленном сеансе с помощью параметра AsJob командлета Invoke-Command объект задания создается в текущем сеансе, даже если задание выполняется в удаленном сеансе. При отключении удаленного сеанса объект задания в текущем сеансе отключен от задания. Объект задания содержит все результаты, возвращенные в него, но не получает новые результаты от задания в отключенном сеансе.
Если другой клиент подключается к сеансу, который содержит выполняемое задание, результаты, доставленные в исходный объект задания в исходном сеансе, недоступны в только что подключенном сеансе. В сеансе повторного подключения доступны только результаты, которые не были доставлены в исходный объект задания.
Аналогичным образом, если вы запускаете скрипт в сеансе, а затем отключаете от сеанса, все результаты, которые скрипт доставляет в сеанс до отключения, недоступны другому клиенту, который подключается к сеансу.
Чтобы предотвратить потерю данных в сеансах, которые планируется отключить, используйте параметр InDisconnectedSession командлета Invoke-Command. Так как этот параметр предотвращает возврат результатов в текущий сеанс, все результаты будут доступны при повторном подключении сеанса.
Вы также можете предотвратить потерю данных с помощью командлета Invoke-Command для выполнения команды Start-Job в удаленном сеансе. В этом случае объект задания создается в удаленном сеансе. Для получения результатов задания нельзя использовать командлет Receive-PSSession. Вместо этого используйте командлет Connect-PSSession для подключения к сеансу, а затем используйте командлет Invoke-Command для выполнения команды Receive-Job в сеансе.
Если сеанс, содержащий запущенное задание, отключен и повторно подключен, исходный объект задания повторно используется только в том случае, если задание отсоединяется и повторно подключается к одному сеансу, а команда повторного подключения не указывает новое имя задания. Если сеанс повторно подключается к другому клиентскому сеансу или новому имени задания, PowerShell создает новый объект задания для нового сеанса.
При отключении PSSessionсостояние сеанса — Отключено, а доступность отсутствует.
- Значение свойства состояния является относительным для текущего сеанса. Значение "Отключено" означает, что PSSession не подключен к текущему сеансу. Однако это не означает, что PSSession отключен от всех сеансов. Он может быть подключен к другому сеансу. Чтобы определить, можно ли подключиться или повторно подключиться к сеансу, используйте свойство доступности.
- Значение доступности "None" указывает, что вы можете подключиться к сеансу. Значение "Занято" указывает, что вы не можете подключиться к PSSession, так как он подключен к другому сеансу.
- Дополнительные сведения о значениях свойства состояния сеансов см. в разделе RunspaceState.
- Дополнительные сведения о значениях свойства Availability сеансов смотрите в разделе RunspaceAvailability.