PowerShell 플러그인과 Windows PowerShell 간에 연결을 설정하려면 지원되는 통신 프로토콜 중 하나를 사용하도록 WinRM을 구성해야 합니다.

PowerShell 플러그인은 Windows 원격 관리(WinRM) 2.0을 관리 프로토콜로 지원합니다.

다음 인증 방법이 지원됩니다.
인증 방법 세부 정보
기본 사용자 이름과 암호를 요구하는 비보안 인증 메커니즘입니다.
Kerberos 클라이언트와 서버의 ID를 확인하기 위해 티켓을 사용하는 보안 인증 프로토콜입니다.
참고: PowerShell 플러그인은 WinRM에서 사용자 자격 증명의 위임을 지원하지 않으며 CredSSP는 지원되지 않는 인증 방법입니다.

HTTP를 통한 WinRM

PowerShell 플러그인은 HTTP 프로토콜을 통해 WinRM 호스트와의 통신을 지원합니다. WinRM이 통신을 인증하는 경우에도 데이터 전송은 암호화되지 않으며 네트워크에서 일반 텍스트로 전송됩니다. 통신하는 시스템 간에 IPSec이 구성된 경우, HTTP 프로토콜을 사용해야 합니다.

기본 인증을 사용하려면, AllowUnencrypted 속성을 서비스 및 클라이언트 WinRM 구성 모두에서 true로 설정해야 합니다. HTTP 구성의 예는 HTTP를 사용하도록 WinRM 구성을 참조하십시오.

HTTPS를 통한 WinRM

PowerShell 플러그인은 HTTPS 프로토콜을 통해 WinRM 호스트와의 통신을 지원합니다. 보다 안전한 통신 방법으로 HTTPS 프로토콜을 사용할 수 있습니다.

HTTPS 프로토콜을 사용하려면 서버 인증을 위한 인증서를 생성하고 이 인증서를 WinRM 호스트에 설치해야 합니다. HTTPS 구성의 예는 HTTPS를 사용하도록 WinRM 구성을 참조하십시오.

Kerberos 인증

PowerShell 호스트를 추가하고 관리할 때 Kerberos 인증을 사용할 수 있습니다. Kerberos 인증을 사용하면 도메인 사용자는 WinRM을 통해 원격 PowerShell 사용 가능 시스템에서 명령을 실행할 수 있습니다.

PowerShell 호스트에서 WinRM을 구성하려면 다음 명령을 실행합니다.
winrm quickconfig
winrm set winrm/config/service/auth '@{Kerberos="true"}'
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"}

자세한 내용은 Automation Orchestrator 플러그인에 대한 Kerberos 인증 구성 항목을 참조하십시오.

HTTP를 사용하도록 WinRM 구성

HTTP 프로토콜을 통해 PowerShell 플러그인과 통신하도록 WinRM 호스트를 구성할 수 있습니다.

WinRM 호스트 시스템에서 명령을 실행하여 WinRM 구성을 수정해야 합니다. WinRM 서비스 및 WinRM 클라이언트 모두와 동일한 시스템을 사용할 수 있습니다.

중요: HTTP를 사용하도록 WinRM을 구성할 때 단계 중 하나를 건너뛰는 경우, 호스트가 추가되지 않을 수 있으며 로그 오류 메시지를 받을 수 있습니다.:
Caused by: org.dom4j.DocumentException: Error on line -1 of document : Premature end of file. 
Nested exception: Premature end of file.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
at com.xebialabs.overthere.cifs.winrm.connector.JdkHttpConnector.sendMessage(JdkHttpConnector.java:117)

프로시저

  1. 기본 WinRM 구성 값을 설정하려면 다음 명령을 실행합니다.
    c:\> winrm quickconfig
  2. (선택 사항) 수신기가 작동 중인지 확인하고 기본 포트를 확인하려면 다음 명령을 실행합니다.
    c:\> winrm e winrm/config/listener

    기본 포트는 HTTP의 경우 5985이며 HTTPS의 경우 5986입니다.

  3. WinRM 서비스에서 기본 인증을 사용하도록 설정합니다.
    1. 기본 인증이 허용되는지 여부를 확인하려면 다음 명령을 실행합니다.
      c:\> winrm get winrm/config/service
    2. 기본 인증을 사용하도록 설정하려면 다음 명령을 실행합니다.
      c:\> winrm set winrm/config/service/auth '@{Basic="true"}'
  4. WinRM 서비스에서 암호화되지 않은 데이터의 전송을 허용하려면 다음 명령을 실행합니다.
    c:\> winrm set winrm/config/service @{AllowUnencrypted="true"}
  5. WinRM 서비스의 채널 바인딩 토큰 강화 수준이 강화로 설정된 경우 해당 값을 낮음으로 변경합니다.
    c:\> winrm set winrm/config/service/auth @{CbtHardeningLevel="relaxed"}
  6. WinRM 클라이언트에서 기본 인증을 사용하도록 설정합니다.
    1. 기본 인증이 허용되는지 여부를 확인하려면 다음 명령을 실행합니다.
      c:\> winrm get winrm/config/client
    2. 기본 인증을 사용하도록 설정하려면 다음 명령을 실행합니다.
      c:\> winrm set winrm/config/client/auth @{Basic="true"}
  7. WinRM 클라이언트에서 암호화되지 않은 데이터의 전송을 허용하려면 다음 명령을 실행합니다.
    c:\> winrm set winrm/config/client @{AllowUnencrypted="true"}
  8. WinRM 호스트 시스템이 외부 도메인에 있는 경우, 신뢰할 수 있는 호스트를 지정하려면 다음 명령을 실행합니다.
    c:\> winrm set winrm/config/client @{TrustedHosts="host1, host2, host3"}
  9. WinRM 서비스에 대한 연결을 테스트하려면 다음 명령을 실행합니다.
    c:\> winrm identify -r:http://winrm_server:5985 -auth:basic -u:user_name -p:password -encoding:utf-8

HTTPS를 사용하도록 WinRM 구성

HTTPS 프로토콜을 통해 PowerShell 플러그인과 통신하도록 WinRM 호스트를 구성할 수 있습니다.

WinRM 호스트에는 HTTPS 프로토콜을 통해 통신하려면 인증서가 필요합니다. 인증서를 얻거나 생성할 수 있습니다.

사전 요구 사항

  • HTTPS 프로토콜을 사용하도록 WinRM을 구성합니다. 자세한 내용은 HTTP를 사용하도록 WinRM 구성 항목을 참조하십시오.
  • WinRM 호스트에서 Microsoft 관리 콘솔(mmc.exe)에 액세스할 수 있는지 확인합니다.

프로시저

  1. 자체 서명 인증서 생성
    다음 명령줄은 Powershell Cmdlet New-SelfSignedCertificate를 사용하여 WinRM 호스트에서 인증서를 생성하기 위한 예시 구문을 포함합니다.
    New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName ("machinename.subdomain.company.com", "machinename") -NotAfter (get-date).AddYears(5) -Provider "Microsoft RSA SChannel Cryptographic Provider" -KeyLength 2048

    이 예에서 -NotAfter 매개 변수는 인증서가 5년 후에 만료되도록 지정합니다. 이 매개 변수를 지정하지 않으면 인증서가 1년 후에 만료됩니다. 자체 서명된 인증서 생성에 대해 자세히 알아보십시오.

  2. Microsoft 관리 콘솔을 사용하여 생성한 인증서를 추가합니다.
    1. mmc.exe를 실행합니다.
    2. 파일 > 스냅인 추가/제거를 선택합니다.
    3. 사용 가능한 스냅인 목록에서 인증서를 선택하고 추가를 클릭합니다.
    4. 컴퓨터 계정을 선택하고 다음을 클릭합니다.
    5. 마침을 클릭합니다.
    6. 이 인증서가 콘솔 루트 > 인증서(로컬 컴퓨터) > 개인 > 인증서콘솔 루트 > 인증서(로컬 컴퓨터) > 신뢰할 수 있는 루트 인증 기관 > 인증서에 설치되어 있는지 확인합니다.
      인증서가 신뢰할 수 있는 루트 인증 기관 및 개인 폴더에 설치되어 있지 않은 경우, 수동으로 설치해야 합니다.
  3. 올바른 지문 및 호스트 이름을 사용하여 HTTPS 수신기를 생성합니다.
    다음 명령줄은 HTTPS 수신기 생성을 위한 예시 구문을 포함합니다.

    winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="host_name";CertificateThumbprint="certificate_thumbprint"}

    참고: 인증서 지문에서 공백을 생략합니다.

    인증서가 만료되면 수신기를 삭제한 후 유효한 새 인증서로 다시 생성해야 합니다.

  4. 연결을 테스트합니다.
    다음 명령줄은 연결 테스트를 위한 예시 구문을 포함합니다.

    winrs -r:https://host_name:port_number -u:user_name -p:password hostname