항목
    about_Remote

간단한 설명
    Windows PowerShell에서 원격 명령을 실행하는 방법에 대해 설명합니다.


자세한 설명
    임시 또는 영구 연결을 사용하여 한 컴퓨터나 여러 컴퓨터에서 원격 명령을 실행할 수 있습니다. 한 원격 
    컴퓨터와 대화형 세션을 시작할 수도 있습니다.
    
    이 항목에서는 여러 종류의 원격 명령을 실행하는 방법을 보여 주는 일련의 예를 제공합니다. 이러한 기본 
    명령을 시도한 후 이러한 명령에서 사용되는 각 cmdlet에 대해 설명하는 도움말 항목을 읽으십시오. 이러한 
    항목에서는 자세한 정보를 제공하고 요구에 맞게 명령을 수정하는 방법에 대해 설명합니다.

    참고: Windows PowerShell 원격을 사용하려면 원격 기능을 사용하도록 로컬 및 원격 컴퓨터를 구성해야 
          합니다. 자세한 내용은 about_Remote_Requirements를 참조하십시오. 
          

 대화형 세션을 시작하는 방법(ENTER-PSSESSION)

     원격 명령을 실행하는 가장 쉬운 방법은 원격 컴퓨터와 대화형 세션을 시작하는 것입니다. 

     세션이 시작될 때 사용자가 입력하는 명령은 원격 컴퓨터에서 직접 입력하는 것처럼 원격 컴퓨터에서 
     실행됩니다. 각 대화형 세션에서 한 컴퓨터에만 연결할 수 있습니다. 

     대화형 세션을 시작하려면 Enter-PSSession cmdlet을 사용합니다. 다음 명령은 Server01 컴퓨터와 
     대화형 세션을 시작합니다.

	enter-pssession server01

     명령 프롬프트가 변경되어 Server01 컴퓨터에 연결되어 있음을 나타냅니다.

	Server01\PS> 

     이제 Server01 컴퓨터에서 명령을 입력할 수 있습니다. 

     대화형 세션을 종료하려면 다음과 같이 입력하십시오.

	exit-pssession


     자세한 내용은 Enter-PSSession을 참조하십시오.

      

 ComputerName 매개 변수가 있는 cmdlet을 사용하여 원격 데이터를 가져오는 방법

    몇 가지 cmdlet에는 원격 컴퓨터에서 개체를 가져오는 데 사용할 수 있는 ComputerName 매개 변수가 
    있습니다. 

    이러한 cmdlet은 WS-Management 기반 Windows PowerShell 원격을 사용하지 않기 때문에 Windows 
    PowerShell을 실행하는 임의의 컴퓨터에서 이러한 cmdlet의 ComputerName 매개 변수를 사용할 수 있습니다.
    이러한 컴퓨터는 Windows PowerShell 원격을 사용하도록 구성될 필요가 없으며 원격 기능에 대한 시스템 
    요구 사항을 충족할 필요가 없습니다. 

    다음 cmdlet에는 ComputerName 매개 변수가 있습니다.
 
        Clear-EventLog    Limit-EventLog
        Get-Counter       New-EventLog
        Get-EventLog      Remove-EventLog
        Get-HotFix        Restart-Computer
        Get-Process       Show-EventLog
        Get-Service       Show-Service
        Get-WinEvent      Stop-Computer
        Get-WmiObject     Write-EventLog

  
    예를 들어 다음 명령은 Server01 원격 컴퓨터에서 서비스를 가져옵니다.

	get-service -computername server01


      
    일반적으로 특별한 구성 없이 원격 기능을 지원하는 cmdlet에는 ComputerName 매개 변수가
    있고 Session 매개 변수는 없습니다. 세션에서 이러한 cmdlet을 찾으려면 다음과 같이 
    입력하십시오.

	get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}


 원격 명령을 실행하는 방법

    원격 컴퓨터에서 다른 명령을 실행하려면 Invoke-Command cmdlet을 사용합니다.

    한 명령이나 관련되지 않은 몇 가지 명령을 실행하려면 Invoke-Command의 ComputerName 매개 변수를 
    사용하여 원격 컴퓨터를 지정합니다. 명령을 지정하려면 ScriptBlock 매개 변수를 사용합니다.

    예를 들어 다음 명령은 Server01 컴퓨터에서 Get-Culture 명령을 실행합니다.

	invoke-command -computername Server01 -scriptblock {get-culture}

    ComputerName 매개 변수는 하나 이상의 컴퓨터에서 한 명령이나 관련되지 않은 몇 가지 명령을 실행하는 
    상황에서 사용하도록 설계되었습니다.
    원격 컴퓨터에 영구 연결을 설정하려면 Session 매개 변수를 사용합니다.

 
 영구 연결을 만드는 방법(PSSession)

    Invoke-Command cmdlet의 ComputerName 매개 변수를 사용하는 경우 Windows PowerShell은 이 
    명령에만 사용되는 연결을 설정한 다음 명령이 완료될 때 연결을 닫습니다. 명령에 정의되어 
    있는 변수나 함수는 모두 손실됩니다.

    원격 컴퓨터에 대한 영구 연결을 만들려면 New-PSSession cmdlet을 사용합니다. 예를 들어 다음 명령은 
    Server01 및 Server02 컴퓨터에서 PSSession을 만든 다음 $s 변수에 저장합니다.

	$s = new-pssession -computername Server01, Server02


 PSSession에서 명령을 실행하는 방법
  
    PSSession을 사용하여 함수, 별칭, 변수 값 등의 데이터를 공유하는 일련의 원격 명령을 실행할 수 있습니다.
    PSSession에서 명령을 실행하려면 Invoke-Command cmdlet의 Session 매개 변수를 사용합니다. 

    예를 들어 다음 명령은 Invoke-Command cmdlet을 사용하여 Server01 및 Server02 컴퓨터의 PSSession에서 
    Get-Process 명령을 실행합니다. 이 명령은 각 PSSession에서 $p 변수에 프로세스를 저장합니다.

        invoke-command -session $s -scriptblock {$p = get-process}

    PSSession에서 영구 연결을 사용하기 때문에 $p 변수를 사용하는 동일한 PSSession에서 다른 명령을 실행할 
    수 있습니다. 다음 명령은 $p에 저장된 프로세스의 수를 셉니다.

        invoke-command -session $s -scriptblock {$p.count} 

 여러 컴퓨터에서 원격 명령을 실행하는 방법

    여러 컴퓨터에서 원격 명령을 실행하려면 Invoke-Command의 ComputerName 매개 변수 값에 컴퓨터 
    이름을 모두 입력합니다. 이름을 쉼표로 구분하십시오.

    예를 들어 다음 명령은 세 컴퓨터에서 Get-Culture 명령을 실행합니다.

	invoke-command -computername S1, S2, S3 -scriptblock {get-culture}

    여러 PSSession에서 명령을 실행할 수도 있습니다. 다음 명령은 Server01, Server02 및 
    Server03 컴퓨터에서 PSSession을 만든 다음 각 PSSession에서 Get-Culture 명령을 실행합니다.

        $s = new-pssession -computername S1, S2, S3
	invoke-command -session $s -scriptblock {get-culture}


    로컬 컴퓨터의 목록을 포함하려면 로컬 컴퓨터의 이름, 점(.) 또는 "localhost"를 입력합니다. 

	invoke-command -computername S1, S2, S3, localhost -scriptblock {get-culture}


 원격 컴퓨터에서 스크립트를 실행하는 방법

    원격 컴퓨터에서 로컬 스크립트를 실행하려면 Invoke-Command의 FilePath 매개 변수를 사용합니다.

    예를 들어 다음 명령은 S1 및 S2 컴퓨터에서 Sample.ps1 스크립트를 실행합니다.

        invoke-command -computername S1, S2 -filepath C:\Test\Sample.ps1

    스크립트의 결과는 로컬 컴퓨터로 반환됩니다. 파일을 복사할 필요는 없습니다.
  

 원격 명령을 중지하는 방법

   명령을 중단하려면 Ctrl+C를 누릅니다. 중단 요청은 원격 명령을 종료하는 원격 컴퓨터로 전달됩니다.



자세한 내용

    -- 원격 기능의 시스템 요구 사항에 대한 자세한 내용은 about_Remote_Requirements를 참조하십시오.

    -- 원격 출력의 형식 지정에 대한 도움말은 about_Remote_Output을 참조하십시오.

    -- 원격 기능의 작동 방식, 원격 데이터 관리 방법, 특수 구성, 보안 문제 및 기타 질문과 대답에 대한 자세한 
       내용은 about_Remote_FAQ를 참조하십시오.

    -- 원격 기능 오류 해결에 대한 도움말은 about_Remote_Troubleshooting을 참조하십시오.

    -- PSSession과 영구 연결에 대한 자세한 내용은 about_PSSessions를 참조하십시오.

    -- Windows PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobs를 참조하십시오.

키워드
    about_Remoting

참고 항목
    about_PSSessions
    about_Remote_Requirements
    about_Remote_FAQ
    about_Remote_TroubleShooting
    Enter-PSSession
    Invoke-Command
    New-PSSession




목차