ग्रुप पॉलिसी में WMI फिल्टर किसके लिए उपयोग किए जाते हैं?
ग्रुप पॉलिसी (GPO) में WMI फिल्टर आपको विभिन्न नियमों का उपयोग करके क्लाइंट पर पॉलिसी को अधिक लचीले ढंग से लागू करने की अनुमति देते हैं। एक WMI फिल्टर WMI क्वेरी (WMI क्वेरी लैंग्वेज / WQL का उपयोग किया जाता है) का एक सेट है जिसका उपयोग आप उन कंप्यूटरों को टार्गेट करने के लिए कर सकते हैं जिन पर एक विशिष्ट ग्रुप पॉलिसी लागू की जानी चाहिए। उदाहरण के लिए, WMI GPO फिल्टर का उपयोग करके, आप एक OU से लिंक की गई पॉलिसी को केवल विंडोज 10 चलाने वाले कंप्यूटरों पर लागू कर सकते हैं (ऐसी WMI फिल्टर वाली पॉलिसी अन्य विंडोज संस्करणों वाले कंप्यूटरों पर लागू नहीं होगी)।
आमतौर पर, WMI (विंडोज मैनेजमेंट इंस्ट्रूमेंटेशन) का उपयोग करके ग्रुप पॉलिसी फ़िल्टरिंग का उपयोग तब किया जा सकता है जब कई डोमेन ऑब्जेक्ट (उपयोगकर्ता या कंप्यूटर) अलग OU के बजाय फ्लैट AD स्ट्रक्चर में स्थित हों, या यदि आपको OS संस्करण, नेटवर्क सेटिंग्स, इंस्टॉल्ड सॉफ्टवेयर या किसी अन्य मानदंड के अनुसार ग्रुप पॉलिसी लागू करने की आवश्यकता हो जिसे WMI का उपयोग करके चुना जा सकता है। जब क्लाइंट ऐसी ग्रुप पॉलिसी को प्रोसेस करता है, तो विंडोज निर्दिष्ट WMI क्वेरी के अनुपालन के लिए अपनी स्थिति की जांच करेगा, और यदि फिल्टर शर्तें पूरी होती हैं, तो GPO इस कंप्यूटर पर लागू होगी।
WMI ग्रुप पॉलिसी फिल्टर पहली बार विंडोज XP/सर्वर 2003 में दिखाई दिए, और नवीनतम विंडोज संस्करणों (विंडोज सर्वर 2019, 2016 और विंडोज 10, 8.1) में उपलब्ध हैं।
नया WMI फिल्टर बनाना और इसे GPO से लिंक करना
नया WMI फिल्टर बनाने के लिए, ग्रुप पॉलिसी मैनेजमेंट कंसोल (gpmc.msc) खोलें और फॉरेस्ट -> डोमेन -> woshub.com -> WMI फिल्टर्स पर जाएं। इस सेक्शन में AD डोमेन में सभी WMI फिल्टर होते हैं। एक नया WMI फिल्टर बनाएं (न्यू)।
फिल्टर का नाम और उसका विवरण (वैकल्पिक) टाइप करें। फिल्टर में WMI क्वेरी कोड जोड़ने के लिए, ऐड बटन पर क्लिक करें, WMI नेमस्पेस का नाम निर्दिष्ट करें (डिफ़ॉल्ट रूप से, root\CIMv2) और WMI कोड निर्दिष्ट करें।
निम्नलिखित WMI क्वेरी प्रारूप का उपयोग किया जाता है:
Select * from WHERE =
इस उदाहरण में, मैं एक WMI फिल्टर बनाना चाहता हूं जो केवल विंडोज 10 चलाने वाले कंप्यूटरों पर GPO लागू करने की अनुमति देता है। WMI क्वेरी इस तरह दिख सकती है:
Select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"
बनाए गए WMI फिल्टर एक्टिव डायरेक्टरी डोमेन में msWMI-Som क्लास ऑब्जेक्ट में DC=…, CN=System, CN=WMIPolicy, CN=SOM सेक्शन में स्टोर होते हैं, आप उन्हें adsiedit.msc का उपयोग करके ढूंढ और एडिट कर सकते हैं।
WMI फिल्टर बनाने के बाद, आप इसे एक विशिष्ट GPO से लिंक कर सकते हैं। GPMC कंसोल में वांछित पॉलिसी ढूंढें और स्कोप टैब पर, WMI फ़िल्टरिंग सेक्शन ड्रॉपडाउन सूची में, अपना WMI फिल्टर चुनें। इस उदाहरण में, मैं प्रिंटर असाइनमेंट पॉलिसी को केवल विंडोज 10 चलाने वाले कंप्यूटरों पर लागू करना चाहता हूं।
इस पॉलिसी के क्लाइंट पर लागू होने की प्रतीक्षा करें, या इसे कमांड gpupdate /force के साथ मैन्युअली अपडेट करें। क्लाइंट पर लागू पॉलिसी का विश्लेषण करते समय, gpresult /r कमांड का उपयोग करें। यदि पॉलिसी क्लाइंट को प्रभावित करती है, लेकिन WMI फिल्टर प्रतिबंधों के कारण लागू नहीं होती है, तो ऐसी पॉलिसी की gpresult रिपोर्ट में स्थिति फ़िल्टरिंग: डिनाइड (WMI फ़िल्टर) होगी।
GPO WMI फ़िल्टरिंग उदाहरण
आइए सबसे अधिक उपयोग किए जाने वाले WMI GPO फिल्टर के विभिन्न उदाहरणों पर एक नज़र डालें।
WMI फिल्टर की मदद से, आप OS प्रकार चुन सकते हैं:
- ProductType=1 - कोई भी डेस्कटॉप विंडोज संस्करण;
- ProductType=2 - एक्टिव डायरेक्टरी डोमेन कंट्रोलर;
- ProductType=3 - विंडोज सर्वर।
विंडोज संस्करण:
- विंडोज सर्वर 2016 और विंडोज 10 — 10.%
- विंडोज सर्वर 2012 R2 और विंडोज 8.1 — 6.3%
- विंडोज सर्वर 2012 और विंडोज 8 — 6.2%
- विंडोज सर्वर 2008 R2 और विंडोज 7 — 6.1%
- विंडोज सर्वर 2008 और विंडोज विस्टा — 6.0%
- विंडोज सर्वर 2003 — 5.2%
- विंडोज XP — 5.1%
- विंडोज 2000 — 5.0%
आप WMI क्वेरी में तार्किक ऑपरेटर AND और OR का उपयोग करके शर्तों को जोड़ सकते हैं। केवल विंडोज सर्वर 2016 चलाने वाले सर्वर पर पॉलिसी लागू करने के लिए, WMI क्वेरी कोड इस प्रकार होगा:
select * from Win32_OperatingSystem WHERE Version LIKE "10.%" AND (ProductType = "2" or ProductType = "3" )
विंडोज 8.1 के 32-बिट संस्करण चुनने के लिए:
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"
विशिष्ट बिल्ड नंबर के साथ विंडोज 10 चुनने के लिए, उदाहरण के लिए विंडोज 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"
WMI फिल्टर, जो केवल उन कंप्यूटरों पर लागू होता है जिनके नाम "lon-pc" से शुरू होते हैं (उदाहरण के लिए, इन डिवाइस पर USB ड्राइव अक्षम करने के लिए):
SELECT Name FROM Win32_ComputerSystem WHERE Name LIKE 'lon-pc%'
IP सबनेट पर GPO टार्गेट करने के लिए WMI फिल्टर का उपयोग करने का एक और उदाहरण लेख 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.%'))
केवल 1 GB से अधिक RAM वाले डिवाइस चुनने के लिए:
Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824
इंटरनेट एक्सप्लोरर 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"
पावरशेल का उपयोग करके GPO WMI फिल्टर टेस्ट करना
WMI क्वेरी बनाते समय, कभी-कभी आपको कंप्यूटर पर विभिन्न WMI पैरामीटर के मान प्राप्त करने की आवश्यकता होती है। आप Get-WMIObject कमांडलेट का उपयोग करके यह जानकारी प्राप्त कर सकते हैं। उदाहरण के लिए, मुझे 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 *
आप कंप्यूटर पर WMI फिल्टर टेस्ट करने के लिए पावरशेल का उपयोग कर सकते हैं। मान लीजिए आपने एक जटिल WMI क्वेरी लिखी है और जांचना चाहते हैं कि कंप्यूटर इस क्वेरी से मेल खाता है या नहीं। उदाहरण के लिए, आपने कंप्यूटर पर IE 11 की जांच के लिए एक WMI फिल्टर बनाया। आप get-wmiobject कमांडलेट का उपयोग करके टार्गेट कंप्यूटर पर इस WMI क्वेरी को टेस्ट कर सकते हैं:
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 फिल्टर क्वेरी से मेल नहीं खाता।
उदाहरण के लिए, विंडोज 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 क्वेरी को पूरा करने वाले केवल उन कंप्यूटरों पर GPO लागू करने के लिए WMI फिल्टर का उपयोग कैसे किया जाता है। कंप्यूटर पर किसी विशेष GPO के लागू न होने के कारणों का विश्लेषण करते समय WMI फिल्टर की उपस्थिति को ध्यान में रखना आवश्यक है।