다음을 통해 공유


Remove-PSSession

하나 이상의 Windows PowerShell 세션(PSSession)을 닫습니다.

구문

Remove-PSSession [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-InstanceId <Guid[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-Name <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-Session] <PSSession[]> [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Remove-PSSession cmdlet은 현재 세션에서 Windows PowerShell 세션(PSSession)을 닫습니다. 이 cmdlet은 PSSession에서 실행되는 명령을 모두 중지하고 PSSession을 종료한 다음 PSSession이 사용 중이던 리소스를 해제합니다. PSSession이 원격 컴퓨터에 연결되어 있으면 Remove-PSSession은 로컬 컴퓨터와 원격 컴퓨터 간의 연결도 닫습니다.

PSSession을 제거하려면 세션의 Name, ComputerName, ID 또는 InstanceID를 입력합니다.

PSSession을 변수에 저장한 경우 세션 개체는 변수에 남아 있지만 PSSession의 상태는 "Closed"입니다.

매개 변수

-ComputerName <string[]>

지정된 컴퓨터에 연결된 PSSession을 닫습니다. 와일드카드를 사용할 수 있습니다.

하나 이상의 원격 컴퓨터의 NetBIOS 이름, IP 주소 또는 정규화된 도메인 이름을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, "localhost" 또는 점(.)을 입력합니다.

필수 여부

false

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

true

-Id <Int32[]>

지정된 ID를 가진 PSSession을 닫습니다. 하나 이상의 ID를 쉼표로 구분하여 입력하거나 범위 연산자(..)를 사용하여 ID 범위를 지정하십시오.

ID는 현재 세션의 PSSession을 고유하게 식별하는 정수입니다. 이 ID는 InstanceId보다 기억하거나 입력하기 쉽지만 현재 세션 내부에서만 고유합니다. PSSession의 ID를 찾으려면 매개 변수 없이 Get-PSSession을 사용합니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-InstanceId <Guid[]>

지정된 인스턴스 ID를 가진 PSSession을 닫습니다.

인스턴스 ID는 현재 세션의 PSSession을 고유하게 식별하는 GUID입니다. 한 컴퓨터에서 여러 세션이 실행되는 경우에도 InstanceID는 고유합니다.

InstanceID는 PSSession을 나타내는 개체의 InstanceID 속성에 저장됩니다. 현재 세션에서 PSSession의 InstanceID를 찾으려면 "Get-PSSession | Format-Table Name, ComputerName, InstanceId"를 입력합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Name <string[]>

지정된 이름의 PSSession을 닫습니다. 와일드카드를 사용할 수 있습니다.

PSSession의 이름이 고유하지 않을 수도 있기 때문에 Name 매개 변수를 사용하는 경우 Remove-PSSession 명령에서 WhatIf 또는 Confirm 매개 변수를 사용하는 것도 고려하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

true

-Session <PSSession[]>

닫을 PSSession의 세션 개체를 지정합니다. PSSession이 포함된 변수를 입력하거나 PSSession을 만들거나 가져오는 명령(예: New-PSSession 또는 Get-PSSession 명령)을 입력합니다. 또한 하나 이상의 세션 개체를 Remove-PSSession으로 파이프할 수 있습니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByValue, ByPropertyName)

와일드카드 문자 적용 여부

false

-Confirm

명령을 실행하기 전에 확인 메시지를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.Management.Automation.Runspaces.PSSession

세션 개체를 Remove-PSSession으로 파이프할 수 있습니다.

출력

없음

Remove-PSSession은 어떠한 개체도 반환하지 않습니다.

참고

ID 매개 변수는 필수 사항입니다. 매개 변수 없이 "remove-pssession"을 입력할 수 없습니다. 현재 세션의 모든 PSSession을 삭제하려면 "Get-PSSession | remove-pssession"을 입력합니다.

PSSession은 원격 컴퓨터에 대한 영구 연결을 사용합니다. 데이터를 공유하는 일련의 명령을 실행하려면 PSSession을 만듭니다. 자세한 내용은 about_PSSessions를 참조하십시오.

PSSession은 현재 세션에 특정합니다. 세션을 종료하면 해당 세션에서 만든 PSSession이 강제로 닫힙니다.

예 1

C:\PS>remove-pssession -id 1, 2

설명
-----------
이 명령은 ID가 1과 2인 PSSession을 제거합니다.





예 2

C:\PS>get-pssession | remove-pssession 

C:\PS> remove-pssession -session (get-pssession)

C:\PS> $s = get-pssession 
C:\PS> remove-pssession -session $s".

설명
-----------
이들 명령은 현재 세션의 모든 PSSession을 제거합니다. 이 세 명령 형식이 다르게 보이지만 효과는 동일합니다.





예 3

C:\PS>$r = get-pssession -computername Serv*

$r | remove-pssession

설명
-----------
이들 명령은 이름이 "Serv"로 시작하는 컴퓨터에 연결된 PSSession을 닫습니다.





예 4

C:\PS>get-pssession | where {$_.port -eq 90} | remove-pssession

설명
-----------
이 명령은 포트 90에 연결된 PSSession을 닫습니다. 이 명령 형식을 사용하여 ComputerName, Name, InstanceID 및 ID 이외의 속성으로 PSSession을 식별할 수 있습니다.





예 5

C:\PS>get-pssession | ft computername, instanceID  -auto

ComputerName InstanceId
------------ ----------------
Server01     875d231b-2788-4f36-9f67-2e50d63bb82a
localhost    c065ffa0-02c4-406e-84a3-dacb0d677868
Server02     4699cdbc-61d5-4e0d-b916-84f82ebede1f
Server03     4e5a3245-4c63-43e4-88d0-a7798bfc2414
TX-TEST-01   fc4e9dfa-f246-452d-9fa3-1adbdd64ae85

C:\PS> remove-pssession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85

설명
-----------
이들 명령은 인스턴스 ID(RemoteRunspaceID)에 따라 PSSession을 닫는 방법을 보여 줍니다. 

첫 번째 명령은 Get-PSsession cmdlet을 사용하여 현재 세션의 PSSession을 가져옵니다. 명령이 파이프라인 연산자(|)를 사용하여 PSSession을 Format-Table cmdlet(alias: ft)으로 보내고, 이 cmdlet은 ComputerName 및 InstanceID 속성을 테이블 형식으로 지정합니다. AutoSize 매개 변수("auto")는 표시에 맞게 열을 압축합니다.

결과 표시에서 관리자는 닫을 PSSession을 식별하고 PSSession의 InstanceID를 복사하여 두 번째 명령에 붙여 넣을 수 있습니다. 

두 번째 명령은 Remove-PSSession cmdlet을 사용하여 지정된 인스턴스 ID를 가진 PSSession을 제거합니다.





예 6

C:\PS>function EndPSS { get-pssession | remove-pssession }

설명
-----------
이 함수는 현재 세션의 모든 PSSession을 삭제합니다. 이 함수를 Windows PowerShell 프로필에 추가한 후 모든 세션을 삭제하려면 "endpss"를 입력합니다.





참고 항목

개념

about_PSSessions
about_Remote
New-PSSession
Get-PSSession
Enter-PSSession
Exit-PSSession
Invoke-Command