Receive-PSSession

연결이 끊긴 세션의 명령 결과를 가져옵니다.

Syntax

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>]

Description

이 cmdlet은 Windows 플랫폼에서만 사용할 수 있습니다.

cmdlet은 Receive-PSSession 연결이 끊긴 PowerShell 세션(PSSession)에서 실행 중인 명령의 결과를 가져옵니다. 세션이 현재 연결된 Receive-PSSession 경우 세션 연결이 끊어졌을 때 실행 중인 명령의 결과를 가져옵니다. 세션의 연결이 끊긴 Receive-PSSession 경우 세션에 연결하고, 일시 중단된 명령을 다시 시작하고, 세션에서 실행 중인 명령의 결과를 가져옵니다.

이 cmdlet은 PowerShell 3.0에서 도입되었습니다.

명령 외에 또는 명령 대신 사용할 Receive-PSSession 수 있습니다 Connect-PSSession . Receive-PSSession 는 다른 세션 또는 다른 컴퓨터에서 시작된 연결이 끊어지거나 다시 연결된 세션에 연결할 수 있습니다.

Receive-PSSession는 cmdlet 또는 Invoke-CommandInDisconnectedSession 매개 변수를 사용하여 Disconnect-PSSession 의도적으로 연결이 끊어진 PSSessions에서 작동합니다. 또는 네트워크 중단으로 인해 의도치 않게 연결이 끊어졌습니다.

cmdlet을 Receive-PSSession 사용하여 명령이 실행되거나 일시 중단되지 Receive-PSSession 않은 세션에 연결하는 경우 세션에 연결하지만 출력이나 오류는 반환되지 않습니다.

연결이 끊긴 세션 기능에 대한 자세한 내용은 about_Remote_Disconnected_Sessions 참조하세요.

일부 예제에서는 스플래팅을 사용하여 줄 길이를 줄이고 가독성을 향상시킵니다. 자세한 내용은 about_Splatting 참조하세요.

예제

예제 1: PSSession에 커넥트

이 예제에서는 원격 컴퓨터의 세션에 연결하고 세션에서 실행 중인 명령의 결과를 가져옵니다.

Receive-PSSession -ComputerName Server01 -Name ITTask

ComputerName Receive-PSSession 매개 변수를 사용하여 원격 컴퓨터를 지정합니다. Name 매개 변수는 Server01 컴퓨터의 ITTask 세션을 식별합니다. 이 예제에서는 ITTask 세션에서 실행 중인 명령의 결과를 가져옵니다.

이 명령은 OutTarget 매개 변수를 사용하지 않으므로 명령줄에 결과가 표시됩니다.

예제 2: 연결이 끊긴 세션에서 모든 명령의 결과 가져오기

이 예제에서는 두 원격 컴퓨터의 연결이 끊긴 모든 세션에서 실행되는 모든 명령의 결과를 가져옵니다.

세션의 연결이 끊어지지 않았거나 명령을 Receive-PSSession 실행하지 않는 경우 세션에 연결하지 않고 출력 또는 오류를 반환하지 않습니다.

Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession

Get-PSSessionComputerName 매개 변수를 사용하여 원격 컴퓨터를 지정합니다. 개체는 파이프라인 Receive-PSSession아래로 전송됩니다.

예제 3: 세션에서 실행되는 스크립트의 결과 가져오기

이 예제에서는 cmdlet을 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

이 명령은 ComputerNameName 매개 변수를 사용하여 연결이 끊긴 세션을 식별합니다. OutTarget 매개 변수와 작업 값을 사용하여 결과를 작업으로 반환하도록 지시 Receive-PSSession 합니다. JobName 매개 변수는 다시 연결된 세션에서 작업의 이름을 지정합니다. 자격 증명 매개 변수는 do기본 관리자의 권한을 사용하여 명령을 실행 Receive-PSSession 합니다.

출력은 현재 세션에서 작업으로 결과를 반환한 Receive-PSSession 것을 보여줍니다. 작업 결과를 얻으려면 명령을 사용합니다 Receive-Job .

예제 4: 네트워크 중단 후 결과 가져오기

이 예제에서는 cmdlet을 Receive-PSSession 사용하여 네트워크 중단으로 인해 세션 연결이 중단된 후 작업의 결과를 가져옵니다. PowerShell은 다음 4분 동안 초당 한 번 세션을 자동으로 다시 연결하려고 시도하고 4분 간격의 모든 시도가 실패하는 경우에만 작업을 중단합니다.

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

cmdlet은 New-PSSession Server01 컴퓨터에서 세션을 만들고 해당 세션을 변수에 $s 저장합니다. 변수는 $s 상태가 열려 있고 가용성사용할 수 있음을 표시합니다. 이러한 값은 세션에 연결되어 있으며 세션에서 명령을 실행할 수 있음을 나타냅니다.

cmdlet은 Invoke-Command 변수의 세션에서 스크립트를 $s 실행합니다. 스크립트가 실행되고 데이터를 반환하기 시작하지만 세션을 중단하는 네트워크 중단이 발생합니다. 사용자는 세션을 종료하고 로컬 컴퓨터를 다시 시작해야 합니다.

컴퓨터가 다시 시작되면 사용자는 PowerShell을 시작하고 Server01 컴퓨터에서 세션을 가져오는 명령을 실행 Get-PSSession 합니다. 출력은 AD 세션이 Server01 컴퓨터에 여전히 있음을 보여 줍니다. 상태는 AD 세션의 연결이 끊어졌습니다. None의 가용성 값은 세션이 클라이언트 세션에 연결되지 않음을 나타냅니다.

cmdlet은 Receive-PSSession AD 세션에 다시 연결하고 세션에서 실행된 스크립트의 결과를 가져옵니다. 이 명령은 OutTarget 매개 변수를 사용하여 ADJob이라는 작업의 결과를 요청합니다. 이 명령은 작업 개체를 반환하고 출력은 스크립트가 여전히 실행 중임을 나타냅니다.

cmdlet Get-PSSession 은 작업 상태를 검사 데 사용됩니다. 출력은 cmdlet이 Receive-PSSession 이제 열리고 명령에 사용할 수 있는 AD 세션에 다시 연결되었음을 확인합니다. 또한 스크립트가 실행을 재개하고 스크립트 결과를 가져옵니다.

예제 5: 연결이 끊긴 세션에 다시 연결

이 예제에서는 cmdlet을 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

cmdlet은 Invoke-Command 세 개의 원격 컴퓨터에서 스크립트를 실행합니다. 스크립트는 여러 데이터베이스의 데이터를 수집하고 요약하기 때문에 스크립트를 완료하는 데 시간이 더 걸리는 경우가 많습니다. 이 명령은 스크립트를 시작한 다음 세션의 연결을 즉시 끊는 InDisconnectedSession 매개 변수를 사용합니다. SessionOption 매개 변수는 연결이 끊긴 세션의 IdleTimeout 값을 확장합니다. 연결이 끊긴 세션은 연결이 끊긴 순간부터 유휴 상태로 간주됩니다. 명령이 완료되고 세션에 다시 연결할 수 있도록 유휴 시간 제한 시간을 충분히 오랫동안 설정하는 것이 중요합니다. PSSession을 만든 경우에만 IdleTimeout설정하고 연결을 끊을 때만 변경할 수 있습니다. PSSession연결하거나 결과를 받을 때는 IdleTimeout 값을 변경할 수 없습니다. 명령을 실행한 후 사용자는 PowerShell을 종료하고 컴퓨터를 닫습니다.

다음 날 사용자는 Windows를 다시 시작하고, PowerShell을 시작하고, 스크립트가 실행 중인 세션을 가져오는 데 사용합니다 Get-PSSession . 이 명령은 컴퓨터 이름, 세션 이름 및 세션 구성의 이름으로 세션을 식별하고 세션을 변수에 $s 저장합니다. 변수 값 $s 이 표시되고 세션의 연결이 끊어졌지만 사용량이 없음을 보여 줍니다.

cmdlet은 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

이 cmdlet은 New-PSSession Server01 컴퓨터에서 테스트 세션을 만듭니다. 이 명령은 세션을 $s 변수에 저장합니다.

cmdlet은 Invoke-Command 변수의 세션에서 $s 명령을 실행합니다. 이 명령은 AsJob 매개 변수를 사용하여 명령을 작업으로 실행하고 현재 세션에서 작업 개체를 만듭니다. 이 명령은 변수에 저장된 작업 개체를 $j 반환합니다. 변수는 $j 작업 개체를 표시합니다.

변수의 $s 세션 개체가 파이프라인 Disconnect-PSSession 아래로 전송되고 세션 연결이 끊어집니다.

$j 변수가 표시되고 변수에서 작업 개체 $j 의 연결을 끊는 효과가 표시됩니다. 이제 작업 상태가 연결이 끊어졌습니다.

변수 Receive-Job 의 작업에서 $j 실행됩니다. 출력은 작업이 세션 전에 출력을 반환하기 시작했고 작업의 연결이 끊어진 것을 보여줍니다.

Connect-PSSession cmdlet은 동일한 클라이언트 세션에서 실행됩니다. 이 명령은 Server01 컴퓨터의 테스트 세션에 다시 연결하고 세션을 변수에 $s2 저장합니다.

cmdlet은 Receive-PSSession 세션에서 실행 중인 작업의 결과를 가져옵니다. 명령은 동일한 세션에서 Receive-PSSession 실행되므로 기본적으로 결과를 작업으로 반환하고 동일한 작업 개체를 다시 사용합니다. 이 명령은 변수에 작업을 $j2 저장합니다. cmdlet은 Receive-Job 변수의 작업 $j 결과를 가져옵니다.

매개 변수

-AllowRedirection

이 cmdlet은 이 연결을 대체 URI(Uniform Resource Identifier)로 리디렉션할 수 있음을 나타냅니다.

커넥트ionURI 매개 변수를 사용하는 경우 원격 대상은 다른 URI로 리디렉션하는 명령을 반환할 수 있습니다. 기본적으로 PowerShell은 연결을 리디렉션하지 않지만 이 매개 변수를 사용하여 연결을 리디렉션할 수 있습니다.

최대커넥트ionRedirectionCount 세션 옵션 값을 변경하여 연결이 리디렉션되는 횟수를 제한할 수도 있습니다. cmdlet의 MaximumRedirection 매개 변수를 New-PSSessionOption 사용하거나 기본 설정 변수의 Maximum커넥트ionRedirectionCount 속성을 $PSSessionOption 설정합니다. 기본 값은 5입니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

애플리케이션을 지정합니다. 이 cmdlet은 지정된 애플리케이션을 사용하는 세션에만 연결됩니다.

연결 URI의 애플리케이션 이름 세그먼트를 입력합니다. 예를 들어 다음 연결 URI에서 WSMan은 애플리케이션 이름 http://localhost:5985/WSMAN입니다.

세션의 애플리케이션 이름은 Runspace.커넥트에 저장됩니다.세션의 ionInfo.AppName 속성입니다.

매개 변수의 값은 세션을 선택하고 필터링하는 데 사용됩니다. 세션에서 사용하는 애플리케이션은 변경되지 않습니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

연결이 끊긴 세션에 다시 연결하기 위해 명령에서 사용자 자격 증명을 인증하는 데 사용되는 메커니즘을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 기본값
  • 기본
  • Credssp
  • 다이제스트
  • Kerberos
  • Negotiate
  • 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)를 지정합니다. 인증서의 인증서 지문을 입력합니다.

인증서는 클라이언트 인증서 기반 인증에 사용됩니다. 인증서는 로컬 사용자 계정에만 매핑할 수 있으며 do기본 계정에서는 작동하지 않습니다.

인증서 지문을 가져오려면 PowerShell Cert: 드라이브에서 또는 Get-ItemGet-ChildItem 명령을 사용합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

연결이 끊긴 세션이 저장되는 컴퓨터를 지정합니다. 세션은 서버 쪽 또는 연결의 끝을 수신하는 컴퓨터에 저장됩니다. 기본값은 로컬 컴퓨터입니다.

한 컴퓨터의 NetBIOS 이름, IP 주소 또는 FQDN(정규화된 do기본 이름)을 입력합니다. 와일드카드 문자는 허용되지 않습니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, 점(.) $env:COMPUTERNAME또는 localhost를 입력합니다.

Type:String
Aliases:Cn
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

세션 구성의 이름을 지정합니다. 이 cmdlet은 지정된 세션 구성을 사용하는 세션에만 연결합니다.

세션 구성에 대한 구성 이름 또는 정규화된 리소스 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

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

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, PortApplicationName 매개 변수를 사용하여 연결 URI 값을 지정할 수 있습니다.

URI의 전송 세그먼트에 유효한 값은 HTTP 및 HTTPS입니다. 전송 세그먼트를 사용하여 연결 URI를 지정하지만 포트를 지정하지 않으면 HTTP의 경우 80, HTTPS의 경우 443이라는 표준 포트를 사용하여 세션이 만들어집니다. PowerShell 원격에 기본 포트를 사용하려면 HTTP용 포트 5985 또는 HTTPS의 경우 5986을 지정합니다.

대상 컴퓨터가 연결을 다른 URI로 리디렉션하는 경우 명령에서 AllowRedirection 매개 변수를 사용하지 않는 한 PowerShell은 리디렉션을 방지합니다.

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 또는 Do기본01\User01과 같은 사용자 이름을 입력하거나 cmdlet에서 생성된 PSCredential 개체를 Get-Credential 입력합니다. 사용자 이름을 입력하면 암호를 입력하라는 메시지가 표시됩니다.

자격 증명은 PSCredential 개체에 저장되고 암호는 SecureString으로 저장됩니다.

참고 항목

SecureString 데이터 보호에 대한 자세한 내용은 SecureString이 얼마나 안전한가요?를 참조하세요.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

연결이 끊긴 세션의 ID를 지정합니다. Id 매개 변수는 연결이 끊긴 세션이 이전에 현재 세션에 연결된 경우에만 작동합니다.

세션이 로컬 컴퓨터에 저장되어 있지만 현재 세션에 연결되지 않은 경우 이 매개 변수는 유효하지만 유효하지는 않습니다.

Type:Int32
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

연결이 끊긴 세션의 인스턴스 ID를 지정합니다. 인스턴스 ID는 로컬 또는 원격 컴퓨터에서 PSSession 을 고유하게 식별하는 GUID입니다. 인스턴스 ID는 PSSession의 InstanceID 속성에 저장됩니다.

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

세션에 다시 연결하는 데 사용되는 원격 컴퓨터의 네트워크 포트를 지정합니다. 원격 컴퓨터에 연결하려면 연결에서 사용하는 포트에서 수신 대기해야 합니다. 기본 포트는 HTTP용 WinRM 포트인 5985와 HTTPS용 WinRM 포트인 5986입니다.

대체 포트를 사용하기 전에 원격 컴퓨터에서 WinRM 수신기를 구성하여 해당 포트에서 수신 대기해야 합니다. 수신기를 구성하려면 PowerShell 프롬프트에 다음 두 명령을 입력합니다.

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

필요한 경우가 아니면 포트 매개 변수를 사용하지 마세요. 명령에 설정된 포트는 명령이 실행되는 모든 컴퓨터 또는 세션에 적용됩니다. 대체 포트 설정을 사용하면 명령이 모든 컴퓨터에서 실행되지 않을 수 있습니다.

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

세션에 대한 고급 옵션을 지정합니다. cmdlet을 사용하여 New-PSSessionOption 만든 개체와 같은 SessionOption 개체 또는 키가 세션 옵션 이름이고 값이 세션 옵션 값인 해시 테이블을 입력합니다.

옵션의 기본값은 설정된 경우 기본 설정 변수의 $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

이 cmdlet은 SSL(Secure Sockets Layer) 프로토콜을 사용하여 연결이 끊긴 세션에 연결되었음을 나타냅니다. 기본적으로 SSL은 사용되지 않습니다.

WS-Management는 네트워크를 통해 전송되는 모든 PowerShell 콘텐츠를 암호화합니다. UseSSL 은 HTTP 연결 대신 HTTPS 연결을 통해 데이터를 보내는 추가 보호 기능입니다.

이 매개 변수를 사용하고 명령에 사용되는 포트에서 SSL을 사용할 수 없는 경우 명령이 실패합니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

PSSession

cmdlet에서 반환된 개체와 같이 세션 개체를 이 cmdlet으로 파이프할 Get-PSSession 수 있습니다.

Int32

세션 ID를 이 cmdlet으로 파이프할 수 있습니다.

Guid

이 cmdlet 세션의 인스턴스 ID를 파이프할 수 있습니다.

String

세션 이름을 이 cmdlet으로 파이프할 수 있습니다.

출력

Job

OutTarget 매개 변수의 값 또는 기본값이 JobReceive-PSSession 면 작업 개체를 반환합니다.

PSObject

이 cmdlet은 연결이 끊긴 세션에서 실행된 명령의 결과를 반환합니다(있는 경우).

참고

PowerShell에는 다음 별칭이 포함됩니다.Receive-PSSession

  • 모든 플랫폼:
    • rcsn

이 cmdlet은 Windows 플랫폼에서만 사용할 수 있습니다.

Receive-PSSession 는 연결이 끊긴 세션에서만 결과를 가져옵니다. PowerShell 3.0 이상 버전을 실행하는 컴퓨터에 연결되거나 종료되는 세션만 연결을 끊고 다시 연결할 수 있습니다.

연결이 끊긴 세션에서 실행 중인 명령이 결과를 생성하지 않았거나 결과가 이미 다른 세션 Receive-PSSession 으로 반환된 경우 출력을 생성하지 않습니다.

세션의 출력 버퍼링 모드는 세션 연결이 끊어지면 세션의 명령이 출력을 관리하는 방법을 결정합니다. 세션의 OutputBufferingMode 옵션 값이 Drop이고 출력 버퍼가 가득 차면 명령이 출력을 삭제하기 시작합니다. Receive-PSSession 이 출력을 복구할 수 없습니다. 출력 버퍼링 모드 옵션에 대한 자세한 내용은 New-PSSessionOption 및 New-PSTransportOption cmdlet에 대한 도움말 문서를 참조하세요.

PSSession에 연결하거나 결과를 받을 때는 PSSession유휴 시간 제한 값을 변경할 수 없습니다. SessionOption 매개 변수 Receive-PSSessionIdleTimeout 값이 있는 SessionOption 개체를 사용합니다. 그러나 SessionOption 개체의 IdleTimeout 값과 변수의 $PSSessionOption IdleTimeout 값은 PSSession연결하거나 결과를 받을 때 무시됩니다.

  • PSSession을 만들 때 또는 Invoke-Command cmdlet을 사용하고 New-PSSession PSSession에서 연결을 끊을 때 PSSession의 유휴 시간 초과를 설정하고 변경할 수 있습니다.
  • PSSessionIdleTimeout 속성은 연결이 끊긴 세션이 원격 컴퓨터에서 기본 유지되는 기간을 결정하므로 연결이 끊긴 세션에 중요합니다. 연결이 끊긴 세션은 연결이 끊긴 세션에서 명령을 실행 중인 경우에도 연결이 끊긴 순간부터 유휴 상태로 간주됩니다.

cmdlet의 Invoke-Command AsJob 매개 변수를 사용하여 원격 세션에서 작업을 시작하는 경우 작업이 원격 세션에서 실행되는 경우에도 작업 개체가 현재 세션에서 만들어집니다. 원격 세션의 연결을 끊으면 현재 세션의 작업 개체가 작업과 연결이 끊어집니다. 작업 개체에는 반환된 결과가 포함되지만 연결이 끊긴 세션의 작업에서 새 결과를 받지 못합니다.

다른 클라이언트가 실행 중인 작업이 포함된 세션에 연결하는 경우 원래 세션의 원래 작업 개체에 전달된 결과를 새로 연결된 세션에서 사용할 수 없습니다. 원래 작업 개체에 전달되지 않은 결과만 다시 연결된 세션에서 사용할 수 있습니다.

마찬가지로 세션에서 스크립트를 시작한 다음 세션에서 연결을 끊는 경우 연결을 끊기 전에 스크립트가 세션에 제공하는 모든 결과를 세션에 연결하는 다른 클라이언트에서 사용할 수 없습니다.

연결을 끊으려는 세션의 데이터 손실을 방지하려면 cmdlet의 InDisconnectedSession 매개 변수를 Invoke-Command 사용합니다. 이 매개 변수를 사용하면 결과가 현재 세션으로 반환되지 않으므로 세션이 다시 연결될 때 모든 결과를 사용할 수 있습니다.

cmdlet을 Invoke-Command 사용하여 원격 세션에서 명령을 실행 Start-Job 하여 데이터 손실을 방지할 수도 있습니다. 이 경우 작업 개체는 원격 세션에서 만들어집니다. cmdlet을 Receive-PSSession 사용하여 작업 결과를 가져올 수 없습니다. 대신 cmdlet을 Connect-PSSession 사용하여 세션에 연결한 다음, cmdlet을 사용하여 Invoke-Command 세션에서 명령을 실행 Receive-Job 합니다.

실행 중인 작업이 포함된 세션의 연결이 끊어진 후 다시 연결되면 작업이 연결이 끊어지고 동일한 세션에 다시 연결된 경우에만 원래 작업 개체가 다시 사용되며 다시 연결하는 명령은 새 작업 이름을 지정하지 않습니다. 세션이 다른 클라이언트 세션에 다시 연결되거나 새 작업 이름이 지정된 경우 PowerShell은 새 세션에 대한 새 작업 개체를 만듭니다.

PSSession연결을 끊으면 세션 상태가 연결이 끊어지고 가용성이 None입니다.

  • State 속성의 값은 현재 세션을 기준으로 합니다. 연결 끊김 값은 PSSession현재 세션에 연결되지 않음을 의미합니다. 그러나 PSSession모든 세션에서 연결이 끊어지는 것은 아닙니다. 다른 세션에 연결되어 있을 수도 있습니다. 세션에 연결하거나 다시 연결할 수 있는지 여부를 확인하려면 가용성 속성을 사용합니다.
  • None의 가용성 값은 세션에 연결할 수 있음을 나타냅니다. 사용 중 값은 PSSession이 다른 세션에 연결되어 있으므로 연결할 수 없음을 나타냅니다.
  • 세션의 State 속성 값에 대한 자세한 내용은 RunspaceState를 참조하세요.
  • 세션의 가용성 속성 값에 대한 자세한 내용은 RunspaceAvailability를 참조하세요.