কম্পিউটার টিউটোরিয়াল

WMI ফিল্টারিং দিয়ে গ্রুপ পলিসি সীমাবদ্ধ করুন

Group Policy (GPO)-তে WMI ফিল্টার ব্যবহার করে ক্লায়েন্টে পলিসি প্রয়োগে আরও ফ্লেক্সিবিলিটি আনা যায়। একটি WMI ফিল্টার হল WMI কোয়েরির সেট (WMI Query Language / WQL ব্যবহার করা হয়) যা ব্যবহার করে আপনি নির্দিষ্ট করতে পারেন কোন কম্পিউটারগুলোর ওপর একটি নির্দিষ্ট গ্রুপ পলিসি প্রয়োগ করা উচিত। উদাহরণস্বরূপ, WMI GPO ফিল্টার ব্যবহার করে একটি OU-এ লিংক করা পলিসি শুধু Windows 10 চলে কম্পিউটারগুলোর ওপর প্রয়োগ করা যায় (এই WMI ফিল্টার যুক্ত পলিসি অন্যান্য Windows ভার্সনवाले কম্পিউটারে প্রয়োগ হবে না)।

WMI GPO ফিল্টার কেন ব্যবহার করা হয়?

সাধারণত WMI (Windows Management Instrumentation) ব্যবহার করে গ্রুপ পলিসি ফিল্টারিং তখন করা হয় যখন একাধিক ডোমেন অবজেক্ট (ইউজার বা কম্পিউটার) ফ্ল্যাট AD স্ট্রাকচারে থাকে আলাদা OU-তে না থাকলে, অথবা যদি OS ভার্সন, নেটওয়ার্ক সেটিংস, ইনস্টলড সফটওয়্যার বা WMI দিয়ে সিলেক্ট করা যেকোনো অন্যান্য ক্রাইটেরিয়া অনুযায়ী গ্রুপ পলিসি প্রয়োগ করতে হয়। ক্লায়েন্ট যখন এমন গ্রুপ পলিসি প্রসেস করে, তখন Windows তার স্টেট চেক করে স্পেসিফাইড WMI কোয়েরির সাথে কম্প্লায়েন্সের জন্য, এবং যদি ফিল্টার কন্ডিশন পূরণ হয়, তবে GPO সেই কম্পিউটারে প্রয়োগ হয়।

WMI গ্রুপ পলিসি ফিল্টার প্রথমে Windows XP/Server 2003-এ আসলো, এবং latest Windows ভার্সনগুলোতে (Windows Server 2019, 2016 এবং Windows 10, 8.1) উপলব্ধ।

নতুন WMI ফিল্টার তৈরি করুন এবং GPO-তে লিংক করুন

নতুন WMI ফিল্টার তৈরি করতে Group Policy Management কনসোল (gpmc.msc) খুলুন এবং Forest → Domains → woshub.com → WMI Filters যান। এই সেকশনে AD ডোমেনের সব WMI ফিল্টার থাকে। নতুন WMI ফিল্টার তৈরি করুন (New)।

ফিল্টারের নাম এবং ডেসক্রিপশন (ঐচ্ছিক) দিন। ফিল্টারে WMI কোয়েরি কোড যোগ করতে Add বাটন চাপুন, WMI নেমস্পেসের নাম স্পেসিফাই করুন (ডিফল্ট root\CIMv2) এবং WMI কোড লিখুন।

WMI কোয়েরি ফরম্যাট:

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

উদাহরণস্বরূপ, আমি একটি WMI ফিল্টার তৈরি করতে চাই যেটি শুধু Windows 10 চলে কম্পিউটারগুলোর ওপর GPO প্রয়োগ করবে। WMI কোয়েরি হতে পারে:

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

তैयার WMI ফিল্টারগুলো Active Directory ডোমেনের msWMI-Som ক্লাস অবজেক্টে সংরক্ষিত থাকে সেকশনে DC=…, CN=System, CN=WMIPolicy, CN=SOM, adsiedit.msc দিয়ে সেগুলো খুঁজে এডিট করা যায়।

WMI ফিল্টার তৈরি হলে এটি নির্দিষ্ট GPO-তে লিংক করুন। GPMC কনসোলে পছন্দের পলিসি খুঁজে Scope ট্যাবে, WMI Filtering সেকশনের ড্রপডাউন লিস্ট থেকে আপনার WMI ফিল্টার সিলেক্ট করুন। উদাহরণে আমি প্রিন্টার অ্যাসাইনমেন্ট পলিসি শুধু Windows 10 চলে কম্পিউটারগুলোর ওপর প্রয়োগ করতে চাই।

পলিসি ক্লায়েন্টে প্রয়োগ হওয়ার অপেক্ষা করুন বা ম্যানুয়ালি আপডেট করুন gpupdate /force। ক্লায়েন্টে প্রয়োগ করা পলিসি বিশ্লেষণ করতে gpresult /r কমান্ড ব্যবহার করুন। যদি পলিসি ক্লায়েন্টকে প্রভাবিত করে কিন্তু WMI ফিল্টার রেস্ট্রিকশনের কারণে প্রয়োগ না হয়, তবে gpresult রিপোর্টে সেই পলিসির স্ট্যাটাস হবে Filtering: Denied (WMI Filter)।

GPO WMI ফিল্টারিং উদাহরণ

বিভিন্ন WMI GPO ফিল্টার উদাহরণ যা সবচেয়ে বেশি ব্যবহৃত হয়:

WMI ফিল্টার দিয়ে OS টাইপ বেছে নেওয়া:

  • 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 কোয়েরিতে লজিক্যাল অপারেটর AND এবং OR ব্যবহার করে কন্ডিশন কম্বাইন করা যায়। শুধু Windows Server 2016 চলে সার্ভারগুলোর ওপর পলিসি প্রয়োগ করার জন্য WMI কোড:

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

৩২-বিট Windows 8.1 সিলেক্ট করতে: select * from Win32_OperatingSystem WHERE Version like "6.3%" AND ProductType="1" AND OSArchitecture = "32-bit"

শুধু ৬৪-বিট OS-এ পলিসি প্রয়োগ করতে: 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 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"

কম্পিউটার নাম "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 সাবনেটের ক্লায়েন্টে পলিসি প্রয়োগ করতে: Select * FROM Win32_IP4RouteTable WHERE (Mask='255.255.255.255' AND (Destination Like 10.1.1.%' OR Destination Like '10.1.2.%'))

১ GB-র বেশি RAM থাকা ডিভাইস সিলেক্ট করতে: 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

সকল ক্লাস প্রোপার্টি দেখতে: Get-WMIObject Win32_OperatingSystem| Select *

PowerShell দিয়ে কম্পিউটারে WMI ফিল্টার টেস্ট করা যায়। ধরে নিন আপনি একটি জটিল WMI কোয়েরি লিখেছেন এবং চেক করতে চান কম্পিউটারটি এই কোয়েরির সাথে ম্যাচ করে কিনা। উদাহরণস্বরূপ, কম্পিউটারে IE 11 আছে কিনা চেক করার WMI ফিল্টার তৈরি করলেন। টার্গেট কম্পিউটারে এই WMI কোয়েরি টেস্ট করুন get-wmiobject cmdlet দিয়ে: get-wmiobject -query 'SELECT * FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="ieplore" AND extension="exe" AND version LIKE "11.%"'

যদি এই কমান্ড কিছু রিটার্ন করে, তবে কম্পিউটার কোয়েরি কন্ডিশন পূরণ করে। যদি get-wmiobject কিছুই রিটার্ন না করে, তবে কম্পিউটার WMI ফিল্টার কোয়েরির সাথে ম্যাচ করে না। উদাহরণস্বরূপ, Windows 10 এবং IE 11 থাকা কম্পিউটারে নির্দিষ্ট কমান্ড চালালে রিটার্ন করবে ভার্সন 11.0.17134.1 ইত্যাদি, অর্থাৎ IE 11 ইনস্টলড আছে এবং এই WMI ফিল্টার যুক্ত GPO এই কম্পিউটারে প্রয়োগ হবে।

সংক্ষেপে, WMI ফিল্টার ব্যবহার করে GPO শুধু ভিন্ন WMI কোয়েরি পূরণকারী কম্পিউটারগুলোর ওপর প্রয়োগ করার পদ্ধতি দেখালাম। কম্পিউটারে নির্দিষ্ট GPO প্রয়োগ না হয়ার কারণ বিশ্লেষণ করার সময় WMI ফিল্টারও বিবেচনায় রাখতে হবে।

  1. উইন্ডোজ ১০-এ লোকাল গ্রুপ পলিসি এডিটর খোলার পদ্ধতি

  2. Windows 10-এ Group Policy দ্বারা Windows Defender ডিজেবল সমস্যা সমাধান: ধাপে ধাপে ফিক্স

  3. উইন্ডোজ ১০-এ লোকাল গ্রুপ পলিসি এডিটর খোলার ৫+ সহজ পদ্ধতি

  4. উইন্ডোজ ১০ গ্রুপ পলিসি এডিটর মিসিং? Policy Plus দিয়ে ফিরিয়ে আনুন