이번 글에서는 Windows Management Instrumentation(WMI) 그룹 정책 필터에서 Win32_OperatingSystem BuildNumber를 비교할 때 Windows 10 환경에서 예상대로 작동하지 않는 문제의 원인을 살펴보고, 해결 방법을 단계별로 안내합니다.
WMI(Windows Management Instrumentation)는 Microsoft가 DMTF(Distributed Management Task Force)의 WBEM(Web-Based Enterprise Management) 및 CIM(Common Information Model) 표준을 구현한 것으로, Windows 컴퓨팅 시스템을 통해 네트워크상의 장치와 애플리케이션 관리를 통합하기 위한 사양 집합입니다.
WMI를 사용하면 VBScript나 Windows PowerShell 같은 스크립팅 언어로 Microsoft Windows 개인용 PC와 서버를 로컬 및 원격으로 모두 관리할 수 있습니다. WMI는 Windows 2000부터 최신 Microsoft 운영 체제까지 기본적으로 탑재되어 제공됩니다.
또한 WMI는 보안 설정 구성, 시스템 속성 설정 및 변경, 인증된 사용자와 사용자 그룹에 대한 권한 설정 및 변경, 드라이브 레이블 지정 및 변경, 특정 시간에 프로세스가 실행되도록 예약, 개체 리포지토리 백업, 오류 로깅 활성화 또는 비활성화 같은 작업도 지원합니다.
WMI 그룹 정책 필터에서 Win32_OperatingSystem BuildNumber가 작동하지 않는 현상
이 문제는 일반적으로 다음과 같은 시나리오에서 발생합니다.
그룹 정책이 Windows 8.1 이상 버전에 적용되기를 원하고, 이를 위해 Win32_OperatingSystem BuildNumber를 활용하려 합니다. 그래서 다음과 같은 WMI 필터를 생성합니다.
"Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 9200"
아래 표는 Windows 버전별로 알려진 빌드 번호입니다.
| 빌드 번호 | Windows 버전 |
|---|---|
| 9200 | Windows 8 |
| 9600 | Windows 8.1 |
| 10240 | Windows 10 |
| 10586 | Windows 10, 버전 1511 |
| 14393 | Windows 10, 버전 1607 |
| 15063 | Windows 10, 버전 1703 |
| 16299 | Windows 10, 버전 1709 |
| 17134 | Windows 10, 버전 1803 |
| 17763 | Windows 10, 버전 1809 |
| 18362 | Windows 10, 버전 1903 |
이 시나리오에서는 WMI 필터가 빌드 번호 9200 이상의 모든 시스템에 그룹 정책 설정을 적용할 것으로 기대하지만, 실제로는 Windows 10 빌드가 제외되어 정책이 적용되지 않습니다.
문제의 원인
Microsoft에 따르면 이 문제는 BuildNumber 속성의 데이터 형식이 Integer(정수)가 아닌 String(문자열)이기 때문에 발생합니다. 문자열 비교에서는 숫자 크기가 아니라 문자 단위로 왼쪽부터 비교되므로, 첫 자리의 "1"이 "9"보다 작게 평가됩니다. 그 결과 "10240"과 같은 Windows 10 빌드 번호가 "9600"보다 작은 값으로 판단되어 필터 조건을 충족하지 못하게 됩니다.
해결 방법
이 문제를 해결하려면 다음 예시와 유사한 필터를 사용하세요.
Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 10000 AND BuildNumber LIKE "%[123456789][0123456789][0123456789][0123456789][0123456789]%" OR BuildNumber >= 9200 AND BuildNumber LIKE "%[123456789][0123456789][0123456789][0123456789]%"
이 쿼리는 LIKE 연산자와 문자 패턴 매칭을 활용해 자릿수를 기준으로 빌드 번호를 구분함으로써, 문자열 비교의 한계를 보완하고 Windows 10 빌드가 올바르게 포함되도록 합니다.
참고: 문자열 비교가 원하는 결과를 반환하도록 강제하는 방법은 여러 가지가 있습니다. 선호하는 어떤 방법을 사용해도 무방하며, 위 예시는 실제로 완전하게 작동하는 필터입니다.
이 글이 문제 해결에 도움이 되길 바랍니다!