Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

ตัวกรอง WMI ในนโยบายกลุ่ม (GPO) ช่วยให้คุณปรับใช้นโยบายกับไคลเอ็นต์ได้อย่างยืดหยุ่นมากขึ้นโดยใช้กฎที่แตกต่างกัน ตัวกรอง WMI คือชุดของการสืบค้น WMI (ภาษาการสืบค้น WMI / WQL ใช้) ที่คุณสามารถใช้เพื่อกำหนดเป้าหมายคอมพิวเตอร์ที่ควรใช้นโยบายกลุ่มเฉพาะ ตัวอย่างเช่น การใช้ตัวกรอง WMI GPO คุณสามารถใช้นโยบายที่เชื่อมโยงกับ OU กับคอมพิวเตอร์ที่ใช้ Windows 10 เท่านั้น (นโยบายที่มีตัวกรอง WMI ดังกล่าวจะไม่มีผลกับคอมพิวเตอร์ที่ใช้ Windows เวอร์ชันอื่น)

ตัวกรอง WMI GPO มีไว้เพื่ออะไร

โดยทั่วไป การกรองนโยบายกลุ่มโดยใช้ WMI (Windows Management Instrumentation) สามารถใช้ได้เมื่อวัตถุโดเมนหลายตัว (ผู้ใช้หรือคอมพิวเตอร์) อยู่ในโครงสร้าง AD แบบเรียบ แทนที่จะเป็น OU ที่แยกจากกัน หรือหากคุณต้องการใช้นโยบายกลุ่มตามเวอร์ชันของระบบปฏิบัติการ การตั้งค่าเครือข่าย ซอฟต์แวร์ที่ติดตั้ง หรือเกณฑ์อื่นๆ ที่สามารถเลือกได้โดยใช้ 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 . ส่วนนี้ประกอบด้วยตัวกรอง WMI ทั้งหมดในโดเมน AD สร้างตัวกรอง WMI ใหม่ (ใหม่ )

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

พิมพ์ชื่อตัวกรองและคำอธิบาย (ไม่บังคับ) หากต้องการเพิ่มรหัสการสืบค้น WMI ลงในตัวกรอง ให้คลิก เพิ่ม ปุ่ม ระบุชื่อของเนมสเปซ WMI (โดยค่าเริ่มต้น root\CIMv2 ) และระบุรหัส WMI

ใช้รูปแบบแบบสอบถาม WMI ต่อไปนี้:

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

ในตัวอย่างนี้ ฉันต้องการสร้างตัวกรอง WMI ที่อนุญาตให้ใช้ GPO กับคอมพิวเตอร์ที่ใช้ Windows 10 เท่านั้น แบบสอบถาม WMI อาจมีลักษณะดังนี้:

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

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

ตัวกรอง WMI ที่สร้างขึ้นจะถูกเก็บไว้ใน msWMI-Som คลาสอ็อบเจ็กต์ของโดเมน Active Directory ในส่วน DC=…, CN=System, CN=WMIPolicy, CN=SOM คุณสามารถค้นหาและแก้ไขได้โดยใช้ adsiedit.msc

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

หลังจากที่คุณสร้างตัวกรอง WMI แล้ว คุณสามารถลิงก์กับ GPO ที่ต้องการได้ ค้นหานโยบายที่ต้องการในคอนโซล GPMC และในขอบเขต แท็บใน การกรอง WMI รายการแบบหล่นลงของส่วน เลือกตัวกรอง WMI ของคุณ ในตัวอย่างนี้ ฉันต้องการใช้นโยบายการกำหนดเครื่องพิมพ์กับคอมพิวเตอร์ที่ใช้ Windows 10 เท่านั้น

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

รอให้นโยบายนี้มีผลกับไคลเอ็นต์ หรืออัปเดตด้วยตนเองด้วยคำสั่ง gpupdate /force . เมื่อวิเคราะห์นโยบายที่ใช้กับไคลเอนต์ ให้ใช้คำสั่ง gpresult /r หากนโยบายมีผลกับไคลเอ็นต์ แต่ไม่มีผลเนื่องจากข้อจำกัดของตัวกรอง WMI นโยบายดังกล่าวจะมีสถานะเป็น การกรอง:ถูกปฏิเสธ (ตัวกรอง WMI) ในรายงาน gpresult

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

ตัวอย่างการกรอง GPO WMI

มาดูตัวอย่างต่างๆ ของตัวกรอง WMI GPO ที่ใช้กันมากที่สุด

ด้วยความช่วยเหลือของตัวกรอง WMI คุณสามารถเลือกประเภทของระบบปฏิบัติการ:

  • ProductType=1 – รุ่นเดสก์ท็อปใดๆ ของ Windows
  • ProductType=2 – ตัวควบคุมโดเมน Active Directory
  • ProductType=3 – Windows Server

เวอร์ชัน Windows:

  • 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%

คุณสามารถรวมเงื่อนไขในการสืบค้น WMI โดยใช้ตัวดำเนินการเชิงตรรกะ และ และ หรือ . เมื่อต้องการใช้นโยบายกับเซิร์ฟเวอร์ที่ใช้ Windows Server 2016 เท่านั้น รหัสแบบสอบถาม WMI จะเป็นดังนี้:

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

ในการเลือก Windows 8.1 รุ่น 32 บิต:

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

หากต้องการใช้ GPO กับระบบปฏิบัติการ 64 บิตเท่านั้น:

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”

ใช้นโยบายกับแล็ปท็อปเท่านั้น (ดูบทความ แบบสอบถาม WMI เพื่อค้นหาแล็ปท็อปใน 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 ซึ่งใช้เฉพาะกับคอมพิวเตอร์ที่มีชื่อขึ้นต้นด้วย “lon-pc“ (เช่น เพื่อปิดใช้งานไดรฟ์ USB บนอุปกรณ์เหล่านี้):

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

อีกตัวอย่างหนึ่งของการใช้ตัวกรอง WMI สำหรับการกำหนดเป้าหมาย GPO ไปยังซับเน็ต IP มีการอธิบายไว้ในบทความ Use WMI Filter to Apply GPO to IP Subnet ตัวอย่างเช่น หากต้องการใช้นโยบายกับไคลเอ็นต์ในเครือข่ายย่อย 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 เกิน 1 GB:

Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824

ตัวกรอง WMI เพื่อตรวจสอบว่าติดตั้ง 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 โดยใช้ PowerShell

เมื่อสร้างแบบสอบถาม WMI บางครั้งคุณจำเป็นต้องรับค่าของพารามิเตอร์ WMI ต่างๆ บนคอมพิวเตอร์ คุณสามารถรับข้อมูลนี้ได้โดยใช้ Get-WMIObject cmdlet ตัวอย่างเช่น ฉันต้องแสดงแอตทริบิวต์ WMI และค่าของคลาส Win32_OperatingSystem:

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 *

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

คุณสามารถใช้ PowerShell เพื่อทดสอบตัวกรอง WMI บนคอมพิวเตอร์ สมมติว่าคุณเขียนข้อความค้นหา WMI ที่ซับซ้อนและต้องการตรวจสอบว่าคอมพิวเตอร์ตรงกับข้อความค้นหานี้หรือไม่ ตัวอย่างเช่น คุณได้สร้างตัวกรอง WMI เพื่อตรวจสอบ IE 11 บนคอมพิวเตอร์ คุณสามารถทดสอบการสืบค้น WMI นี้บนคอมพิวเตอร์เป้าหมายโดยใช้ 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.%"'

หากคำสั่งนี้ส่งคืนบางสิ่ง แสดงว่าคอมพิวเตอร์เป็นไปตามเงื่อนไขการสืบค้น หากคำสั่ง 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

การจำกัดนโยบายกลุ่มด้วยการกรอง WMI

ซึ่งหมายความว่ามีการติดตั้ง IE 11 บนคอมพิวเตอร์และ GPO ที่มีตัวกรอง WMI ดังกล่าวจะถูกนำไปใช้กับคอมพิวเตอร์เครื่องนี้

ดังนั้นเราจึงดูวิธีใช้ตัวกรอง WMI เพื่อใช้ GPO กับคอมพิวเตอร์ที่ตรงกับแบบสอบถาม WMI ต่างๆ เท่านั้น จำเป็นต้องคำนึงถึงการมีอยู่ของตัวกรอง WMI เมื่อวิเคราะห์สาเหตุที่ไม่ได้ใช้ GPO บนคอมพิวเตอร์