다음을 통해 공유


Disconnect-PSSession

세션에서 연결을 끊습니다.

Syntax

Disconnect-PSSession
          [-Session] <PSSession[]>
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]
Disconnect-PSSession
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          -Name <String[]>
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]
Disconnect-PSSession
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          -InstanceId <Guid[]>
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]
Disconnect-PSSession
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          [-Id] <Int32[]>
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]

Description

cmdlet은 Disconnect-PSSession 현재 세션에서 cmdlet을 사용하여 New-PSSession 시작한 세션과 같은 PowerShell 세션("PSSession")의 연결을 끊습니다. 그 결과로 PSSession은 연결이 끊긴 상태입니다. 현재 세션 또는 로컬 컴퓨터의 다른 세션이나 다른 컴퓨터에서 연결이 끊긴 PSSession에 연결할 수 있습니다.

cmdlet은 Disconnect-PSSession 현재 세션에 연결된 열린 PSSessions만 연결을 끊습니다. Disconnect-PSSession 끊어지거나 닫힌 PSSessions 또는 cmdlet을 사용하여 Enter-PSSession 시작된 대화형 PSSessions의 연결을 끊을 수 없으며 다른 세션에 연결된 PSSessions의 연결을 끊을 수 없습니다.

연결이 끊긴 PSSession에 다시 연결하려면 또는 Receive-PSSession cmdlet을 사용합니다Connect-PSSession.

PSSession이 시간 초과되었거나 출력 버퍼가 가득 차서 PSSession의 명령이 차단된 경우가 아니면 PSSession의 연결이 끊겨도 PSSession의 명령은 완료될 때까지 계속 실행됩니다. 유휴 시간 제한을 변경하려면 IdleTimeoutSec 매개 변수를 사용합니다. 출력 버퍼링 모드를 변경하려면 OutputBufferingMode 매개 변수를 사용합니다. cmdlet의 Invoke-CommandInDisconnectedSession 매개 변수를 사용하여 연결이 끊긴 세션에서 명령을 실행할 수도 있습니다.

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

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

예제

예제 1 - 이름으로 세션 연결 끊기

이 명령은 현재 세션에서 Server01 컴퓨터에 있는 UpdateSession PSSession의 연결을 끊습니다. 명령은 Name 매개 변수를 사용하여 PSSession을 식별합니다.

PS> Disconnect-PSSession -Name UpdateSession
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
1  UpdateSession   Server01        Disconnected  Microsoft.PowerShell          None

출력은 연결 끊기 시도가 성공했음을 보여 줍니다. 세션 상태가 Disconnected이고 Availability가 None이므로 세션이 사용되고 있지 않으며 다시 연결할 수 있음을 나타냅니다.

예제 2 - 특정 컴퓨터에서 세션 연결 끊기

이 명령은 현재 세션에서 Server12 컴퓨터에 있는 ITTask PSSession의 연결을 끊습니다. ITTask 세션은 현재 세션에서 만들어졌으며 Server12 컴퓨터에 연결합니다. 명령은 cmdlet을 Get-PSSession 사용하여 세션과 cmdlet의 Disconnect-PSSession 연결을 끊습니다.

PS> Get-PSSession -ComputerName Server12 -Name ITTask |
  Disconnect-PSSession -OutputBufferingMode Drop -IdleTimeoutSec 86400
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
1  ITTask          Server12        Disconnected  ITTasks               None

명령은 Disconnect-PSSessionOutputBufferingMode 매개 변수를 사용하여 출력 모드를 Drop으로 설정합니다. 이 설정은 세션 출력 버퍼가 가득 차도 세션에서 실행 중인 스크립트를 계속 실행할 수 있게 합니다. 스크립트가 파일 공유의 보고서에 출력을 쓰기 때문에 다른 출력이 영향 없이 손실될 수 있습니다.

또한 이 명령은 IdleTimeoutSec 매개 변수를 사용하여 세션의 시간 제한을 24시간으로 연장합니다. 이 설정은 이 관리자나 다른 관리자가 세션에 다시 연결하여 스크립트가 실행되었는지 확인하고 필요한 경우 문제를 해결할 수 있는 시간을 허용합니다.

예제 3 - 여러 컴퓨터에서 여러 PSSessions 사용

이 일련의 명령은 엔터프라이즈 시나리오에서 cmdlet을 Disconnect-PSSession 사용하는 방법을 보여 줍니다. 이 경우 새 기술자가 원격 컴퓨터의 세션에서 스크립트를 시작한 후 문제가 발생합니다. 보다 경험이 많은 관리자가 세션에 연결하여 문제를 해결할 수 있도록 기술자가 세션에서 연결을 끊습니다.

PS> $s = New-PSSession -ComputerName Srv1, Srv2, Srv30 -Name ITTask
PS> Invoke-Command $s -FilePath \\Server01\Scripts\Get-PatchStatus.ps1
PS> Get-PSSession -Name ITTask -ComputerName Srv1 | Disconnect-PSSession
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
1 ITTask           Srv1            Disconnected  Microsoft.PowerShell          None

PS> Get-PSSession -ComputerName Srv1, Srv2, Srv30 -Name ITTask
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Srv1            Disconnected  Microsoft.PowerShell          None
 2 ITTask          Srv2            Opened        Microsoft.PowerShell     Available
 3 ITTask          Srv30           Opened        Microsoft.PowerShell     Available

PS> Get-PSSession -ComputerName Srv1 -Name ITTask -Credential Domain01\User01
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Srv1            Disconnected  Microsoft.PowerShell          None

PS> $s = Connect-PSSession -ComputerName Srv1 -Name ITTask -Credential Domain01\User01
PS> Invoke-Command -Session $s {dir $home\Scripts\PatchStatusOutput.ps1}
PS> Invoke-Command -Session $s {mkdir $home\Scripts\PatchStatusOutput}
PS> Invoke-Command -Session $s -FilePath \\Server01\Scripts\Get-PatchStatus.ps1
PS> Disconnect-PSSession -Session $s

기술자는 먼저 여러 원격 컴퓨터에서 세션을 만들고 각 세션에서 스크립트를 실행합니다. 첫 번째 명령은 cmdlet을 New-PSSession 사용하여 3대의 원격 컴퓨터에서 ITTask 세션을 만듭니다. 이 명령은 세션을 $s 변수에 저장합니다. 두 번째 명령은 cmdlet의 FilePath 매개 변수를 Invoke-Command 사용하여 $s 변수의 세션에서 스크립트를 실행합니다.

Srv1 컴퓨터에서 실행되는 스크립트가 예기치 않은 오류를 생성합니다. 기술자가 관리자에게 지원을 요청합니다. 관리자는 기술자가 조사할 수 있도록 세션에서 연결을 끊도록 지시합니다. 두 번째 명령은 cmdlet을 Get-PSSession 사용하여 Srv1 컴퓨터의 ITTask 세션과 cmdlet의 Disconnect-PSSession 연결을 끊습니다. 이 명령은 다른 컴퓨터의 ITTask 세션에 영향을 주지 않습니다.

세 번째 명령은 cmdlet을 Get-PSSession 사용하여 ITTask 세션을 가져옵니다. 출력은 Srv2 및 Srv30 컴퓨터의 ITTask 세션이 연결 끊기 명령의 영향을 받지 않았음을 보여 줍니다.

관리자는 자신의 홈 컴퓨터에 로그온하고, 회사 네트워크에 연결하고, Windows PowerShell 시작하고, cmdlet을 사용하여 Get-PSSession Srv1 컴퓨터에서 ITTask 세션을 가져옵니다. 기술자 자격 증명을 사용하여 세션에 액세스한

다음으로 관리자는 cmdlet을 Connect-PSSession 사용하여 Srv1 컴퓨터의 ITTask 세션에 연결합니다. 이 명령은 세션을 $s 변수에 저장합니다.

관리자는 cmdlet을 Invoke-Command 사용하여 변수의 세션에서 $s 일부 진단 명령을 실행합니다. 스크립트가 필요한 디렉터리를 찾지 못해 실패했음을 발견합니다. 관리자는 함수를 MkDir 사용하여 디렉터리를 만든 다음 스크립트를 Get-PatchStatus.ps1 다시 시작하고 세션에서 연결을 끊습니다. 관리자는 자신의 결과를 기술자에게 보고하고, 세션을 다시 연결하여 작업을 완료하도록 제안하고, 필요한 디렉터리가 없는 경우 필요한 디렉터리를 만드는 명령을 스크립트에 추가하도록 Get-PatchStatus.ps1 요청합니다.

예제 4 - PSSession의 시간 제한 값 변경

이 예제에서는 세션 연결을 끊을 수 있도록 세션의 IdleTimeout 속성 값을 수정하는 방법을 보여 줍니다.

세션의 유휴 시간 제한 속성은 연결이 끊긴 세션이 삭제되기 전에 유지되는 기간을 결정하므로 연결이 끊긴 세션에 중요합니다. 세션을 만들 때 및 세션 연결을 끊을 때 유휴 시간 제한 옵션을 설정할 수 있습니다. 세션의 유휴 시간 제한에 대한 기본값은 로컬 컴퓨터의 기본 설정 변수와 원격 컴퓨터의 세션 구성에서 설정 $PSSessionOption 됩니다. 세션에 대해 설정된 값이 세션 구성에서 설정된 값보다 우선하지만 세션 값은 세션 구성에서 설정된 할당량(예: MaxIdleTimeoutMs 값)을 초과할 수 없습니다.

PS> $Timeout = New-PSSessionOption -IdleTimeout 172800000
PS> $s = New-PSSession -Computer Server01 -Name ITTask -SessionOption $Timeout
PS> Disconnect-PSSession -Session $s
Disconnect-PSSession : The session ITTask cannot be disconnected because the specified
idle timeout value 172800(seconds) is either greater than the server maximum allowed
43200 (seconds) or less that the minimum allowed60(seconds).  Choose an idle time out
value that is within the allowed range and try again.

PS> Invoke-Command -ComputerName Server01 {Get-PSSessionConfiguration Microsoft.PowerShell} |
 Format-List -Property *

Architecture                  : 64
Filename                      : %windir%\system32\pwrshplugin.dll
ResourceUri                   : https://schemas.microsoft.com/powershell/microsoft.powershell
MaxConcurrentCommandsPerShell : 1000
UseSharedProcess              : false
ProcessIdleTimeoutSec         : 0
xmlns                         : https://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
MaxConcurrentUsers            : 5
lang                          : en-US
SupportsOptions               : true
ExactMatch                    : true
RunAsUser                     :
IdleTimeoutms                 : 7200000
PSVersion                     : 3.0
OutputBufferingMode           : Block
AutoRestart                   : false
SecurityDescriptorSddl        : O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
MaxMemoryPerShellMB           : 1024
MaxIdleTimeoutms              : 2147483647
Uri                           : https://schemas.microsoft.com/powershell/microsoft.powershell
SDKVersion                    : 2
Name                          : microsoft.powershell
XmlRenderingType              : text
Capability                    : {Shell}
RunAsPassword                 :
MaxProcessesPerShell          : 15
ParentResourceUri             : https://schemas.microsoft.com/powershell/microsoft.powershell
Enabled                       : true
MaxShells                     : 25
MaxShellsPerUser              : 25
Permission                    : BUILTIN\Administrators AccessAllowed
PSComputerName                : localhost
RunspaceId                    : aea84310-6dbf-4c21-90ac-13980039925a
PSShowComputerName            : True


PS> $s.Runspace.ConnectionInfo
ConnectionUri                     : http://Server01/wsman
ComputerName                      : Server01
Scheme                            : http
Port                              : 80
AppName                           : /wsman
Credential                        :
ShellUri                          : https://schemas.microsoft.com/powershell/Microsoft.PowerShell
AuthenticationMechanism           : Default
CertificateThumbprint             :
MaximumConnectionRedirectionCount : 5
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         : 209715200
UseCompression                    : True
NoMachineProfile                  : False
ProxyAccessType                   : None
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
NoEncryption                      : False
UseUTF16                          : False
OutputBufferingMode               : Drop
IncludePortInSPN                  : False
Culture                           : en-US
UICulture                         : en-US
OpenTimeout                       : 180000
CancelTimeout                     : 60000
OperationTimeout                  : 180000
IdleTimeout                       : 172800000

PS> Disconnect-PSSession $s -IdleTimeoutSec 43200
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 4 ITTask          Server01        Disconnected  Microsoft.PowerShell          None

PS> $s.Runspace.ConnectionInfo.IdleTimeout
43200000

첫 번째 명령은 cmdlet을 New-PSSessionOption 사용하여 세션 옵션 개체를 만듭니다. IdleTimeout 매개 변수를 사용하여 유휴 시간 제한을 48시간(172800000밀리초)으로 설정합니다. 또한 세션 옵션 개체를 $Timeout 변수에 저장합니다.

두 번째 명령은 cmdlet을 New-PSSession 사용하여 Server01 컴퓨터에서 ITTask 세션을 만듭니다. 이 명령은 세션을 $s 변수에 저장합니다. SessionOption 매개 변수 값은 $Timeout 변수에 있는 48시간 유휴 시간 제한입니다.

세 번째 명령은 $s 변수에 있는 ITTask 세션의 연결을 끊습니다. 세션의 유휴 시간 제한 값이 세션 구성의 MaxIdleTimeoutMs 할당량을 초과하기 때문에 명령이 실패합니다. 세션 연결이 끊길 때까지 유휴 시간 제한이 사용되지 않았으므로 세션이 사용 중인 동안에는 이 위반이 검색되지 않을 수 있습니다.

네 번째 명령은 cmdlet을 Invoke-Command 사용하여 Server01 컴퓨터에서 Microsoft.PowerShell 세션 구성에 대한 명령을 실행 Get-PSSessionConfiguration 합니다. 명령은 cmdlet을 Format-List 사용하여 세션 구성의 모든 속성을 목록에 표시합니다. 출력은 세션 구성을 사용하는 세션에 대해 허용되는 최대 IdleTimeout 값을 설정하는 MaxIdleTimeoutMS 속성이 43200000밀리초(12시간)임을 보여 줍니다.

다섯 번째 명령은 $s 변수에 있는 세션의 세션 옵션 값을 가져옵니다. 많은 세션 옵션의 값은 세션의 Runspace 속성에 대한 ConnectionInfo 속성의 속성입니다. 출력은 세션의 IdleTimeout 속성 값이 세션 구성에서 12시간의 MaxIdleTimeoutMs 할당량을 위반하는 1728000000밀리초(48시간)임을 보여 줍니다. 이 충돌을 resolve 위해 ConfigurationName 매개 변수를 사용하여 다른 세션 구성을 선택하거나 IdleTimeout 매개 변수를 사용하여 세션의 유휴 시간 제한을 줄일 수 있습니다.

여섯 번째 명령은 세션 연결을 끊습니다. IdleTimeoutSec 매개 변수를 사용하여 유휴 시간 제한을 최대값 12시간으로 설정합니다.

일곱 번째 명령은 연결이 끊긴 세션의 IdleTimeout 속성 값을 가져옵니다. 이 값은 밀리초 단위로 측정됩니다. 출력은 명령이 성공했음을 확인합니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인을 요청합니다.

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

-Id

지정한 세션 ID를 가진 세션에서 연결을 끊습니다. 하나 이상의 ID를 쉼표로 구분하여 입력하거나 범위 연산자(..)를 사용하여 ID 범위를 지정하세요.

세션의 ID를 가져오려면 cmdlet을 Get-PSSession 사용합니다. 인스턴스 ID는 세션의 ID 속성에 저장됩니다.

Type:Int32[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IdleTimeoutSec

연결이 끊긴 PSSession의 유휴 시간 제한 값을 변경합니다. 값을 초 단위로 입력하세요. 최소값은 60(1분)입니다.

유휴 시간 제한은 원격 컴퓨터에서 연결이 끊긴 PSSession을 유지 관리하는 기간을 결정합니다. 시간 제한이 만료되면 PSSession이 삭제됩니다.

연결이 끊긴 PSSession은 연결이 끊긴 세션에서 명령을 실행 중인 경우에도 연결이 끊긴 순간부터 유휴 상태로 간주됩니다.

세션의 유휴 시간 제한에 대한 기본값은 세션 구성의 IdleTimeoutMs 속성 값에 의해 설정됩니다. 기본값은 7200000밀리초(2시간)입니다.

이 매개 변수 값은 $PSSessionOption 기본 설정 변수의 IdleTimeout 속성 값 및 세션 구성의 기본 유휴 시간 제한 값보다 우선합니다. 그러나 세션 구성의 MaxIdleTimeoutMs 속성 값을 초과할 수는 없습니다. MaxIdleTimeoutMs의 기본값은 12시간(43200000밀리초)입니다.

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

-InstanceId

지정한 인스턴스 ID를 가진 세션에서 연결을 끊습니다.

인스턴스 ID는 로컬 또는 원격 컴퓨터의 세션을 고유하게 식별하는 GUID입니다. 인스턴스 ID는 여러 컴퓨터의 세션 간에도 고유합니다.

세션의 instance ID를 가져오려면 cmdlet을 Get-PSSession 사용합니다. instance ID는 세션의 InstanceID 속성에 저장됩니다.

Type:Guid[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

지정한 이름을 가진 세션에서 연결을 끊습니다. 와일드카드가 지원됩니다.

세션의 이름을 얻으려면 cmdlet을 Get-PSSession 사용합니다. 이름은 세션의 Name 속성에 저장됩니다.

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

-OutputBufferingMode

출력 버퍼가 가득 찰 경우 연결이 끊긴 세션에서 명령 출력을 관리하는 방법을 결정합니다. 기본값은 Block입니다.

연결된 세션의 명령이 출력을 반환하여 출력 버퍼가 가득 찰 경우 이 매개 변수 값에 의해 세션 연결이 끊긴 동안 명령을 계속 실행할지 여부를 결정합니다. 값이 Block이면 세션을 다시 연결할 때까지 명령이 일시 중단됩니다. 값이 Drop이면 데이터가 손실될 수는 있지만 명령을 완료할 수 있습니다. Drop 값을 사용할 경우 명령 출력을 디스크의 파일로 리디렉션합니다.

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

  • 차단: 출력 버퍼가 가득 차면 버퍼가 명확할 때까지 실행이 일시 중단됩니다.
  • 삭제: 출력 버퍼가 가득 차면 실행이 계속됩니다. 새 출력이 저장되면 가장 오래된 출력을 버립니다.
  • 없음: 출력 버퍼링 모드가 지정되지 않았습니다. 세션 구성의 OutputBufferingMode 속성 값을 연결이 끊긴 세션에 사용합니다.
Type:OutputBufferingMode
Position:Named
Default value:Block
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

지정한 PSSession에서 연결을 끊습니다. cmdlet이 반환하는 것과 같은 PSSession 개체를 New-PSSession 입력합니다. PSSession 개체를 로 파이프할 Disconnect-PSSession수도 있습니다.

cmdlet은 Get-PSSession 연결이 끊긴 PSSessions 및 다른 컴퓨터의 다른 세션에 연결된 PSSessions를 포함하여 원격 컴퓨터에서 종료되는 모든 PSSessions를 가져올 수 있습니다. Disconnect-PSSession 는 현재 세션에 연결된 PSSession만 연결 해제합니다. 다른 PSSessions를 로 Disconnect-PSSession파이프하면 명령이 Disconnect-PSSession 실패합니다.

Type:PSSession[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ThrottleLimit

명령에 대한 Disconnect-PSSession 제한 제한을 설정합니다.

제한 한도는 이 명령을 실행하도록 설정할 수 있는 최대 동시 연결 수입니다. 이 매개 변수를 생략하거나 값 0을 입력하면 기본값 32가 사용됩니다.

제한 한도는 현재 명령에만 적용되며 세션이나 컴퓨터에는 적용되지 않습니다.

Type:Int32
Position:Named
Default value:32
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

세션을 로 파이프할 Disconnect-PSSession수 있습니다.

출력

PSSession

Disconnect-PSSession 는 연결이 끊긴 세션을 나타내는 개체를 반환합니다.

참고

  • cmdlet은 Disconnect-PSSession 로컬 및 원격 컴퓨터에서 PowerShell 3.0 이상을 실행하는 경우에만 작동합니다.

  • 연결이 Disconnect-PSSession 끊긴 세션에서 cmdlet을 사용하는 경우 명령은 세션에 영향을 주지 않으며 오류를 생성하지 않습니다.

  • 대화형 보안 토큰이 있는 연결이 끊긴 루프백 세션(EnableNetworkAccess 매개 변수로 만든 세션)은 세션을 만든 컴퓨터에서만 다시 연결할 수 있습니다. 이 제한은 악의적인 액세스로부터 컴퓨터를 보호합니다.

  • PSSession의 연결을 끊을 경우 세션 상태는 Disconnected이고 가용성은 None입니다.

    State 속성 값은 현재 세션을 기준으로 합니다. 따라서 값 Disconnected는 PSSession이 현재 세션에 연결되어 있지 않음을 의미합니다. 그렇다고 PSSession의 연결이 모든 세션에서 끊어졌다는 것을 의미하지는 않습니다. 다른 세션에 연결되어 있을 수도 있습니다. 세션에 연결하거나 다시 연결할 수 있는지 확인하려면 Availability 속성을 사용합니다.

    Availability 값이 None이면 세션에 연결할 수 있습니다. 값이 Busy이면 PSSession이 다른 세션에 연결되어 있어서 연결할 수 없습니다.

    세션의 State 속성 값에 대한 자세한 내용은 RunspaceState 열거형을 참조하세요.

    세션의 가용성 속성 값에 대한 자세한 내용은 RunspaceAvailability 열거형을 참조하세요.