Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

การจำกัด Group Policy ด้วย WMI Filtering

บทนำ

WMI Filters ใน Group Policy (GPO) ช่วยให้สามารถ Apply Policies ให้ Clients ได้อย่างยืดหยุ่นมากขึ้นด้วย Rules ต่างๆ WMI Filter คือชุดของ WMI Queries (ใช้ WMI Query Language / WQL) ที่ใช้ Target Computers ที่ Specific Group Policy ควร Apply ตัวอย่างเช่น ใช้ WMI GPO Filter ให้ Policy ที่ Link ไป OU ใดๆ Apply ได้เฉพาะ Computers ที่รัน Windows 10 (Policy พร้อม WMI Filter นี้จะไม่ Apply ไป Computers ที่รัน Windows Versions อื่น)

WMI GPO Filters ใช้ทำอะไร

ปกติ Group Policy Filtering ด้วย WMI (Windows Management Instrumentation) ใช้เมื่อ Multiple Domain Objects (Users หรือ Computers) อยู่ใน Flat AD Structure แทนที่จะแยก OUs แยกกัน หรือหากต้องการ Apply Group Policies ตาม OS Version, Network Settings, Installed Software หรือ Criteria ใดๆ ที่ Select ได้ด้วย WMI เมื่อ Client Process Group Policy นั้น Windows จะ Check State ของมันเพื่อ Compliance กับ WMI Query ที่ระบุ หาก Filter Conditions ตรงกัน GPO จะ Apply ให้ Computer นั้น

WMI Group Policy Filters 登場ครั้งแรกใน Windows XP/Server 2003 และพร้อมใช้งานใน Windows ล่าสุด (Windows Server 2019, 2016 และ Windows 10, 8.1)

สร้าง WMI Filter ใหม่และ Link เข้า GPO

  1. เปิด Group Policy Management Console (gpmc.msc) ไป Forest → Domains → woshub.com → WMI Filters Section นี้มี WMI Filters ทั้งหมดใน AD Domain สร้าง WMI Filter ใหม่ (New)
  2. ตั้งชื่อ Filter และ Description (Optional) เพื่อเพิ่ม WMI Query Code เข้า Filter คลิก Add ระบุ WMI Namespace Name (Default root\CIMv2) และ WMI Code

WMI Query Format ที่ใช้:

Select * from <WMI Class> WHERE <Property> = <Value>

ตัวอย่าง: สร้าง WMI Filter ให้ GPO Apply เฉพาะ Computers ที่รัน Windows 10 WMI Query:

Select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"

WMI Filters ที่สร้างไว้ จะเก็บอยู่ใน Class Objects msWMI-Som ของ AD Domain ใน Section DC=…, CN=System, CN=WMIPolicy, CN=SOM หาและแก้ไขได้ด้วย adsiedit.msc

หลังสร้าง WMI Filter แล้ว Link เข้า GPO ที่ต้องการ ใน GPMC Console หา Policy ที่ต้องการ Tab Scope Section WMI Filtering Dropdown List เลือก WMI Filter ที่สร้าง ตัวอย่าง: ต้องการ Apply Printer Assignment Policy เฉพาะ Computers รัน Windows 10

รอ Policy Apply ให้ Clients หรือ Update Manual ด้วย gpupdate /force ตอน Analyze Applied Policies บน Client ใช้ gpresult /r หาก Policy Affect Client แต่ไม่ Apply เนื่องจาก WMI Filter Restrictions จะมี Status Filtering: Denied (WMI Filter) ใน gpresult Report

ตัวอย่าง WMI GPO Filters ที่ใช้บ่อย

เลือก OS Type:

  • ProductType=1 – Desktop Windows Editions ใดๆ
  • ProductType=2 – Active Directory Domain Controller
  • ProductType=3 – Windows Server

Windows Versions (Version Property):

  • Windows Server 2016 และ Windows 10 — 10.%
  • Windows Server 2012 R2 และ Windows 8.1 — 6.3%
  • Windows Server 2012 และ Windows 8 — 6.2%
  • Windows Server 2008 R2 และ Windows 7 — 6.1%
  • Windows Server 2008 และ Windows Vista — 6.0%
  • Windows Server 2003 — 5.2%
  • Windows XP — 5.1%
  • Windows 2000 — 5.0%

รวม Conditions ใน WMI Query ด้วย Logical Operators AND และ OR Apply Policy เฉพาะ Servers รัน Windows Server 2016:

select * from Win32_OperatingSystem WHERE Version LIKE "10.%" AND (ProductType = "2" or ProductType = "3" )

เลือก 32-bit Windows 8.1:

select * from Win32_OperatingSystem WHERE Version like "6.3%" AND ProductType="1" AND OSArchitecture = "32-bit"

Apply GPO ให้ 64-bit OS เท่านั้น:

Select * from Win32_Processor where AddressWidth = "64"

เลือก Windows 10 Build เฉพาะ เช่น Windows 10 1803:

select Version from Win32_OperatingSystem WHERE Version like “10.0.17134” AND ProductType=”1″

Apply Policy ให้ VMWare VMs เท่านั้น:

SELECT Model FROM Win32_ComputerSystem WHERE Model = “VMWare Virtual Platform”

Apply Policy เฉพาะ Laptops (ดูบทความ WMI Query to Find Laptops in SCCM):

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"

WMI Filter ให้ Apply เฉพาะ Computers ที่ชื่อขึ้นต้นด้วย "lon-pc" (เช่น Disable USB Drives บน Devices นี้):

SELECT Name FROM Win32_ComputerSystem WHERE Name LIKE ‘lon-pc%’

WMI Filter สำหรับ Target GPO ไป IP Subnets (ดูบทความ Use WMI Filter to Apply GPO to IP Subnet) Apply Policy ให้ Clients ใน Multiple IP Subnets:

Select * FROM Win32_IP4RouteTable WHERE (Mask='255.255.255.255' AND (Destination Like 10.1.1.%' OR Destination Like '10.1.2.%'))

เลือก Devices ที่ RAM มากกว่า 1 GB:

Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824

WMI Filter ตรวจสอบ Internet Explorer 11 ติดตั้งแล้ว:

SELECT path,filename,extension,version FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version>"11.0"

ทดสอบ GPO WMI Filters ด้วย PowerShell

ตอนสร้าง WMI Queries บางครั้งต้องดูค่า WMI Parameters ต่างๆ บน Computer ใช้ Get-WMIObject Cmdlet ตัวอย่าง ต้องการดู Attributes และ Values ของ Win32_OperatingSystem Class:

Get-WMIObject Win32_OperatingSystem
SystemDirectory : C:\WINDOWS\system32
Organization :
BuildNumber : 17134
RegisteredUser : Windows User
SerialNumber : 00331-10000-00001-AA146
Version : 10.0.17134

แสดง Class Properties ทั้งหมด: Get-WMIObject Win32_OperatingSystem| Select *

ใช้ PowerShell Test WMI Filters บน Computer สมมติเขียน WMI Query Complex อยากเช็คว่า Computer Match Query นี้หรือไม่ ตัวอย่าง สร้าง WMI Filter เช็ค IE 11 บน Computer Test Query นี้บน Target Computer ด้วย get-wmiobject Cmdlet:

get-wmiobject -query 'SELECT * FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version LIKE "11.%"'

หากคำสั่งคืนค่าอะไรสักอย่าง แสดงว่า Computer Match Query Conditions หาก get-wmiobject ไม่คืนค่าอะไร Computer ไม่ Match WMI Filter Query ตัวอย่าง รันคำสั่งบน Computer ที่มี 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 ติดตั้งอยู่บน Computer และ GPO พร้อม WMI Filter แบบนี้จะ Apply ให้ Computer นี้

สรุป

เราได้ดูวิธีใช้ WMI Filters เพื่อ Apply GPOs เฉพาะ Computers ที่ตรงตาม WMI Queries ต่างๆ จำเป็นต้องคำนึงถึง WMI Filters เมื่อวิเคราะห์สาเหตุที่ GPO บางตัวไม่ Apply บน Computer