그룹 정책(GPO)의 WMI 필터를 사용하면 다양한 규칙을 사용하여 클라이언트에 정책을 보다 유연하게 적용할 수 있습니다. WMI 필터는 WMI 쿼리 집합입니다(WMI 쿼리 언어 / WQL 특정 그룹 정책을 적용해야 하는 대상 컴퓨터에 사용할 수 있습니다. 예를 들어 WMI GPO 필터를 사용하면 OU에 연결된 정책을 Windows 10을 실행하는 컴퓨터에만 적용할 수 있습니다(이러한 WMI 필터가 있는 정책은 다른 Windows 버전이 있는 컴퓨터에는 적용되지 않음).
WMI GPO 필터는 무엇에 사용됩니까?
일반적으로 WMI를 사용한 그룹 정책 필터링 (Windows Management Instrumentation)은 OS 버전, 네트워크 설정, 설치된 소프트웨어에 따라 여러 도메인 개체(사용자 또는 컴퓨터)가 별도의 OU가 아닌 Flat AD 구조에 위치하거나 그룹 정책을 적용해야 하는 경우 사용할 수 있습니다. 또는 WMI를 사용하여 선택할 수 있는 기타 기준. 클라이언트가 이러한 그룹 정책을 처리할 때 Windows는 지정된 WMI 쿼리를 준수하는지 상태를 확인하고 필터 조건이 충족되면 GPO가 이 컴퓨터에 적용됩니다.
WMI 그룹 정책 필터는 Windows XP/Server 2003에 처음 등장했으며 최신 Windows 버전(Windows Server 2019, 2016 및 Windows 10, 8.1)에서 사용할 수 있습니다.
새 WMI 필터를 만들고 GPO에 연결
새 WMI 필터를 만들려면 그룹 정책 관리를 엽니다. 콘솔(gpmc.msc 및 Forest -> Domains -> woshub.com -> WMI 필터으로 이동합니다. . 이 섹션에는 AD 도메인의 모든 WMI 필터가 포함되어 있습니다. 새 WMI 필터 만들기(신규 ).
필터 이름과 설명을 입력합니다(선택 사항). 필터에 WMI 쿼리 코드를 추가하려면 추가를 클릭합니다. 버튼에서 WMI 네임스페이스의 이름을 지정합니다(기본적으로 root\CIMv2 ) WMI 코드를 지정합니다.
다음 WMI 쿼리 형식이 사용됩니다.
Select * from <WMI Class> WHERE <Property> = <Value>
에서 * 선택
이 예에서는 Windows 10을 실행하는 컴퓨터에만 GPO를 적용할 수 있는 WMI 필터를 만들고 싶습니다. WMI 쿼리는 다음과 같습니다.
Select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"
생성된 WMI 필터는 msWMI-Som에 저장됩니다. DC=…, CN=System, CN=WMIPolicy, CN=SOM 섹션에 있는 Active Directory 도메인의 클래스 개체 , adsiedit.msc를 사용하여 찾고 편집할 수 있습니다.
WMI 필터를 만든 후 특정 GPO에 연결할 수 있습니다. GPMC 콘솔 및 범위에서 원하는 정책을 찾습니다. 탭의 WMI 필터링 섹션 드롭다운 목록에서 WMI 필터를 선택합니다. 이 예에서는 Windows 10을 실행하는 컴퓨터에만 프린터 할당 정책을 적용하고 싶습니다.
이 정책이 클라이언트에 적용될 때까지 기다리거나 gpupdate /force
명령을 사용하여 수동으로 업데이트하십시오. . 클라이언트에 적용된 정책을 분석할 때 gpresult /r 명령을 사용합니다. 정책이 클라이언트에 영향을 미치지만 WMI 필터 제한으로 인해 적용되지 않는 경우 이러한 정책은 필터링:거부됨(WMI 필터) 상태가 됩니다. gpresult 보고서에서.
GPO WMI 필터링 예
가장 일반적으로 사용되는 WMI GPO 필터의 다양한 예를 살펴보겠습니다.
WMI 필터를 사용하여 OS 유형을 선택할 수 있습니다.
- ProductType=1 – 모든 데스크톱 Windows 버전,
- ProductType=2 – Active Directory 도메인 컨트롤러,
- ProductType=3 – Windows 서버.
Windows 버전:
- Windows 서버 2016 및 Windows 10 — 10.%
- Windows Server 2012 R2 및 Windows 8.1 — 6.3%
- Windows 서버 2012 및 Windows 8 — 6.2%
- Windows Server 2008 R2 및 Windows 7 — 6.1%
- Windows Server 2008 및 Windows Vista — 6.0%
- Windows 서버 2003 — 5.2%
- Windows XP — 5.1%
- Windows 2000 — 5.0%
논리 연산자 AND를 사용하여 WMI 쿼리에서 조건을 결합할 수 있습니다. 및 또는 . Windows Server 2016을 실행하는 서버에만 정책을 적용하려면 WMI 쿼리 코드는 다음과 같습니다.
select * from Win32_OperatingSystem WHERE Version LIKE "10.%" AND (ProductType = "2" or ProductType = "3" )
32비트 버전의 Windows 8.1을 선택하려면:
에서 *를 Win32_OperatingSystem WHERE 선택
select * from Win32_OperatingSystem WHERE Version like "6.3%" AND ProductType="1" AND OSArchitecture = "32-bit"
64비트 OS에만 GPO를 적용하려면:
Select * from Win32_Processor where AddressWidth = "64"
특정 빌드 번호로 Windows 10을 선택할 수 있습니다(예:Windows 10 1803:
).
select Version from Win32_OperatingSystem WHERE Version like “10.0.17134” AND ProductType=”1″
VMWare 가상 머신에만 정책 적용:
SELECT Model FROM Win32_ComputerSystem WHERE Model = “VMWare Virtual Platform”
랩톱에만 정책 적용(SCCM에서 랩톱을 찾기 위한 WMI 쿼리 문서 참조):
select * from Win32_SystemEnclosure where ChassisTypes = "8" or ChassisTypes = "9" or ChassisTypes = "10" or ChassisTypes = "11" or ChassisTypes = "12" or ChassisTypes = "14" or ChassisTypes = "18" or ChassisTypes = "21"
이름이 "lon-pc"로 시작하는 컴퓨터에만 적용되는 WMI 필터(예:이러한 장치에서 USB 드라이브 비활성화):
SELECT Name FROM Win32_ComputerSystem WHERE Name LIKE ‘lon-pc%’
GPO를 IP 서브넷으로 지정하기 위해 WMI 필터를 사용하는 또 다른 예는 WMI 필터를 사용하여 GPO를 IP 서브넷에 적용 문서에 설명되어 있습니다. 예를 들어 여러 IP 서브넷의 클라이언트에 정책을 적용하려면 WMI 쿼리를 사용합니다.
Select * FROM Win32_IP4RouteTable WHERE (Mask='255.255.255.255' AND (Destination Like 10.1.1.%' OR Destination Like '10.1.2.%'))
RAM이 1GB 이상인 장치만 선택하려면:
Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824
Internet Explorer 11이 설치되어 있는지 확인하기 위한 WMI 필터:
SELECT path,filename,extension,version FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version>"11.0"
PowerShell을 사용하여 GPO WMI 필터 테스트
WMI 쿼리를 만들 때 컴퓨터에서 다양한 WMI 매개 변수의 값을 가져와야 하는 경우가 있습니다. Get-WMIObject를 사용하여 이 정보를 얻을 수 있습니다. cmdlet. 예를 들어 Win32_OperatingSystem 클래스의 WMI 특성과 값을 표시해야 합니다.
Get-WMIObject Win32_OperatingSystem
SystemDirectory : C:\WINDOWS\system32
Organization :
BuildNumber : 17134
RegisteredUser : Windows User
SerialNumber : 00331-10000-00001-AA146
Version : 10.0.17134
사용 가능한 모든 클래스 속성을 표시하려면:
Get-WMIObject Win32_OperatingSystem| Select *
선택
PowerShell을 사용하여 컴퓨터에서 WMI 필터를 테스트할 수 있습니다. 복잡한 WMI 쿼리를 작성했으며 컴퓨터가 이 쿼리와 일치하는지 확인하려고 한다고 가정합니다. 예를 들어 컴퓨터에서 IE 11을 확인하기 위해 WMI 필터를 만들었습니다. get-wmiobject를 사용하여 대상 컴퓨터에서 이 WMI 쿼리를 테스트할 수 있습니다. cmdlet:get-wmiobject -query 'SELECT * FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version LIKE "11.%"'
이 명령이 무언가를 반환하면 컴퓨터가 쿼리 조건을 충족하는 것입니다. get-wmiobject 명령이 아무 것도 반환하지 않으면 컴퓨터가 WMI 필터 쿼리와 일치하지 않는 것입니다.
예를 들어 Windows 10 및 IE 11이 설치된 컴퓨터에서 지정된 명령을 실행할 때 명령은 다음을 반환합니다.
Compressed : False
Encrypted : False
Size :
Hidden : False
Name : c:\program files\internet explorer\iexplore.exe
Readable : True
System : False
Version : 11.0.17134.1
Writeable : True
즉, IE 11이 컴퓨터에 설치되어 있고 이러한 WMI 필터가 있는 GPO가 이 컴퓨터에 적용됩니다.
따라서 WMI 필터를 사용하여 다양한 WMI 쿼리를 충족하는 컴퓨터에만 GPO를 적용하는 방법을 살펴보았습니다. 특정 GPO가 컴퓨터에 적용되지 않는 이유를 분석할 때 WMI 필터의 존재를 고려해야 합니다.