원격 연결 해제 세션에 대하여

간단한 설명

PowerShell 세션(PSSession)의 연결을 끊고 다시 연결하는 방법을 설명합니다.

긴 설명

PowerShell 3.0부터 PSSession에서 연결을 끊고 동일한 컴퓨터 또는 다른 컴퓨터에서 PSSession에 다시 연결할 수 있습니다. 세션 상태가 유지되고 세션 연결이 끊어지는 동안 PSSession의 명령이 계속 실행됩니다.

연결이 끊긴 세션 기능을 사용하면 PSSession이 만들어진 세션을 닫고 원격 PSSession에서 실행되는 명령을 방해하지 않고 컴퓨터를 종료할 수 있습니다. 연결이 끊긴 세션은 완료하는 데 시간이 오래 걸리는 명령을 실행하는 데 유용합니다.

Enter-PSSession cmdlet을 사용하여 시작된 대화형 세션에서 연결을 끊을 수 없습니다.

연결이 끊긴 세션을 사용하여 컴퓨터 또는 네트워크 중단으로 인해 의도치 않게 연결이 끊긴 PSSessions를 관리할 수 있습니다.

연결이 끊긴 세션 cmdlet

다음 cmdlet은 연결이 끊긴 세션 기능을 지원합니다.

  • Connect-PSSession: 연결이 끊긴 PSSession에 연결합니다.
  • Disconnect-PSSession: PSSession의 연결을 끊습니다.
  • Get-PSSession: 로컬 컴퓨터 또는 원격 컴퓨터에서 PSSessions를 가져옵니다.
  • Receive-PSSession: 연결이 끊긴 세션에서 실행된 명령의 결과를 가져옵니다.
  • Invoke-Command: InDisconnectedSession 매개 변수는 PSSession을 만들고 즉시 연결을 끊습니다.

연결이 끊긴 세션 기능의 작동 방식

PowerShell 3.0부터 PSSessions는 생성된 세션과 독립적입니다. 활성 PSSessions는 클라이언트 쪽 컴퓨터가 종료되거나 네트워크에서 연결이 끊긴 경우에도 원격 컴퓨터 또는 서버 쪽 연결 유지 관리됩니다.

PowerShell 2.0에서 PSSession은 원래 세션 또는 생성된 세션의 연결이 끊어지면 원격 컴퓨터에서 삭제됩니다.

PSSession의 연결을 끊으면 PSSession이 활성 상태로 유지되고 원격 컴퓨터에서 유지됩니다. 세션 상태가 실행에서 연결이 끊긴로 변경됩니다. 다음에서 연결이 끊긴 PSSession에 다시 연결할 수 있습니다.

  • 동일한 컴퓨터의 현재 세션
  • 동일한 컴퓨터의 다른 세션
  • 다른 컴퓨터의 세션에서

세션을 유지 관리하는 원격 컴퓨터는 실행 중이어야 하며 네트워크에 연결되어야 합니다.

연결이 끊긴 PSSession의 명령은 명령이 완료되거나 출력 버퍼가 채워질 때까지 원격 컴퓨터에서 중단 없이 계속 실행됩니다. 전체 출력 버퍼가 명령을 일시 중단하지 않도록 하려면 , Disconnect-PSSession또는 New-PSSessionOption cmdlet의 New-PSTransportOption 매개 변수를 사용합니다.

연결이 끊긴 세션은 원격 컴퓨터에서 연결이 끊어진 상태로 유지됩니다. Remove-PSSession cmdlet을 사용하거나 PSSession의 유휴 시간 제한이 만료될 때까지는, PSSession을 삭제하지 않는 한 다시 연결할 수 있습니다. , 또는 Disconnect-PSSession cmdlet의 New-PSSessionOption 또는 New-PSTransportOption 매개 변수를 사용하여 PSSession의 유휴 시간 제한을 조정할 수 있습니다.

다른 사용자는 사용자가 만든 PSSessions에 연결할 수 있지만 세션을 만드는 데 사용된 자격 증명을 제공하거나 세션 구성의 RunAs 자격 증명을 사용할 수 있는 경우에만 연결할 수 있습니다.

PSSessions를 가져오는 방법

PowerShell 3.0부터 Get-PSSession cmdlet은 로컬 컴퓨터 및 원격 컴퓨터에서 PSSessions를 가져옵니다. 또한 현재 세션에서 만든 PSSessions를 가져올 수도 있습니다.

로컬 컴퓨터 또는 원격 컴퓨터에서 PSSessions를 얻으려면 ComputerName 또는 ConnectionUri 매개 변수를 사용하세요. 매개 변수가 없으면 Get-PSSession 종료 위치에 관계없이 로컬 세션에서 생성된 PSSession을 가져옵니다.

다음 예제에서는 Get-PSSession사용하는 방법을 보여줍니다.

New-PSSession Server01 컴퓨터에 대한 세션을 만듭니다. 세션은 Server01 컴퓨터에 상주합니다.

New-PSSession -ComputerName Server01
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Server01에서 세션을 얻으려면 ComputerName 매개 변수를 사용하여 Get-PSSession대상을 지정합니다.

Get-PSSession -ComputerName Server01
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Get-PSSession 매개 변수의 값이 localhost이면 Get-PSSession 로컬 컴퓨터에서 종료되고 유지 관리되는 PSSessions를 가져옵니다. 로컬 컴퓨터에서 시작된 경우에도 Server01 컴퓨터에서 PSSessions를 가져올 수 없습니다.

Get-PSSession -ComputerName localhost

현재 세션에서 만든 세션을 얻으려면 매개 변수 없이 Get-PSSession cmdlet을 사용합니다. 이 예제에서 Get-PSSession 현재 세션에서 만든 PSSession을 가져오고 Server01 컴퓨터에 연결합니다.

Get-PSSession
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

세션 연결을 끊는 방법

Disconnect-PSSession cmdlet을 사용하여 세션 연결을 끊습니다. PSSession을 식별하려면 Session 매개 변수를 사용하거나 New-PSSession 또는 Get-PSSession cmdlet에서 PSSession 개체를 파이핑하여 Disconnect-PSSession를 사용하십시오.

다음 명령은 Server01 컴퓨터에 대한 PSSession의 연결을 끊습니다. State 속성의 값은 연결이 끊김 이고, 가용성없음입니다.

Get-PSSession -ComputerName Server01 | Disconnect-PSSession
Id Name      ComputerName  State         ConfigurationName     Availability
-- ----      ------------  -----         -----------------     ------------
 2 Session2  Server01      Disconnected  Microsoft.PowerShell          None

연결이 끊긴 세션을 만들려면 cmdlet의 Invoke-Command 매개 변수를 사용합니다. 세션을 만들고, 명령을 시작하고, 명령이 출력을 반환하기 전에 즉시 연결을 끊습니다.

다음 명령은 원격 컴퓨터 Server02의 연결이 끊긴 세션에서 Get-WinEvent 명령을 실행합니다.

Invoke-Command -ComputerName Server02 -InDisconnectedSession -ScriptBlock {
   Get-WinEvent -LogName "*PowerShell*" }
Id Name      ComputerName  State         ConfigurationName     Availability
-- ----      ------------  -----         -----------------     ------------
 4 Session3  Server02      Disconnected  Microsoft.PowerShell          None

연결이 끊긴 세션에 연결하는 방법

연결이 끊긴 세션을 다시 연결하려면 Connect-PSSession cmdlet을 ComputerName 매개 변수 또는 ConnectionUri 매개 변수와 함께 사용하십시오. 또는 Get-PSSession 출력을 Connect-PSSession에 연결할 수 있습니다.

다음 예제에서는 Server02 컴퓨터에서 세션을 가져옵니다. 출력에는 두 개의 연결이 끊어진 세션이 포함됩니다.

Get-PSSession -ComputerName Server02
Id Name      ComputerName   State         ConfigurationName     Availability
-- ----      ------------   -----         -----------------     ------------
 2 Session2  juneb-srv8320  Disconnected  Microsoft.PowerShell          None
 4 Session3  juneb-srv8320  Disconnected  Microsoft.PowerShell          None

다음 명령은 Session2에 연결합니다. 이제 PSSession이 열려 있으며 사용할 수 있습니다.

Connect-PSSession -ComputerName Server02 -Name Session2
Id Name      ComputerName    State    ConfigurationName     Availability
-- ----      ------------    -----    -----------------     ------------
 2 Session2  juneb-srv8320   Opened   Microsoft.PowerShell     Available

결과를 가져오는 방법

연결이 끊긴 PSSession에서 실행된 명령의 결과를 얻으려면 Receive-PSSession cmdlet을 사용합니다.

Receive-PSSession cmdlet을 사용하는 대신 Connect-PSSession 사용할 수 있습니다. 세션이 이미 다시 연결된 경우 Receive-PSSession 세션 연결이 끊어졌을 때 실행된 명령의 결과를 가져옵니다. PSSession의 연결이 계속 끊긴 경우 Receive-PSSession 연결이 끊긴 동안 실행된 명령의 결과를 가져옵니다.

Receive-PSSession 작업(비동기) 또는 호스트 프로그램(동기적으로)의 결과를 반환할 수 있습니다. OutTarget 매개 변수를 사용하여 작업 또는 호스트선택합니다. 기본값은 호스트입니다. 그러나 수신 중인 명령이 현재 세션에서 작업시작된 경우 기본적으로 작업 반환됩니다.

다음 예제에서는 Receive-PSSession cmdlet을 사용하여 Server02의 세션에 다시 연결하고 Get-WinEvent 명령의 결과를 가져옵니다. OutTarget 매개 변수는 작업결과를 가져오는 데 사용됩니다.

Receive-PSSession -ComputerName Server02 -Name Session3 -OutTarget Job
Id   Name   PSJobTypeName   State         HasMoreData     Location
--   ----   -------------   -----         -----------     --------
 3   Job3   RemoteJob       Running       True            Server02

작업의 결과를 얻으려면 Receive-Job cmdlet을 사용합니다.

Get-Job | Receive-Job -Keep
ProviderName: PowerShell

TimeCreated             Id LevelDisplayName Message     PSComputerName
-----------             -- ---------------- -------     --------------
5/14/2012 7:26:04 PM   400 Information      Engine stat Server02
5/14/2012 7:26:03 PM   600 Information      Provider "W Server02
5/14/2012 7:26:03 PM   600 Information      Provider "C Server02
5/14/2012 7:26:03 PM   600 Information      Provider "V Server02

상태 및 가용성 속성

연결이 끊긴 PSSession의 상태가용성 속성은 세션을 다시 연결할 수 있는지 여부를 알려줍니다.

PSSession이 현재 세션에 연결되면, 그 상태는 열린 이고 가용성은 사용 가능한입니다. PSSession에서 연결을 끊으면 PSSession 상태가 연결이 끊어진이고 가용성은 없음입니다.

State 속성의 값은 현재 세션을 기준으로 합니다. 연결이 끊긴 값은 PSSession이 현재 세션에 연결되지 않음을 의미합니다. 그러나 PSSession이 모든 세션에서 연결이 끊어지는 것은 아닙니다. 다른 세션에 연결될 수 있습니다.

PSSession에 연결하거나 다시 연결할 수 있는지 여부를 확인하려면 가용성 속성을 사용합니다. 없음 값은 세션에 연결할 수 있음을 나타냅니다. 없음 값은 PSSession이 다른 세션에 연결되어 있으므로 연결할 수 없음을 나타냅니다.

다음 예제는 동일한 컴퓨터의 두 PowerShell 세션에서 실행됩니다. PSSession의 연결이 끊어지고 다시 연결되면 각 세션의 상태가용성 속성의 변경 값을 확인합니다.

# Session 1
New-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1  Test   Server30        Opened        Microsoft.PowerShell     Available
# Session 2
Get-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          Busy
# Session 1
Get-PSSession -ComputerName Server30 -Name Test | Disconnect-PSSession
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          None
# Session 2
Get-PSSession -ComputerName Server30
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          None
# Session 2
Connect-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
3 Test    Server30        Opened        Microsoft.PowerShell     Available
# Session 1
Get-PSSession -ComputerName Server30
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          Busy

연결이 끊긴 세션은 Remove-PSSession cmdlet을 사용하여 삭제하거나 시간이 초과될 때까지 원격 컴퓨터에서 유지 관리됩니다. PSSession의 IdleTimeout 속성은 연결이 끊긴 세션이 삭제되기 전에 유지 관리되는 기간을 결정합니다.

유휴 시간 제한 값

하트비트 스레드이 응답을 받지 못한 경우 PSSession이 유휴 상태가 됩니다. 세션 연결을 끊으면 연결이 끊긴 세션에서 명령이 계속 실행되더라도 유휴 상태가 되며 IdleTimeout 클록이 시작됩니다. PowerShell은 연결이 끊긴 세션을 활성 상태이지만 유휴 상태로 간주합니다.

세션을 만들고 연결을 끊을 때 PSSession의 유휴 시간 제한이 사용자의 요구에 맞게 세션을 유지 관리할 만큼 길지만 원격 컴퓨터에서 불필요한 리소스를 소비하는 데는 그리 길지 않은지 확인합니다.

세션 구성의 IdleTimeoutMs 속성은 세션 구성을 사용하는 세션의 기본 유휴 시간 제한을 결정합니다. 기본값을 재정의할 수 있지만 해당 값은 세션 구성의 MaxIdleTimeoutMs 속성을 초과할 수 없습니다.

다음 명령을 사용하여 세션 구성에 대한 IdleTimeoutMsMaxIdleTimeoutMs 값을 가져옵니다.

Get-PSSessionConfiguration |
  Format-Table Name, IdleTimeoutMs, MaxIdleTimeoutMs

원격 컴퓨터에서 Administrators 그룹의 구성원인 경우 세션 구성을 만들 때 이러한 값을 설정할 수 있습니다. 또한 연결을 끊을 때 값을 변경할 수 있습니다.

세션 구성 및 세션 옵션의 유휴 시간 제한 값은 밀리초 단위입니다. 세션 및 세션 구성 옵션의 유휴 시간 제한 값은 초 단위입니다.

PSSession(New-PSSession, Invoke-Command)을 만들고 PSSession(Disconnect-PSSession)에서 연결을 끊을 때 PSSession의 유휴 시간 제한을 설정할 수 있습니다. 그러나 PSSession()에 연결하거나 결과(Connect-PSSession)를 가져올 때는 Receive-PSSession 값을 변경할 수 없습니다.

Connect-PSSessionReceive-PSSession cmdlet에는 cmdlet에서 반환된 개체와 같이 PSSessionOption 개체를 사용하는 New-PSSessionOption 매개 변수가 있습니다.

SessionOption 개체의 IdleTimeout 값과 기본 설정 변수의 $PSSessionOption 값은 또는 Connect-PSSession 명령에서 Receive-PSSession 값을 변경하지 않습니다.

특정 유휴 시간 제한 값을 사용하여 PSSession을 만들려면 $PSSessionOption 기본 설정 변수를 만듭니다. IdleTimeout 속성의 값을 원하는 값(밀리초)으로 설정합니다.

PSSessions를 만들 때 $PSSessionOption 변수의 값이 세션 구성의 값보다 우선합니다.

예를 들어 다음 명령은 유휴 시간 제한을 48시간으로 설정합니다.

$PSSessionOption = New-PSSessionOption -IdleTimeoutMSec 172800000

특정 유휴 시간 제한 값을 사용하여 PSSession을 만들려면 cmdlet의 New-PSSessionOption 매개 변수를 사용합니다. 그런 다음 또는 New-PSSession cmdlet의 Invoke-Command 매개 변수 값에 세션 옵션을 사용합니다.

세션을 만들 때 설정된 값은 $PSSessionOption 기본 설정 변수 및 세션 구성에 설정된 값보다 우선합니다.

예를 들어:

$o = New-PSSessionOption -IdleTimeoutMSec 172800000
New-PSSession -SessionOption $o

연결을 끊을 때 PSSession의 유휴 시간 제한을 변경하려면 cmdlet의 Disconnect-PSSession 매개 변수를 사용합니다.

예를 들어:

Disconnect-PSSession -IdleTimeoutSec 172800

특정 유휴 시간 제한 및 최대 유휴 시간 제한을 사용하여 세션 구성을 만들려면 cmdlet의 IdleTimeoutSecNew-PSTransportOption 매개 변수를 사용합니다. 그런 다음 Register-PSSessionConfiguration 매개 변수 값에서 전송 옵션을 사용합니다.

예를 들어:

$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Register-PSSessionConfiguration -Name Test -TransportOption $o

세션 구성의 기본 유휴 시간 제한 및 최대 유휴 시간 제한을 변경하려면 cmdlet의 IdleTimeoutSecNew-PSTransportOption 매개 변수를 사용합니다. 그런 다음 Set-PSSessionConfiguration 매개 변수 값에서 전송 옵션을 사용합니다.

예를 들어:

$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Set-PSSessionConfiguration -Name Test -TransportOption $o

출력 버퍼링 모드

PSSession의 출력 버퍼링 모드는 PSSession의 출력 버퍼가 가득 찼을 때 명령 출력을 관리하는 방법을 결정합니다.

연결이 끊긴 세션에서 출력 버퍼링 모드는 세션 연결이 끊긴 동안 명령이 계속 실행되는지 여부를 효과적으로 결정합니다.

다음과 같은 유효한 값입니다.

  • Block(기본값) - 출력 버퍼가 가득 차면 버퍼가 명확할 때까지 실행이 일시 중단됩니다. Block 데이터를 유지하지만 명령이 중단될 수 있습니다.
  • Drop - 출력 버퍼가 가득 차면 실행이 계속됩니다. 새 출력이 생성되면 가장 오래된 출력이 삭제됩니다. Drop 값을 사용하는 경우 출력을 파일로 리디렉션합니다. 이 값은 연결이 끊긴 세션에 권장됩니다.

세션 구성의 OutputBufferingMode 속성은 세션 구성을 사용하는 세션의 기본 버퍼링 모드를 결정합니다.

세션 구성의 OutputBufferingMode값을 찾으려면 다음 명령 형식 중 하나를 사용할 수 있습니다.

(Get-PSSessionConfiguration <ConfigurationName>).OutputBufferingMode
Get-PSSessionConfiguration | Format-Table Name, OutputBufferingMode

PSSession을 만들 때, 연결을 끊을 때 및 다시 연결할 때 세션 구성에서 기본값을 재정의하고 PSSession의 출력 버퍼링 모드를 설정할 수 있습니다.

원격 컴퓨터에서 Administrators 그룹의 구성원인 경우 세션 구성의 출력 버퍼링 모드를 만들고 변경할 수 있습니다.

PSSession을 생성할 때 출력 버퍼링 모드를 Drop로 설정하려면, $PSSessionOption 속성의 값을 로 하는 Drop 기본 설정 변수를 만들어야 합니다.

PSSessions를 만들 때 $PSSessionOption 변수의 값이 세션 구성의 값보다 우선합니다.

예를 들어:

$PSSessionOption = New-PSSessionOption -OutputBufferingMode Drop

cmdlet의 New-PSSessionOption 매개 변수를 사용하여, 값이 Drop인 세션 옵션을 만듭니다. 그런 다음 PSSessionOption 개체를 또는 New-PSSession cmdlet의 Invoke-Command 매개 변수 값으로 사용합니다.

세션을 만들 때 설정된 값은 $PSSessionOption 기본 설정 변수 및 세션 구성에 설정된 값보다 우선합니다.

예를 들어:

$o = New-PSSessionOption -OutputBufferingMode Drop
New-PSSession -SessionOption $o

연결을 끊을 때 PSSession의 출력 버퍼링 모드를 변경하려면 cmdlet의 Disconnect-PSSession 매개 변수를 사용합니다.

예를 들어:

Disconnect-PSSession -OutputBufferingMode Drop

다시 연결할 때 PSSession의 출력 버퍼링 모드를 변경하려면 cmdlet의 New-PSSessionOption 매개 변수를 사용합니다. 그런 다음 또는 Connect-PSSession에서 Receive-PSSession 매개변수 값에 대한 세션 옵션을 사용합니다.

예를 들어:

$o = New-PSSessionOption -OutputBufferingMode Drop
Connect-PSSession -ComputerName Server01 -Name Test -SessionOption $o

기본 출력 버퍼링 모드가 Drop세션 구성을 만들려면 cmdlet의 New-PSTransportOption 매개 변수를 사용하여 값이 Drop전송 옵션 개체를 만듭니다. 그런 다음 Register-PSSessionConfiguration 매개 변수 값에서 전송 옵션을 사용합니다.

예를 들어:

$o = New-PSTransportOption -OutputBufferingMode Drop
Register-PSSessionConfiguration -Name Test -TransportOption $o

세션 구성의 기본 출력 버퍼링 모드를 변경하려면 cmdlet의 New-PSTransportOption 매개 변수를 사용하여 값이 Drop전송 옵션을 만듭니다. 그런 다음 Set-PSSessionConfiguration 매개 변수 값에서 전송 옵션을 사용하십시오.

예를 들어:

$o = New-PSTransportOption -OutputBufferingMode Drop
Set-PSSessionConfiguration -Name Test -TransportOption $o

루프백 세션 연결 끊기

루프백 세션 또는 로컬 세션은 동일한 컴퓨터에서 시작되고 종료되는 PSSessions입니다. 다른 PSSessions와 마찬가지로 활성 루프백 세션은 연결의 원격 끝(로컬 컴퓨터)에 있는 컴퓨터에서 유지 관리되므로 연결을 끊고 루프백 세션에 다시 연결할 수 있습니다.

기본적으로 루프백 세션은 다른 컴퓨터에 액세스하기 위해 세션에서 명령을 실행하는 것을 허용하지 않는 네트워크 보안 토큰으로 만들어집니다. 로컬 컴퓨터 또는 원격 컴퓨터의 모든 세션에서 네트워크 보안 토큰이 있는 루프백 세션에 다시 연결할 수 있습니다.

그러나 , New-PSSession또는 Enter-PSSession cmdlet의 Invoke-Command 매개 변수를 사용하는 경우 루프백 세션은 대화형 보안 토큰으로 만들어집니다. 대화형 토큰을 사용하면 루프백 세션에서 실행되는 명령이 다른 컴퓨터에서 데이터를 가져올 수 있습니다.

대화형 토큰을 사용하여 루프백 세션의 연결을 끊은 다음 동일한 세션 또는 동일한 컴퓨터의 다른 세션에서 다시 연결할 수 있습니다. 그러나 악의적인 액세스를 방지하기 위해 생성된 컴퓨터에서만 대화형 토큰을 사용하여 루프백 세션에 다시 연결할 수 있습니다.

연결이 끊긴 세션에서 작업 대기

Wait-Job cmdlet은 작업이 완료될 때까지 기다린 다음 명령 프롬프트 또는 다음 명령으로 돌아갑니다. 기본적으로 Wait-Job 작업이 실행 중인 세션의 연결이 끊어지면 반환됩니다. 세션이 다시 연결될 때까지 대기하도록 Wait-Job cmdlet을 지시하려면 열린 상태에서 Force 매개 변수를 사용합니다. 자세한 내용은 Wait-Job참조하세요.

강력한 세션 및 의도하지 않은 연결 끊김

컴퓨터 오류 또는 네트워크 중단으로 인해 PSSession의 연결이 의도치 않게 끊어질 수 있습니다. PowerShell은 PSSession을 복구하려고 시도하지만 성공 횟수는 원인의 심각도 및 기간에 따라 달라집니다.

의도치 않게 연결이 끊어진 PSSession의 상태는 망가졌을 수도 있고 , 닫혔을 수도 있으며 , 끊어졌을 수도 있습니다 . 상태연결 끊김인 경우, 세션의 연결이 의도적으로 끊어진 경우와 동일한 기술을 사용하여 PSSession을 관리할 수 있습니다. 예를 들어 Connect-PSSession cmdlet을 사용하여 세션과 Receive-PSSession cmdlet에 다시 연결하여 세션 연결이 끊긴 동안 실행된 명령의 결과를 가져올 수 있습니다.

PSSession에서 명령이 실행되는 동안 PSSession이 만들어진 세션을 닫고 종료하면 PowerShell은 원격 컴퓨터의 연결 끊김 상태에서 PSSession을 유지 관리합니다. PSSession이 만들어진 세션을 닫고 종료하지만 PSSession에서 실행 중인 명령이 없는 경우 PowerShell은 PSSession을 유지 관리하려고 시도하지 않습니다.

참고하십시오