항목
    about_Remote_Troubleshooting

간단한 설명
    Windows PowerShell에서 원격 작업 문제를 해결하는 방법에 대해 설명합니다.

자세한 설명
    이 단원에서는 WS-Management 기술을 기반으로 하는 Windows PowerShell의 
    원격 기능을 사용할 때 발생할 수 있는 일부 문제에 대해 설명하고 이러한 
    문제의 해결 방법을 제안합니다.

    Windows PowerShell 원격을 사용하기 전에 구성과 기본적인 사용에 대한 
    지침은 about_Remote 및 about_Remote_Requirements를 참조하십시오. 
    또한 각 원격 cmdlet에 대한 도움말 항목(특히 매개 변수 설명)에는 
    문제 방지에 도움을 주기 위해 작성된 유용한 정보가 있습니다.

    이 항목의 업데이트된 버전과 기타 Windows PowerShell 도움말 항목은 Microsoft
    TechNet 라이브러리에서 온라인으로 볼 수 있습니다. 이 도움말 항목의 온라인
    버전을 보려면 인터넷 브라우저에 다음 URL을 붙여 넣으십시오.

	https://go.microsoft.com/fwlink/?LinkID=135188
 

    참고: Windows Vista, Windows Server 2008 및 그 이후 버전의 Windows에서
    WSMan: 드라이브에 있는 로컬 컴퓨터에 대한 설정(예: 신뢰할 수 있는 호스트,
    포트, 수신기, 세션 구성의 변경 사항)을 보거나 변경하려면 "관리자 권한으로
    실행" 옵션을 사용하여 Windows PowerShell을 시작합니다. 



 사용 권한 및 인증 문제 해결

    이 단원에서는 사용자 및 컴퓨터 사용 권한 및 원격 요구 사항과 관련된 원격 
    문제에 대해 설명합니다.


    관리자 권한으로 실행하는 방법
    -----------------------------
        오류: 액세스가 거부되었습니다. 관리자 권한 프로세스에서 이 cmdlet을 
        실행해야 합니다.

    로컬 컴퓨터에서 원격 세션을 시작하거나 WSMan: 드라이브에 있는 로컬 컴퓨터에 대한
    설정(예: 신뢰할 수 있는 호스트, 포트, 수신기, 세션 구성의 변경 사항)을 보거나
    변경하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을
    시작합니다. 

    "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작하려면:

    -- Windows PowerShell(또는 Windows PowerShell ISE) 아이콘을 마우스 오른쪽
       단추로 클릭한 다음 "관리자 권한으로 실행"을 클릭합니다.

    Windows 7 및 Windows Server 2008 R2에서 "관리자 권한으로 실행" 옵션을 사용
    하여 Windows PowerShell을 시작하려면:

    -- Windows 작업 표시줄에서 Windows PowerShell 아이콘을 마우스 오른쪽 단추로
       클릭한 다음 "관리자로 Windows PowerShell 실행"을 클릭합니다.

    참고: Windows Server 2008 R2에서 Windows PowerShell 아이콘은 기본적으로
    작업 표시줄에 고정되어 있습니다. 



    원격 기능을 사용하도록 설정하는 방법
    ------------------------------------
        오류: 액세스가 거부되었습니다.
        - 또는 -
        오류: 원격 호스트에 대한 연결이 거부되었습니다. 원격 호스트에서 
        WS-Management 서비스가 실행 중이고 올바른 포트 및 HTTP URL에서 
        요청을 수신하도록 구성되어 있는지 확인하십시오. 

    컴퓨터에서 원격 명령을 보낼 수 있도록 하기 위해 필요한 구성은 없습니다. 
    그러나 원격 명령을 받으려면 원격 기능을 사용하도록 컴퓨터를 구성해야 
    합니다. 구성에는 WinRM 서비스를 시작하고, WinRM 서비스의 시작 유형을 
    자동으로 설정하고, HTTP 및 HTTPS 연결에 대한 수신기를 만들고, 기본 
    세션 구성을 만드는 작업이 포함됩니다.

    원격 명령을 받도록 컴퓨터를 구성하려면 Enable-PSRemoting cmdlet을 사용합니다.
    다음 명령은 필요한 모든 원격 설정과 세션 구성을 사용하도록 설정하고 WinRM 
    서비스를 다시 시작하여 변경 사항을 적용합니다. 

        enable-psremoting

    모든 사용자 확인 메시지를 표시하지 않으려면 다음과 같이 입력하십시오.

        enable-psremoting -force

    자세한 내용은 Enable-PSRemoting을 참조하십시오.



    기업에서 원격 기능을 사용하도록 설정하는 방법
    ---------------------------------------------
        오류: 액세스가 거부되었습니다.
        - 또는 -
        오류: 원격 호스트에 대한 연결이 거부되었습니다. 원격 호스트에서 
        WS-Management 서비스가 실행 중이고 올바른 포트 및 HTTP URL에서 
        요청을 수신하도록 구성되어 있는지 확인하십시오. 

    한 컴퓨터에서 원격 Windows PowerShell 명령을 받고 연결을 받아들이도록 
    설정하려면 Enable-PSRemoting cmdlet을 사용합니다.

    기업의 여러 컴퓨터에 대해 원격 기능을 사용하도록 설정하려면 다음과 같은 
    확장 옵션을 사용할 수 있습니다.

    -- 원격 기능을 사용하도록 수신기를 구성하려면 "수신기 자동 구성 허용" 
       그룹 정책을 사용하도록 설정합니다. 지침을 보려면 아래의 "그룹 정책을 
       사용하여 수신기를 사용하도록 설정하는 방법"을 참조하십시오.
 
    -- 여러 컴퓨터에서 WinRM(Windows 원격 관리)의 시작 유형을 자동으로 
       설정하려면 Set-Service cmdlet을 사용합니다. 지침을 보려면 아래의 
       "WinRM 서비스의 시작 유형을 설정하는 방법"을 참조하십시오.

    -- 방화벽 예외를 사용하도록 설정하려면 "Windows 방화벽: 로컬 포트 예외 
       허용" 그룹 정책을 사용합니다. 지침을 보려면 아래의 "그룹 정책을 
       사용하여 방화벽 예외를 만드는 방법"을 참조하십시오.

 

    그룹 정책을 사용하여 수신기를 사용하도록 설정하는 방법
    ------------------------------------------------
        오류: 액세스가 거부되었습니다.
        - 또는 -
        오류: 원격 호스트에 대한 연결이 거부되었습니다. 원격 호스트에서 
        WS-Management 서비스가 실행 중이고 올바른 포트 및 HTTP URL에서
         요청을 수신하도록 구성되어 있는지 확인하십시오.

    도메인의 모든 컴퓨터에 대해 수신기를 구성하려면 다음 그룹 정책 
    경로에서 "수신기 자동 구성 허용" 정책을 사용하도록 설정합니다.

        컴퓨터 구성\관리 템플릿\Windows 구성 요소 \WinRM(Windows Remote 
        Managemet)\WinRM 서비스

    정책을 사용하도록 설정하고 IPv4 및 IPv6 필터를 지정합니다. 
    와일드카드(*)를 사용할 수 있습니다.



    그룹 정책을 사용하여 방화벽 예외를 사용하도록 설정하는 방법
    -----------------------------------------------------------
        오류: 액세스가 거부되었습니다.
        - 또는 -
        오류: 원격 호스트에 대한 연결이 거부되었습니다. 원격 호스트에서 
        WS-Management 서비스가 실행 중이고 올바른 포트 및 HTTP URL에서 
        요청을 수신하도록 구성되어 있는지 확인하십시오.

    도메인의 모든 컴퓨터에 대해 방화벽 예외를 사용하도록 설정하려면 다음 
    그룹 정책 경로에서 "Windows 방화벽: 로컬 포트 예외 허용" 정책을 
    사용하도록 설정합니다.

        컴퓨터 구성\관리 템플릿\네트워크\네트워크 연결 \Windows 
        방화벽\도메인 프로필

    이 정책을 사용하면 컴퓨터의 Administrators 그룹 구성원이 제어판에서 
    Windows 방화벽을 사용하여 Windows 원격 관리 서비스에 대한 방화벽 
    예외를 만들 수 있습니다.



    WinRM 서비스의 시작 유형을 설정하는 방법
    ----------------------------------------
        오류: 액세스가 거부되었습니다.

    Windows PowerShell 원격 기능은 WinRM(Windows 원격 관리) 서비스를 
    사용합니다. 원격 명령을 지원하려면 이 서비스가 실행 중이어야 합니다.

    Windows Server 2003, Windows Server 2008 및 Windows Server 2008 R2
    에서 WinRM(Windows 원격 관리) 서비스의 시작 유형은 자동입니다. 

    그러나 Windows XP, Windows Vista 및 Windows 7에서 WinRM 서비스는 
    기본적으로 사용하지 않도록 설정됩니다. 

    원격 컴퓨터에서 서비스의 시작 유형을 설정하려면 Set-Service cmdlet을 
    사용합니다.

    여러 컴퓨터에서 명령을 실행하려면 컴퓨터 이름의 텍스트 파일 또는 CSV 
    파일을 만들 수 있습니다.

    예를 들어 다음 명령은 Servers.txt 파일에서 컴퓨터 이름의 목록을 가져온 
    다음 모든 컴퓨터에서 WinRM 서비스의 시작 유형을 자동으로 설정합니다.

        C:\PS> $servers = get-content servers.txt

        C:\PS> set-service WinRM -computername $servers -startuptype Automatic

    결과를 보려면 Win32_Service 개체와 함께 Get-WMIObject cmdlet을 사용합니다.
    자세한 내용은 Set-Service를 참조하십시오.    

    

    기본 세션 구성을 다시 만드는 방법
    ---------------------------------
        오류: 액세스가 거부되었습니다.

    로컬 컴퓨터에 연결하고 원격으로 명령을 실행하려면 로컬 컴퓨터에 원격 
    명령에 대한 세션 구성이 포함되어야 합니다.

    Enable-PSRemoting을 사용하면 로컬 컴퓨터에 기본 세션 구성이 
    만들어집니다. 원격 사용자는 원격 명령에 ConfigurationName 매개 변수가 
    포함되어 있지 않은 경우 이러한 세션 구성을 사용합니다.

    컴퓨터의 기본 구성이 등록되지 않거나 삭제된 경우 Enable-PSRemoting cmdlet을
    사용하여 다시 만듭니다. 이 cmdlet을 반복적으로 사용할 수 있습니다. 이 cmdlet
    은 기능이 이미 구성된 경우 오류를 생성하지 않습니다.

    기본 세션 구성을 변경하고 원래 기본 세션 구성을 복원하려면 
    Unregister-PSSessionConfiguration cmdlet을 사용하여 변경된 세션 구성을 삭제한 
    다음 Enable-PSRemoting cmdlet을 사용하여 복원합니다. Enable-PSRemoting은 
    기존 세션 구성을 변경하지 않습니다.

    참고: Enable-PSRemoting이 기본 세션 구성을 복원하는 경우 구성에 대한 명시적
    보안 설명자를 만들지 않습니다. 대신 구성은 기본적으로 안전한 RootSDDL의 보안
    설명자를 상속합니다.

    RootSDDL 보안 설명자를 보려면 다음과 같이 입력하십시오.

        get-item wsman:\localhost\Service\RootSDDL

    RootSDDL을 변경하려면 WSMan: 드라이브에서 Set-Item cmdlet을 사용합니다. 
    세션 구성의 보안 설명자를 변경하려면 SecurityDescriptorSDDL 또는 
    ShowSecurityDescriptorUI 매개 변수와 함께 Set-PSSessionConfiguration cmdlet을
    사용합니다. 

    WSMan: 드라이브에 대한 자세한 내용은 WS-Management 공급자에 대한 도움말 항목을
    참조하십시오("get-help wsman"). 



    관리자 자격 증명을 제공하는 방법 
    --------------------------------
        오류: 액세스가 거부되었습니다.

    원격 컴퓨터에서 PSSession을 만들거나 명령을 실행하려면 기본적으로 현재 사용자가
    원격 컴퓨터에서 Administrators 그룹의 구성원이어야 합니다. 현재 사용자가 
    Administrators 그룹의 구성원인 계정에 로그온되어 있는 경우에도 자격 증명을 
    제공해야 하는 경우가 있습니다.

    현재 사용자가 원격 컴퓨터에서 Administrators 그룹의 구성원이거나 Administrators
    그룹 구성원의 자격 증명을 제공할 수 있는 경우 New-PSSession, Enter-PSSession
    또는 Invoke-Command cmdlet의 Credential 매개 변수를 사용하여 원격으로
    연결합니다.

    예를 들어 다음 명령은 관리자의 자격 증명을 제공합니다.

        Invoke-Command -ComputerName Server01 -Credential Domain01\
        Admin01
 
    Credential 매개 변수에 대한 자세한 내용은 New-PSSession, Enter-PSSession
    또는 Invoke-Command를 참조하십시오.



    관리자가 아닌 사용자가 원격 기능을 사용하도록 설정하는 방법 
    ---------------------------------------------------
        오류: 액세스가 거부되었습니다.

    원격 컴퓨터에서 PSSession을 설정하거나 명령을 실행하려면 사용자가 원격 컴퓨터에서
    세션 구성을 사용할 권한이 있어야 합니다. 

    기본적으로 컴퓨터의 Administrators 그룹 구성원만 기본 세션 구성을 사용할 권한이
    있습니다. 따라서 Administrators 그룹의 구성원만 컴퓨터에 원격으로 연결할 수
    있습니다.

    다른 사용자가 로컬 컴퓨터에 연결할 수 있도록 하려면 로컬 컴퓨터의 기본 세션 구성에
    대한 실행 권한을 사용자에게 제공합니다.

    다음 명령은 로컬 컴퓨터에서 기본 Microsoft.PowerShell 세션 구성의 보안 설명자를
    변경하는 데 사용할 수 있는 속성 시트를 엽니다.

        Set-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptorUI
        

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

    다른 도메인의 관리자가 원격 기능을 사용하도록 설정하는 방법
    ----------------------------------------------------------
        오류: 액세스가 거부되었습니다.

    다른 도메인의 사용자가 로컬 컴퓨터에서 Administrators 그룹의 구성원인 경우 사용
    자가 관리자 권한으로 로컬 컴퓨터에 원격으로 연결할 수 없습니다. 기본적으로 다른
    도메인의 원격 연결은 표준 사용자 권한 토큰으로만 실행됩니다. 

    그러나 LocalAccountTokenFilterPolicy 레지스트리 항목을 사용하여 기본 동작을
    변경하고 Administrators 그룹의 구성원인 원격 사용자가 관리자 권한으로 실행
    하도록 허용할 수 있습니다. 

    주의: LocalAccountTokenFilterPolicy 항목은 영향을 받는 모든 컴퓨터의 모든
    사용자에 대한 UAC(사용자 계정 컨트롤) 원격 제한을 사용하지 않도록 설정합니다.
    정책을 변경하기 전에 이 설정의 영향을 신중하게 고려하십시오.
    
    정책을 변경하려면 다음 명령을 사용하여 LocalAccountTokenFilterPolicy 레지스
    트리 항목의 값을 1로 설정합니다.

        C:\PS> new-itemproperty -name LocalAccountTokenFilterPolicy -path `
            HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -propertyType `
            DWord -value 1



    원격 명령에서 IP 주소를 사용하는 방법
    -------------------------------------
        오류: WinRM 클라이언트가 요청을 처리할 수 없습니다. 인증 체계가 Kerberos와
        다르거나 클라이언트 컴퓨터가 도메인에 가입되어 있지 않을 경우 HTTPS
        전송을 사용하거나 대상 컴퓨터를 TrustedHosts 구성 설정에 추가해야
        합니다.

    New-PSSession, Enter-PSSession 및 Invoke-Command cmdlet의ComputerName 매개 
    변수는 IP 주소를 유효한 값으로 받아들입니다. 그러나 Kerberos 인증이 IP 주소를 
    지원하지 않기 때문에 IP 주소를 지정할 때마다 NTLM 인증이 기본적으로 사용됩니다. 

    NTLM 인증을 사용하는 경우 원격 기능을 사용하려면 다음과 같은 절차가 필요합니다.

    1. HTTPS 전송을 사용하도록 컴퓨터를 구성하거나 원격 컴퓨터의 IP 주소를 로컬 
       컴퓨터의 TrustedHosts 목록에 추가합니다.

       지침을 보려면 아래의 "TrustedHosts 목록에 컴퓨터를 추가하는 방법"을 참조하십
       시오.

    2. 모든 원격 명령에서 Credential 매개 변수를 사용합니다.
  
       현재 사용자의 자격 증명을 제출할 경우에도 이 매개 변수가 필요합니다.


   
    작업 그룹 기반 컴퓨터에서 원격으로 연결하는 방법
    ------------------------------------------------
        오류: WinRM 클라이언트가 요청을 처리할 수 없습니다. 인증 체계가 Kerberos와
        다르거나 클라이언트 컴퓨터가 도메인에 가입되어 있지 않을 경우 HTTPS
        전송을 사용하거나 대상 컴퓨터를 TrustedHosts 구성 설정에 추가해야
        합니다.

    로컬 컴퓨터가 도메인에 없는 경우 원격 기능을 사용하려면 다음과 같은 절차가 
    필요합니다.

    1. HTTPS 전송을 사용하도록 컴퓨터를 구성하거나 원격 컴퓨터의 이름을 로컬 컴퓨터의
       TrustedHosts 목록에 추가합니다.

       지침을 보려면 아래의 "TrustedHosts 목록에 컴퓨터를 추가하는 방법"을 참조하십
       시오.


    2. 작업 그룹 기반 컴퓨터에서 암호가 설정되어 있는지 확인합니다. 암호가 설정되어 있지
       않거나 암호 값이 비어 있으면 원격 명령을 실행할 수 없습니다.

       사용자 계정의 암호를 설정하려면 제어판에서 사용자 계정을 사용합니다. 

    3. 모든 원격 명령에서 Credential 매개 변수를 사용합니다.
  
       현재 사용자의 자격 증명을 제출할 경우에도 이 매개 변수가 필요합니다.




    신뢰할 수 있는 호스트 목록에 컴퓨터를 추가하는 방법
    ---------------------------------------------------

    TrustedHosts 항목은 컴퓨터 이름, IP 주소 및 정규화된 도메인 이름의 쉼표로 구분된
    목록을 포함할 수 있습니다. 와일드카드를 사용할 수 있습니다.

    신뢰할 수 있는 호스트 목록을 보거나 변경하려면 WSMan: 드라이브를 사용합니다. 
    TrustedHost 항목은 WSMan:\localhost\Client 노드에 있습니다.

    컴퓨터의 Administrators 그룹 구성원만 컴퓨터에서 신뢰할 수 있는 호스트 목록을
    변경할 권한이 있습니다.

    주의: TrustedHosts 항목에 설정한 값은 컴퓨터의 모든 사용자에게 영향을 미칩니다.

    신뢰할 수 있는 호스트의 목록을 보려면 다음 명령을 사용합니다.

        get-item wsman:\localhost\Client\TrustedHosts

    Set-Location cmdlet(별칭 = cd)을 사용하여 WSMan: 드라이브에서 해당 위치로
    이동할 수도 있습니다. 
    예를 들면 "cd WSMan:\localhost\Client; dir"과 같습니다.

    신뢰할 수 있는 호스트 목록에 모든 컴퓨터를 추가하려면 ComputerName에 *(모두)
    값을 배치하는 다음 명령을 사용합니다. 

        set-item wsman:localhost\client\trustedhosts -value *

    와일드카드 문자(*)를 사용하여 특정 도메인의 모든 컴퓨터를 신뢰할 수 있는 호스트 
    목록에 추가할 수도 있습니다. 예를 들어 다음 명령은 Fabrikam 도메인의 모든 컴퓨터를
    신뢰할 수 있는 호스트 목록에 추가합니다.

        set-item wsman:localhost\client\trustedhosts *.fabrikam.com

    특정 컴퓨터의 이름을 신뢰할 수 있는 호스트 목록에 추가하려면 다음 명령 형식을 사용
    합니다.

        set-item wsman:\localhost\Client\TrustedHosts -value <ComputerName>[,<ComputerName>]
        

    여기서 각 값 <ComputerName>의 형식은 다음과 같아야 합니다.

        <Computer>.<Domain>.<Company>.<top-level-domain>

    예를 들면 다음과 같습니다.

        set-item wsman:\localhost\Client\TrustedHosts -value Server01.Domain01.Fabrikam.com
        

    컴퓨터 이름을 신뢰할 수 있는 호스트의 기존 목록에 추가하려면 먼저 현재 값을 변수에
    저장한 다음 현재 값과 새 값이 포함된 쉼표로 구분된 목록에 추가합니다.

    예를 들어 Server01 컴퓨터를 신뢰할 수 있는 호스트의 기존 목록에 추가하려면 다음
    명령을 사용합니다.

        $curValue = (get-item wsman:\localhost\Client\TrustedHosts).
        value

        set-item wsman:\localhost\Client\TrustedHosts -value "$
        curValue, Server01.Domain01.Fabrikam.com"

    특정 컴퓨터의 IP 주소를 신뢰할 수 있는 호스트 목록에 추가하려면 다음 명령 형식을
    사용합니다.

        set-item wsman:\localhost\Client\TrustedHosts -value <
        IP Address>

    예를 들면 다음과 같습니다.

        set-item wsman:\localhost\Client\TrustedHosts -value 172.16.
        0.0

    컴퓨터를 원격 컴퓨터의 TrustedHosts 목록에 추가하려면 Connect-WSMan cmdlet을
    사용하여 원격 컴퓨터의 노드를 로컬 컴퓨터의 WSMan: 드라이브에 추가합니다. 그런
    다음 Set-Item 명령을 사용하여 컴퓨터를 추가합니다.

    Connect-WSMan cmdlet에 대한 자세한 내용은 Connect-WSMan을 참조하십시오.

 컴퓨터 구성 문제 해결
    이 단원에서는 컴퓨터, 도메인 또는 기업의 특정 구성과 관련된 원격 문제에 대해 설명
    합니다.

    대체 포트에 대해 원격 기능을 구성하는 방법
    --------------------------------------------
        오류: 지정된 원격 호스트에 대한 연결이 거부되었습니다. WS-Management 서비
        스가 원격 호스트에서 실행 중이고 올바른 포트 및 HTTP URL에서 요청을
        수신하도록 구성되어 있는지 확인하십시오.

    Windows PowerShell 원격은 기본적으로 HTTP 전송에 포트 80을 사용합니다. 사용
    자가 원격 명령에서 ConnectionURI 또는 Port 매개 변수를 지정하지 않는 경우
    기본 포트가 사용됩니다.

    Windows PowerShell에서 사용하는 기본 포트를 변경하려면 WSMan: 드라이브에서 Set-Item
    cmdlet을 사용하여 수신기 리프 노드의 Port 값을 변경합니다.

    예를 들어 다음 명령은 기본 포트를 8080으로 변경합니다.

        set-item wsman:\localhost\listener\listener*\port -value 8080

    프록시 서버를 사용하여 원격 기능을 구성하는 방법
    ---------------------------------------------
        오류: 클라이언트가 요청에 지정된 대상에 연결할 수 없습니다. 대상에서 서비스가
        실행되고 요청을 수락하고 있는지 확인하십시오. 

    Windows PowerShell 원격은 HTTP 프로토콜을 사용하기 때문에 HTTP 프록시 설정의
    영향을 받습니다. 프록시 서버가 있는 기업에서 사용자는 Windows PowerShell
    원격 컴퓨터에 직접 액세스할 수 없습니다.

    이 문제를 해결하려면 원격 명령에서 프록시 설정 옵션을 사용합니다. 다음과 같은 설정을
    사용할 수 있습니다.

        --  ProxyAccessType
        --  ProxyAuthentication
        --  ProxyCredential

    특정 명령에 대해 이러한 옵션을 설정하려면 다음 절차를 사용합니다.

        1. New-PSSessionOption cmdlet의 ProxyAccessType, ProxyAuthentication 및
           ProxyCredential 매개 변수를 사용하여 기업에 대한 프록시 설정으로 세션 옵션
           개체를 만듭니다. 옵션 개체를 변수에 저장합니다.

        2. 옵션 개체가 포함된 변수를 New-PSSession, Enter-PSSession 또는 Invoke-Command
           명령의 SessionOption 매개 변수 값으로 사용합니다.

    예를 들어 다음 명령은 프록시 세션 옵션으로 세션 옵션 개체를 만든 다음 이 개체를 
    사용하여 원격 세션을 만듭니다.

        C:\PS> $SessionOption = New-PSSessionOption -ProxyAccessType IEConfig `
                -ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

        C:\PS> New-PSSession -ConnectionURI https://www.fabrikam.com

    New-PSSessionOption cmdlet에 대한 자세한 내용은 New-PSSessionOption을
    참조하십시오.

    현재 세션에서 모든 원격 명령에 대해 이러한 옵션을 설정하려면 New-PSSessionOption
    이 $PSSessionOption 기본 설정 변수의 값에 만드는 옵션 개체를 사용합니다.
    $PSSessionOption 기본 설정 변수에 대한 자세한 내용은 about_Preference_Variables
    를 참조하십시오.

    로컬 컴퓨터의 모든 Windows PowerShell 세션에서 모든 원격 명령에 대해 이러한
    옵션을 설정하려면 Windows PowerShell 프로필에 $PSSessionOption 기본 설정
    변수를 추가합니다. Windows PowerShell 프로필에 대한 자세한 내용은 
    about_Profiles를 참조하십시오.
 


    64비트 컴퓨터에서 32비트 세션을 검색하는 방법
    ---------------------------------------------
        오류: "<tool-name>" 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는
        프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가
        포함된 경우 경로가 올바른지 확인한 다음 다시 시도하십시오.

    원격 컴퓨터에서 64비트 버전의 Windows를 실행하는 경우 원격 명령이 
    Microsoft.PowerShell32와 같은 32비트 세션 구성을 사용하고 있으면 
    WinRM(Windows 원격 관리)에서 WOW64 프로세스를 로드하고 Windows에서 
    %Windir%\System32 디렉터리에 대한 모든 참조를 %windir%\SysWOW64 디렉터리로 
    자동으로 리디렉션합니다. 

    따라서 SysWow64 디렉터리에 해당 항목이 없는 도구(예: Defrag.exe)를 System32
    디렉터리에서 사용하려고 하면 디렉터리에서 해당 도구를 찾을 수 없습니다.

    세션에서 사용되고 있는 프로세서 아키텍처를 찾으려면 PROCESSOR_ARCHITECTURE 환경
    변수의 값을 사용합니다. 다음 명령은 $s 변수에서 세션의 프로세서 아키텍처를 찾
    습니다.

        C:\PS> $s = new-pssession -computername Server01 -configurationName CustomShell

        C:\PS> invoke-command -session $s {$env:PROCESSOR_ARCHITECTURE}
        x86


    세션 구성에 대한 자세한 내용은 about_session_configurations을 참조하십시오.


 정책 및 기본 설정 문제 해결
    이 단원에서는 로컬 및 원격 컴퓨터에서 설정된 정책 및 기본 설정과 관련된 원격 문제에
    대해 설명합니다.


    IMPORT-PSSESSION 및 IMPORT-MODULE의 실행 정책을 변경하는 방법 
    -------------------------------------------------------------------------
        오류: Import-Module: 이 시스템에서 스크립트를 실행할 수 없으므로 <filename>
        파일을 로드할 수 없습니다.

    Import-PSSession 및 Export-PSSession cmdlet은 서명되지 않은 스크립트 파일과
    서식 지정 파일을 포함하는 모듈을 만듭니다. 

    Import-PSSession 또는 Import-Module을 사용하여 이러한 cmdlet으로 만들어진 모듈을
    가져오려면 현재 세션의 실행 정책이 Restricted 또는 AllSigned일 수 없습니다.
    Windows PowerShell 실행 정책에 대한 자세한 내용은 about_Execution_Policies를 
    참조하십시오.
    

    레지스트리에 설정된 로컬 컴퓨터의 실행 정책을 변경하지 않고 모듈을 가져오려면 
    Set-ExecutionPolicy의 Scope 매개 변수를 사용하여 단일 프로세스에 대해 덜 
    제한적인 실행 정책을 설정합니다.

    예를 들어 다음 명령은 RemoteSigned 실행 정책을 사용하여 프로세스를 시작합니다. 
    이 실행 정책 변경은 현재 프로세스에만 영향을 미치며 Windows PowerShell 
    ExecutionPolicy 레지스트리 설정을 변경하지 않습니다.

        set-executionpolicy -scope process -executionpolicy RemoteSigned

    PowerShell.exe의 ExecutionPolicy 매개 변수를 사용하여 덜 제한적인 실행 정책을
    사용하여 단일 세션을 시작할 수도 있습니다. 

        powershell.exe -executionpolicy RemoteSigned

    이러한 cmdlet에 대한 자세한 내용은 Import-PSSession, Export-PSSession 및
    Import-Module을 참조하십시오. 실행 정책에 대한 자세한 내용은 
    about_Execution_Policies를 참조하십시오. PowerShell.exe 콘솔 도움말 옵션에 대한
    자세한 내용을 보려면 "powershell.exe -?"를 입력하십시오.

    할당량을 설정하고 변경하는 방법
    -------------------------------
        오류: 원격 클라이언트에서 받은 총 데이터가 허용되는 최대값을 초과했습니다.

    할당량을 사용하여 실수로든 악의적으로든 간에 과도하게 리소스를 사용하지 않도록 
    로컬 컴퓨터와 원격 컴퓨터를 보호할 수 있습니다. 

    기본 구성에서 다음 할당량을 사용할 수 있습니다.

    -- WS-Management 공급자(WSMan:)는 WSMan:\<ComputerName> 노드의 MaxEnvelopeSizeKB 
       및 MaxProviderRequests 설정, WSMan:\<ComputerName>\Service 노드의 
       MaxConcurrentOperations, MaxConcurrentOperationsPerUser 및 MaxConnections 설정 
       등의 몇 가지 할당량 설정을 제공합니다.

    -- New-PSSessionOption cmdlet의 MaximumReceivedDataSizePerCommandMB 및 
       MaximumReceivedObjectSizeMB 매개 변수와 $PSSessionOption 기본 설정 변수를
       사용하여 로컬 컴퓨터를 보호할 수 있습니다.

    -- Register-PSSessionConfiguration cmdlet의 MaximumReceivedDataSizePerCommandMB 및 
       MaximumReceivedObjectSizeMB 매개 변수를 사용하는 등의 제한을 세션 구성에 추가하여 
       원격 컴퓨터를 보호할 수 있습니다.

    할당량이 명령과 충돌할 때 Windows PowerShell에서 오류가 생성됩니다. 

    오류를 해결하려면 할당량에 맞게 원격 명령을 변경하거나, 할당량의 원본을 확인한 다음
    명령이 완료될 수 있도록 할당량을 늘립니다.

    예를 들어 다음 명령은 원격 컴퓨터의 Microsoft.PowerShell 세션 구성에서 개체 크기 
    할당량을 10MB(기본값)에서 11MB로 늘립니다. 

        Set-PSSessionConfiguration -name microsoft.powershell ` 
            -MaximumReceivedObjectSizeMB 11 -Force
        

    New-PSSsessionOption cmdlet에 대한 자세한 내용은 New-PSSessionOption을
    참조하십시오.

    WS-Management 할당량에 대한 자세한 내용은 WS-Management 공급자의 도움말 항목을
    참조하십시오("get-help WSMan" 입력).



    시간 제한 오류를 해결하는 방법
    -----------------------------
        오류: WS-Management 서비스가 OperationTimeout에서 지정된 시간 내에 작업을
        완료할 수 없습니다.

    시간 제한을 사용하여 실수로든 악의적으로든 간에 과도하게 리소스를 사용하지 
    않도록 로컬 컴퓨터와 원격 컴퓨터를 보호할 수 있습니다. 시간 제한이 로컬 컴퓨터와 
    원격 컴퓨터에서 모두 설정되면 Windows PowerShell은 가장 짧은 시간 제한 설정을 사용
    합니다.

    기본 구성에서 다음 시간 제한을 사용할 수 있습니다.

    -- WS-Management 공급자(WSMan:)는 WSMan:\<ComputerName> 노드의 MaxTimeoutms
       설정, WSMan:\<ComputerName>\Service 노드의 EnumerationTimeoutms 및
       MaxPacketRetrievalTimeSeconds 설정 등의 몇 가지 클라이언트 쪽 및 서비스쪽 
       시간 제한 설정을 제공합니다.
 
    -- New-PSSessionOption cmdlet의 CancelTimeout, IdleTimeout, OpenTimeout 및 
       OperationTimeout 매개 변수와 $PSSessionOption 기본 설정 변수를 사용하여 로컬
       컴퓨터를 보호할 수 있습니다.

    -- 세션에 대한 세션 구성에서 프로그래밍 방식으로 시간 제한 값을 설정하여 원격 
       컴퓨터를 보호할 수도 있습니다.

    시간 제한 값 때문에 작업이 완료될 수 없으면 Windows PowerShell은 작업을 종료
    하고 오류를 생성합니다. 

    오류를 해결하려면 시간 제한 간격 내에서 완료할 명령을 변경하거나 시간 제한 한도의
    원본을 확인하고 명령이 완료될 수 있도록 시간 제한 간격을 늘립니다.

    예를 들어 다음 명령은 New-PSSessionOption cmdlet을 사용하여 OperationTimeout
    값을 4분(ms 단위)으로 사용하여 세션 옵션 개체를 만든 다음 세션 옵션 개체를
    사용하여 원격 세션을 만듭니다. 

        C:\PS> $pso = new-pssessionoption -operationtimeout 240000

        C:\PS> new-pssession -computername Server01 -sessionOption $pso

    WS-Management 시간 제한에 대한 자세한 내용은 WS-Management 공급자의 도움말 항목을
    참조하십시오("get-help WSMan" 입력).

    New-PSSsessionOption cmdlet에 대한 자세한 내용은 New-PSSessionOption을 참조하십시오.


 응답하지 않는 동작 문제 해결

 이 단원에서는 명령이 완료되지 못하게 하고 Windows PowerShell 프롬프트의 반환을 
 방지하거나 지연하는 원격 문제에 대해 설명합니다.


    명령을 중단하는 방법
    --------------------------
    사용자 인터페이스가 있는 프로그램, 입력하라는 메시지를 표시하는 콘솔 응용 프로그램,
    Win32 콘솔 API를 사용하는 콘솔 응용 프로그램 등의 일부 기본 Windows 프로그램은
    Windows PowerShell 원격 호스트에서 제대로 작동하지 않습니다.  

    이러한 프로그램을 사용하는 경우 출력되지 않거나 부분적으로 출력되거나 원격 명령이 
    완료되지 않는 등의 예기치 못한 동작이 발생할 수 있습니다.

    응답하지 않는 프로그램을 종료하려면 Ctrl+C를 입력합니다. 보고되었을 수 있는 오류를
    보려면 로컬 호스트와 원격 세션에서 "$error"를 입력하십시오.


참고 항목
    온라인 버전: https://go.microsoft.com/fwlink/?LinkID=135188
    about_remote
    about_remote_requirements




목차