PowerShell 프로토콜 및 문제 해결

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기3분
  • PowerShell은 WMI(Windows Management Instrumentation) 및 WinRM(Windows Remote Management) 프로토콜을 사용하여 오케스트레이션 활동이 원격 Windows 호스트에서 명령을 실행할 수 있도록 합니다.

    WMI(Windows Management Instrumentation)

    WMI는 컴퓨터 시스템, 네트워크 또는 기업에서 관리 데이터를 가져오는 모든 로컬 또는 원격 응용 프로그램이나 스크립트에 대해 균일한 인터페이스를 제공합니다. WMI에는 다음 구성 요소가 포함되어 있습니다.
    • 관리되는 개체 및 WMI 공급자: WMI 공급자는 WMI에 대해 하나 이상의 관리되는 개체를 모니터링하는 COM 개체입니다. 관리되는 개체는 하드 디스크 드라이브, 네트워크 어댑터, 데이터베이스 시스템, 운영 체제, 프로세스 또는 서비스와 같은 논리적 또는 물리적 엔터프라이즈 구성 요소입니다.
    • WMI 인프라: WMI 인프라는 WMI 서비스(winmgmt)로 알려진 Microsoft Windows 운영 체제 구성 요소입니다. WMI 인프라는 WMI 코어와 WMI 리포지토리로 구성됩니다. WMI 리포지토리는 WMI 네임스페이스로 구성됩니다. WMI 서비스는 시스템 시작 시 root\default, root\cimv2root\subscription과 같은 네임스페이스를 만들고 Win32 클래스, WMI 시스템 클래스 등을 비롯한 기본 클래스 정의 집합을 사전 설치합니다. 시스템에 있는 나머지 네임스페이스는 운영 체제 또는 제품의 다른 부분에 대한 공급자가 만듭니다.
    • WMI 소비자: WMI 소비자는 WMI 인프라와 상호 작용하는 관리 응용 프로그램 또는 스크립트입니다. 관리 응용 프로그램에서는 COM API 또는 WMI용 스크립팅 API를 호출하여 데이터를 쿼리하거나, 데이터를 열거하거나, 공급자 메서드를 실행하거나, 이벤트를 구독할 수 있습니다.

    WMI 설치 및 구성

    MID 서버가 대상 호스트에 대한 원격 연결을 성공적으로 설정하려면 TCP 포트 135가 열려 있어야 합니다. 방화벽은 Windows DCOM-In(Windows Management Instrumentation)이라는 WMI 연결에 대한 인바운드 규칙을 자동으로 만듭니다.

    WinRM(Windows 원격 관리)

    WinRM은 서로 다른 공급업체의 하드웨어와 운영 체제가 상호 운용될 수 있도록 하는 표준 SOAP(Simple Object Access Protocol) 프로토콜인 WS-Management Protocol의 Microsoft 구현입니다.

    WinRM에는 다음 구성 요소가 포함되어 있습니다.
    • WinRM 스크립팅 API: 이 스크립팅 API를 사용하면 오케스트레이션에서 WS-Management 프로토콜 작업을 수행하는 스크립트를 사용하여 원격 컴퓨터에서 데이터를 가져올 수 있습니다.
    • WMI 서비스: WMI 서비스는 WinRM과 함께 계속 실행되며 WMI 플러그 인을 통해 요청된 데이터 또는 제어를 제공합니다. Win32_Process와 같은 표준 WMI 클래스에서 데이터를 계속 가져올 수 있습니다.

    WinRM 구성

    WinRM은 2008 R2 이상의 운영 체제에 Windows 자동으로 설치되지만 사용하기 전에 구성해야 합니다.
    1. 명령 프롬프트에서 winrm quickconfig를 입력합니다. 이 명령은 대소문자를 구분하지 않습니다.
    2. 콘솔에 [y/n]을 변경하시겠습니까?가 표시되면 y를 입력합니다.

      winrm quickconfig 명령은 다음 작업을 수행합니다.

      • WinRM 서비스를 시작하고 서비스 시작 유형을 자동 시작으로 설정합니다.
      • 임의의 IP 주소에서 HTTP 또는 HTTPS를 사용하여 WS-Management 프로토콜을 보내고 받는 포트의 수신기를 구성합니다.
      • 현재 사용자 프로파일에 대한 방화벽 예외를 생성합니다.