항목
    about_PSSession_Details

간단한 설명
    Windows PowerShell 세션과 원격 명령에서 Windows PowerShell 세션의 역할에 대한 자세한 정보를 
    제공합니다.

자세한 설명
    세션은 Windows PowerShell이 실행되는 환경입니다. 세션은 Windows PowerShell을 시작할 때마다 
    자동으로 만들어집니다. 사용자는 자신의 컴퓨터나 다른 컴퓨터에서 "Windows PowerShell 세션" 또는 
    "PSSession"이라는 추가 세션을 만들 수 있습니다.

    Windows PowerShell에서 자동으로 만드는 세션과 달리 사용자는 자신이 만든 PSSession을 제어하고 
    관리할 수 있습니다.

    PSSession은 원격 컴퓨팅에서 중요한 역할을 합니다. 원격 컴퓨터에 연결된 PSSession을 만들 때 Windows 
    PowerShell에서는 원격 컴퓨터에 대한 영구 연결을 설정하여 PSSession을 지원합니다. PSSession을 
    사용하여 데이터를 공유하는 일련의 명령, 함수 및 스크립트를 실행할 수 있습니다. 

    이 항목에서는 Windows PowerShell의 세션과 PSSession에 대해 자세히 설명합니다. 세션에서 수행할 수 
    있는 작업에 대한 기본적인 내용은 about_PSSessions를 참조하십시오.  

  세션 정보

    기술적으로 세션은 Windows PowerShell이 실행되는 환경입니다. 각 세션에는 Windows PowerShell이 
    실행되는 호스트 프로그램과 System.Management.Automation 엔진의 인스턴스가 포함되어 있습니다. 
    호스트는 익숙한 Windows PowerShell 콘솔이나 Cmd.exe 등의 명령을 실행하는 다른 프로그램 또는 
    Windows PowerShell ISE(통합 스크립팅 환경)와 같은 Windows PowerShell을 호스팅하도록 작성된
    프로그램일 수 있습니다. Windows의 관점에서 세션은 대상 컴퓨터의 Windows 프로세스입니다. 

    각 세션은 독립적으로 구성되며 자체적인 속성, 실행 정책 및 프로필을 포함합니다. 세션이 만들어질 때 
    존재하는 환경은 컴퓨터에서 환경을 변경하는 경우에도 세션의 수명 동안 유지됩니다. 사용자가 
    스크립트에서 만드는 세션을 비롯한 모든 세션은 전역 범위에서 만들어집니다. 

    세션에서 한 번에 한 명령(또는 명령 파이프라인)만 실행할 수 있습니다. 한 번에 하나씩 동기적으로 
    실행되는 두 번째 명령은 첫 번째 명령이 완료될 때까지 최대 4분 동안 기다리고, 동시에 동기적으로 
    실행되는 두 번째 명령은 실패합니다.

  PSSession 정보

    세션은 Windows PowerShell을 시작할 때마다 만들어집니다. Windows PowerShell은 임시 세션을 
    만들어 개별 명령을 실행합니다. 그러나 사용자가 제어하고 관리하는 "Windows PowerShell 세션"  
    또는 "PSSession"이라는 세션도 만들 수 있습니다.
 
    PSSession은 원격 명령에 필수적입니다. Invoke-Command 또는 Enter-PSSession cmdlet의 
    ComputerName 매개 변수를 사용하는 경우 Windows PowerShell은 임시 세션을 설정하여 명령을 
    실행한 다음 명령이나 대화형 세션이 완료되면 곧바로 해당 세션을 닫습니다. 

    그러나 New-PSSession cmdlet을 사용하여 PSSession을 만드는 경우 Windows PowerShell은 
    여러 명령이나 대화형 세션을 실행할 수 있는 영구 세션을 원격 컴퓨터에서 설정합니다. 
    사용자가 만드는 PSSession은 계속 열려 있으며 해당 PSSession을 삭제하거나 해당 
    PSSession이 만들어진 세션을 닫을 때까지 사용할 수 있습니다.

    원격 컴퓨터에서 PSSession을 만드는 경우 시스템에서는 원격 컴퓨터에서 PowerShell 프로세스를 만들고 
    로컬 컴퓨터와 원격 컴퓨터의 해당 프로세스를 연결합니다. 로컬 컴퓨터에서 PSSession을 만드는 경우 새 
    프로세스와 연결이 모두 로컬 컴퓨터에서 만들어집니다.


  PSSession은 언제 필요합니까?

    Invoke-Command 및 Enter-PSSession cmdlet에는 ComputerName 및 Session 매개 변수가 
    둘 다 있습니다. 두 매개 변수 중 하나를 사용하여 원격 명령을 실행할 수 있습니다. 

    하나 이상의 컴퓨터에서 한 명령이나 관련되지 않은 일련의 명령을 실행하려면 ComputerName 매개 
    변수를 사용합니다. 

    데이터를 공유하는 명령을 실행하려면 원격 컴퓨터에 대한 영구 연결이 필요합니다. 이러한 경우에는 
    PSSession을 만든 다음 Session 매개 변수를 사용하여 PSSession에서 명령을 실행합니다.

    원격 컴퓨터에서 데이터를 가져오는 다른 많은 cmdlet(예: Get-Process, Get-Service, 
    Get-EventLog 및 Get-WmiObject)에는 ComputerName 매개 변수만 있습니다. 이러한 cmdlet은 
    Windows PowerShell 원격 이외의 기술을 사용하여 데이터를 원격으로 수집합니다. 이러한 cmdlet에는 
    Session 매개 변수가 없지만 Invoke-Command cmdlet을 사용하여 PSSession에서 이러한 명령을 실행할 
    수 있습니다.
 

  PSSession은 어떻게 만듭니까?

    PSSession을 만들려면 New-PSSession cmdlet을 사용합니다. New-PSSession을 사용하여 로컬 
    컴퓨터나 원격 컴퓨터에서 PSSession을 만들 수 있습니다.


  모든 컴퓨터에서 PSSession을 만들 수 있습니까? 

    원격 컴퓨터에 연결된 PSSession을 만들려면 Windows PowerShell에서 원격 기능을 사용하도록 해당 
    컴퓨터를 구성해야 합니다. 현재 사용자는 원격 컴퓨터에서 Administrators 그룹의 구성원이거나 
    Administrators 그룹 구성원의 자격 증명을 제공할 수 있어야 합니다. 자세한 내용은 
    about_Remote_Requirements를 참조하십시오.


  다른 사용자가 내 컴퓨터에서 만든 PSSession을 볼 수 있습니까?

    아니요. 사용자가 현재 세션에서 만든 PSSession만 가져오고 관리할 수 있습니다. 다른 사용자가 로컬 
    컴퓨터에서 명령을 실행하는 경우에도 다른 사용자가 만든 PSSession은 볼 수 없습니다.


  PSSession에서 백그라운드 작업을 실행할 수 있습니까?

    예. 백그라운드 작업은 현재 세션과 상호 작용하지 않고 비동기적으로 백그라운드에서 실행되는 
    명령입니다. 명령을 전송하여 작업을 시작하면 명령이 작업 개체를 반환하지만 작업이 완료될 때까지 
    백그라운드에서 계속 실행됩니다.

    로컬 컴퓨터에서 백그라운드 작업을 시작하려면 Start-Job 명령을 사용합니다. ComputerName 매개 
    변수를 사용하여 임시 연결에서나 Session 매개 변수를 사용하여 PSSession에서 백그라운드 작업을 
    실행할 수 있습니다. 

    원격 컴퓨터에서 백그라운드 작업을 시작하려면 AsJob 매개 변수와 함께 Invoke-Command cmdlet을 
    사용하거나 Invoke-Command cmdlet을 사용하여 원격 컴퓨터에서 Start-Job 명령을 실행합니다. 
    AsJob 매개 변수를 사용할 때 ComputerName 또는 Session 매개 변수를 사용할 수 있습니다.

    Invoke-Command를 사용하여 Start-Job 명령을 실행하는 경우 PSSession에서 이 명령을 실행해야 
    합니다. ComputerName 매개 변수를 사용하는 경우 Windows PowerShell은 작업 개체가 반환되고 작업이 
    중단될 때 연결을 종료합니다.

    자세한 내용은 about_Jobs를 참조하십시오.


  대화형 세션을 실행할 수 있습니까?

    예. 원격 컴퓨터와 대화형 세션을 시작하려면 Enter-PSSession cmdlet을 사용합니다. 대화형 
    세션에서는 사용자가 입력하는 명령이 원격 컴퓨터에서 직접 입력하는 것처럼 원격 컴퓨터에서 
    실행됩니다. 

    ComputerName 매개 변수를 사용하여 임시 세션에서나 Session 매개 변수를 사용하여 PSSession에서 
    대화형 세션을 실행할 수 있습니다. PSSession을 사용하는 경우 PSSession은 이전 명령의 데이터를 
    유지하고 이후 명령에서 사용하기 위해 대화형 세션 중에 생성된 모든 데이터를 유지합니다.

    대화형 세션을 종료해도 PSSession은 열려 있으므로 계속 사용할 수 있습니다.

    자세한 내용을 보려면 Enter-PSSession 및 Exit-PSSession을 참고하십시오.
 

  PSSession을 삭제해야 합니까?

    예. PSSession은 프로세스이며 사용자가 사용하지 않는 경우에도 메모리와 기타 리소스를 사용하는 
    독립적인 환경입니다. PSSession 사용을 마쳤으면 PSSession을 삭제해야 합니다. 여러 PSSession을 만드는 
    경우에는 사용 중이 아닌 PSSession을 닫고 현재 사용하는 PSSession만 유지 관리하십시오. 

    PSSession을 삭제하려면 Remove-PSSession cmdlet을 사용합니다. 이 cmdlet은 PSSession을 삭제하고 
    PSSession에서 사용 중이던 리소스를 모두 해제합니다. 

    또한 New-PSSession의 TimeOut 매개 변수를 사용하여 사용자가 지정한 간격 후에 유휴 PSSession을 
    닫을 수 있습니다. 자세한 내용을 보려면 New-PSSession을 참고하십시오.

    PSSession을 삭제하거나 시간 제한을 설정하지 않는 경우 PSSession은 계속 열려 있으며 해당 
    PSSession을 닫거나, 해당 PSSession이 만들어진 세션을 닫거나, Windows PowerShell을 종료할 
    때까지 사용할 수 있습니다. 그러나 원격 컴퓨터가 4분 동안 응답하지 않으면 원격 컴퓨터에서 
    PSSession의 연결이 끊어집니다. 원격 컴퓨터는 3분마다 하트비트 펄스를 보내도록 구성됩니다.

    PSSession 개체를 변수에 저장한 다음 PSSession을 삭제하거나 시간이 초과되도록 두면 이 변수에 여전히 
    PSSession 개체가 포함되어 있지만 PSSession이 활성 상태가 아니며 사용하거나 복구할 수 없습니다.
    

  모든 세션과 PSSession이 비슷합니까?

    아니요. 개발자는 선택된 공급자와 cmdlet만 포함된 사용자 지정 세션을 만들 수 있습니다. 명령이 한 
    세션에서 작동하지만 다른 세션에서는 작동하지 않는 경우 세션이 제한되어 있기 때문일 수 있습니다.


참고 항목
    about_Jobs
    about_PSSessions
    about_Remote 
    about_Remote_Requirements
    Invoke-Command
    New-PSSession 
    Get-PSSession 
    Remove-PSSession 
    Enter-PSSession 
    Exit-PSSession 




목차