Windows Management Instrumentation (WMI) হল একটি Microsoft Windows-এর একটি গুরুত্বপূর্ণ প্রযুক্তি, যা সিস্টেমের হার্ডওয়্যার, সফটওয়্যার, এবং নেটওয়ার্ক রিসোর্স সম্পর্কিত তথ্য সংগ্রহ, পরিচালনা এবং কনফিগার করতে ব্যবহৃত হয়। PowerShell-এর মাধ্যমে WMI ব্যবহার করে আপনি আপনার সিস্টেমের বিভিন্ন তথ্য আহরণ করতে, সিস্টেম কনফিগারেশন পরিবর্তন করতে এবং বিভিন্ন অ্যাডমিনিস্ট্রেটিভ কাজ করতে পারেন।
PowerShell এবং WMI একসাথে কাজ করলে সিস্টেমের ব্যাপক পরিসরে ডেটা এক্সেস করা এবং সিস্টেম অ্যাডমিনিস্ট্রেশন অনেক সহজ হয়ে ওঠে।
WMI কী?
WMI হল একটি উইন্ডোজ ভিত্তিক প্রযুক্তি যা সিস্টেম সম্পর্কিত তথ্য সংগ্রহ এবং নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। WMI একে অপরের সাথে যুক্ত অনেকগুলো ডাটাবেস এবং উপাদান দ্বারা তৈরি হয়, যা হার্ডওয়্যার এবং সফটওয়্যার উপাদান সম্পর্কিত তথ্য প্রদান করে। এটি COM (Component Object Model)-এর উপর ভিত্তি করে কাজ করে এবং XML এর মাধ্যমে ডেটা প্রদান করে।
WMI ব্যবহার করে আপনি:
- সিস্টেমের হার্ডওয়্যার তথ্য (যেমন CPU, RAM, ডিস্ক স্পেস)
- সিস্টেমের প্রোগ্রাম এবং সার্ভিসগুলি
- নেটওয়ার্ক কনফিগারেশন
- লগ ফাইল এবং ইভেন্ট লগ ডেটা সংগ্রহ করতে পারেন।
PowerShell-এ WMI ব্যবহার
PowerShell WMI ক্লাসের সাথে কাজ করতে Get-WmiObject এবং Get-CimInstance কমান্ড ব্যবহার করে। Get-WmiObject পুরানো কমান্ড হলেও এখনও ব্যবহার করা হয়, কিন্তু নতুন PowerShell সংস্করণে Get-CimInstance কমান্ডটি আরও উন্নত এবং কার্যকরী বলে মনে করা হয়।
WMI-তে অবজেক্টস্ এবং ক্লাস
WMI এর মধ্যে ক্লাসগুলির মাধ্যমে সিস্টেমের বিভিন্ন উপাদান সম্পর্কে তথ্য সংগ্রহ করা হয়। যেমন:
- Win32_OperatingSystem: অপারেটিং সিস্টেম সম্পর্কিত তথ্য
- Win32_Processor: প্রসেসর সম্পর্কিত তথ্য
- Win32_LogicalDisk: ডিস্ক সম্পর্কিত তথ্য
- Win32_Service: উইন্ডোজ সার্ভিস সম্পর্কিত তথ্য
WMI কমান্ড উদাহরণ
1. Get-WmiObject কমান্ডের মাধ্যমে সিস্টেম তথ্য সংগ্রহ করা
# সিস্টেমের অপারেটিং সিস্টেমের তথ্য সংগ্রহ করা
Get-WmiObject -Class Win32_OperatingSystem
এটি অপারেটিং সিস্টেমের তথ্য যেমন সংস্করণ, বিল্ড, নাম ইত্যাদি ফেরত দেবে।
2. Get-WmiObject দিয়ে প্রসেসর তথ্য সংগ্রহ করা
# সিস্টেমের প্রসেসরের তথ্য দেখতে
Get-WmiObject -Class Win32_Processor
এটি প্রসেসরের নাম, কোর সংখ্যা, গতি এবং অন্যান্য তথ্য প্রদর্শন করবে।
3. Get-WmiObject দিয়ে ডিস্ক স্পেস দেখতে
# সিস্টেমের লজিকাল ডিস্কের তথ্য দেখার জন্য
Get-WmiObject -Class Win32_LogicalDisk
এটি আপনার সিস্টেমের সমস্ত ডিস্ক (C:, D: ইত্যাদি) সম্পর্কিত তথ্য যেমন আকার, ব্যবহৃত স্পেস, ফ্রি স্পেস ইত্যাদি দেখাবে।
4. WMI ব্যবহার করে সার্ভিস কন্ট্রোল
PowerShell-এ WMI ব্যবহার করে একটি সার্ভিসের স্ট্যাটাস দেখতে এবং পরিবর্তন করতে পারেন।
# উইন্ডোজ সার্ভিস দেখতে
Get-WmiObject -Class Win32_Service
# একটি সার্ভিস স্টপ করা
Get-WmiObject -Class Win32_Service -Filter "Name = 'wuauserv'" | Stop-Service
এটি wuauserv সার্ভিসটি বন্ধ করবে (Windows Update সার্ভিস)। একইভাবে, Start-Service কমান্ড দিয়ে সার্ভিস চালু করা যায়।
Get-CimInstance ব্যবহার
PowerShell-এর নতুন সংস্করণে, Get-CimInstance কমান্ডটি উন্নত WMI কার্যকরীতা প্রদান করে এবং এটি CIM (Common Information Model) প্রোটোকল ব্যবহার করে যা আরও দ্রুত এবং নিরাপদ। এই কমান্ডটি Get-WmiObject এর বিকল্প হিসেবে ব্যবহৃত হয়।
1. Get-CimInstance দিয়ে অপারেটিং সিস্টেম তথ্য দেখা
# CIM ব্যবহার করে অপারেটিং সিস্টেম তথ্য
Get-CimInstance -ClassName Win32_OperatingSystem
2. Get-CimInstance দিয়ে প্রসেসর তথ্য দেখা
# CIM ব্যবহার করে প্রসেসর তথ্য
Get-CimInstance -ClassName Win32_Processor
3. Get-CimInstance দিয়ে ডিস্ক স্পেস দেখা
# CIM ব্যবহার করে ডিস্ক তথ্য
Get-CimInstance -ClassName Win32_LogicalDisk
WMI এবং PowerShell দিয়ে সিস্টেম মনিটরিং
PowerShell-এর মাধ্যমে WMI ব্যবহার করে আপনি বিভিন্ন সিস্টেম মনিটরিং কাজগুলো করতে পারেন, যেমন:
1. সার্ভিসের স্ট্যাটাস চেক করা
# সার্ভিসের স্ট্যাটাস চেক করা
$service = Get-WmiObject -Class Win32_Service -Filter "Name = 'wuauserv'"
$service.State
2. CPU ব্যবহার দেখতে
# প্রসেসরের বর্তমান ব্যবহার চেক করা
Get-WmiObject -Class Win32_Processor | Select-Object LoadPercentage
3. লগ ফাইল দেখতে
# সিস্টেমের ইভেন্ট লগ দেখতে
Get-WmiObject -Class Win32_NTLogEvent -Filter "Logfile = 'Application'"
এটি অ্যাপ্লিকেশন লগ দেখতে সাহায্য করবে।
সারাংশ
PowerShell এবং WMI একসাথে ব্যবহৃত হলে, এটি সিস্টেম অ্যাডমিনিস্ট্রেশন এবং মনিটরিংকে আরও সহজ এবং কার্যকরী করে তোলে। WMI দিয়ে আপনি আপনার সিস্টেমের হার্ডওয়্যার, সফটওয়্যার, সার্ভিস, এবং ইভেন্ট লগসহ নানা গুরুত্বপূর্ণ তথ্য সংগ্রহ এবং নিয়ন্ত্রণ করতে পারেন। PowerShell-এর মাধ্যমে WMI ক্লাসের সাথে ইন্টারঅ্যাক্ট করে অটোমেটিক স্ক্রিপ্টিং এবং সিস্টেম ম্যানেজমেন্ট অনেক সহজ হয়ে যায়।
WMI (Windows Management Instrumentation) হল Windows অপারেটিং সিস্টেমের একটি অন্তর্নিহিত ফিচার, যা সিস্টেম অ্যাডমিনিস্ট্রেটরদের এবং ডেভেলপারদের বিভিন্ন সিস্টেম তথ্য, কনফিগারেশন, এবং ম্যানেজমেন্টের জন্য API এবং কমান্ডসেট সরবরাহ করে। PowerShell-এর মাধ্যমে WMI ব্যবহার করে আপনি সিস্টেমের বিভিন্ন পর্যায়ে নজর রাখতে পারেন, যেমন হার্ডওয়্যার, সফটওয়্যার, নেটওয়ার্কিং, সিকিউরিটি, এবং আরও অনেক কিছু।
PowerShell এবং WMI একসাথে কাজ করে সিস্টেম অ্যাডমিনিস্ট্রেশন ও অটোমেশন কাজকে অনেক সহজ করে তোলে। PowerShell-এ WMI কমান্ডলেটের মাধ্যমে আপনি সরাসরি সিস্টেমের অবস্থা, কনফিগারেশন, এবং কার্যকলাপ সম্পর্কে বিস্তারিত তথ্য সংগ্রহ করতে পারেন।
WMI কী?
WMI হল Windows অপারেটিং সিস্টেমের একটি অন্তর্নিহিত টুল, যা সিস্টেম এবং নেটওয়ার্ক রিসোর্সের অবস্থা সম্পর্কে তথ্য দেয়। WMI ম্যানেজমেন্ট ডেটা এবং ম্যানেজমেন্ট তথ্যের জন্য একটি স্ট্যান্ডার্ড প্রোটোকল এবং API সরবরাহ করে। WMI-কে আপনি সিস্টেমের অন্তর্নিহিত সেবা, সিস্টেম কনফিগারেশন, অ্যাপ্লিকেশন ইনস্টলেশন, ইভেন্ট লগিং এবং আরও অনেক কিছু দেখতে এবং পরিচালনা করতে ব্যবহার করতে পারেন।
WMI প্রযুক্তি ডটনেট, COM, DCOM, এবং XML ওয়েব সার্ভিস ব্যবহার করে সিস্টেম তথ্য এবং ব্যবস্থাপনা কাজ সম্পন্ন করে। এটি OLE (Object Linking and Embedding) Automation ব্যবহার করে স্ক্রিপ্টিং ভাষার মাধ্যমে ব্যবহৃত হয়, যেমন PowerShell।
PowerShell এ WMI ব্যবহার
PowerShell-এ WMI ব্যবহার করতে Get-WmiObject এবং Get-CimInstance কমান্ডলেট ব্যবহার করা হয়। এর মাধ্যমে আপনি WMI কনসোলের মাধ্যমে সিস্টেমের বিভিন্ন অংশের তথ্য যেমন CPU, মেমোরি, ডিস্ক, নেটওয়ার্ক ড্রাইভ ইত্যাদি সম্পর্কে বিস্তারিত তথ্য পেতে পারেন।
Get-WmiObject কমান্ড
Get-WmiObject PowerShell কমান্ডলেটটি WMI ক্লাস থেকে তথ্য নিয়ে আসে। এটি Windows-এর বিভিন্ন সিস্টেম অবস্থা এবং কনফিগারেশন জানতে ব্যবহার করা হয়।
Get-WmiObject -Class Win32_OperatingSystem
এই কমান্ডটি সিস্টেমের অপারেটিং সিস্টেম সম্পর্কিত তথ্য প্রদান করবে, যেমন ভার্সন, বিল্ড নম্বর, ইন্সটলেশন তারিখ ইত্যাদি।
WMI ক্লাস কি?
WMI ক্লাস হল সিস্টেমের একটি নির্দিষ্ট অংশের জন্য কাঠামোবদ্ধ ডেটা রেপ্রেজেন্টেশন। উদাহরণস্বরূপ:
- Win32_OperatingSystem: অপারেটিং সিস্টেমের তথ্য
- Win32_LogicalDisk: লজিক্যাল ডিস্কের তথ্য
- Win32_Processor: প্রসেসরের তথ্য
- Win32_NetworkAdapter: নেটওয়ার্ক অ্যাডাপ্টারের তথ্য
এখানে একটি উদাহরণ দেওয়া হলো যা Win32_LogicalDisk ক্লাস থেকে সমস্ত ডিস্ক ড্রাইভের তথ্য সংগ্রহ করবে:
Get-WmiObject -Class Win32_LogicalDisk
এটি ড্রাইভের তথ্য (যেমন ড্রাইভ লেটার, টাইপ, ফ্রি স্পেস, মোট স্পেস) প্রদর্শন করবে।
Get-CimInstance কমান্ড
PowerShell-এর নতুন সংস্করণগুলিতে Get-CimInstance কমান্ডটি ব্যবহৃত হয়, যা Get-WmiObject এর চেয়ে উন্নত এবং দ্রুত। এটি CIM (Common Information Model) ব্যবহার করে কাজ করে এবং WMI সিস্টেমের উন্নত সংস্করণ। Get-CimInstance কমান্ডটি একইভাবে WMI ক্লাস থেকে তথ্য নিয়ে আসে, তবে এটি আরও দ্রুত এবং লাইটওয়েট।
Get-CimInstance -ClassName Win32_OperatingSystem
এটি একই ফলাফল দেবে, যেমন Get-WmiObject কমান্ড।
WMI এর সাথে কাজ করার উদাহরণ
PowerShell-এ WMI দিয়ে বিভিন্ন গুরুত্বপূর্ণ সিস্টেম তথ্য পেতে পারেন, যেমন:
CPU তথ্য দেখতে:
Get-WmiObject -Class Win32_Processor
এই কমান্ডটি CPU সম্পর্কে তথ্য যেমন নাম, সংখ্যা, গতি, এবং কোর সংখ্যা প্রদর্শন করবে।
সিস্টেম মেমোরি সম্পর্কে তথ্য:
Get-WmiObject -Class Win32_PhysicalMemory
এই কমান্ডটি সিস্টেমের শারীরিক মেমোরির তথ্য প্রদান করবে, যেমন মেমোরির ক্ষমতা, স্পিড, এবং প্রকার।
ডিস্ক স্পেস এবং ব্যবহার:
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, Size, FreeSpace
এটি সমস্ত লজিক্যাল ডিস্কের (যেমন C, D, ইত্যাদি) ড্রাইভের আকার এবং ফ্রি স্পেস সম্পর্কে তথ্য দেবে।
নেটওয়ার্ক অ্যাডাপ্টার সম্পর্কিত তথ্য:
Get-WmiObject -Class Win32_NetworkAdapter
এটি নেটওয়ার্ক অ্যাডাপ্টার সম্পর্কিত তথ্য প্রদর্শন করবে, যেমন নেটওয়ার্ক কানেকশনের অবস্থা, গতি, নাম ইত্যাদি।
WMI দিয়ে Windows ইভেন্ট লগ চেক করা
PowerShell এবং WMI ব্যবহার করে আপনি Windows ইভেন্ট লগও দেখতে পারেন। উদাহরণস্বরূপ, সিস্টেম ইভেন্ট লগ দেখতে:
Get-WmiObject -Class Win32_NTLogEvent -Filter "Logfile = 'System'" | Select-Object Message
এটি সিস্টেম লগের সমস্ত ইভেন্টের বার্তা প্রদর্শন করবে।
WMI এবং PowerShell দিয়ে সিস্টেম ম্যানেজমেন্ট
PowerShell-এ WMI ব্যবহার করে আপনি Windows সিস্টেমের অবস্থা জানতে এবং সিস্টেম কনফিগারেশন পরিচালনা করতে পারেন। আপনি বিভিন্ন তথ্য সংগ্রহ করতে পারেন, যেমন:
- হার্ডওয়্যার তথ্য (CPU, RAM, ডিস্ক)
- সফটওয়্যার ইনস্টলেশন
- সিস্টেম সার্ভিসের অবস্থা
- নেটওয়ার্ক সংযোগ
- প্রিন্টার কনফিগারেশন
এগুলি পাওয়ারশেল স্ক্রিপ্টে ব্যবহার করে আপনি সিস্টেম অ্যাডমিনিস্ট্রেশনকে অটোমেটেড এবং সহজ করতে পারেন।
উপসংহার
PowerShell এবং WMI একসাথে ব্যবহার করলে সিস্টেমের গভীর পর্যায়ে প্রবেশ করা এবং সেটির অবস্থা বিশ্লেষণ করা সম্ভব হয়। WMI PowerShell-এ সিস্টেমের বিভিন্ন তথ্য পেতে এবং ম্যানেজমেন্ট টাস্কগুলো অটোমেট করতে একটি শক্তিশালী মাধ্যম। PowerShell দিয়ে WMI ব্যবহার করার মাধ্যমে আপনি কেবল সিস্টেমের তথ্য পেতে পারবেন না, বরং সিস্টেম কনফিগারেশন ও ম্যানেজমেন্টের কাজও দ্রুত সম্পন্ন করতে পারবেন।
PowerShell-এ Get-WmiObject এবং CIM Cmdlets হল এমন কমান্ডলেট যা আপনাকে উইন্ডোজ ম্যানেজমেন্ট ইনস্ট্রুমেন্টেশন (WMI) এবং কমন ইনফ্রাস্ট্রাকচার ম্যানেজমেন্ট (CIM) সিস্টেমের তথ্য অ্যাক্সেস করতে সহায়তা করে। এগুলি ব্যবহৃত হয় সিস্টেম প্রশাসন, ডিভাইস ইনফরমেশন, সফটওয়্যার স্ট্যাটাস, এবং অন্যান্য হার্ডওয়্যার সম্পর্কিত তথ্য পাওয়ার জন্য। WMI এবং CIM হল Microsoft-এর প্রোটোকল যা সিস্টেম রিসোর্সের ইনফরমেশন সংগ্রহ করতে ব্যবহৃত হয়।
WMI (Windows Management Instrumentation)
WMI হল একটি Microsoft প্রযুক্তি যা কম্পিউটার সিস্টেম, অপারেটিং সিস্টেম এবং নেটওয়ার্ক উপাদানগুলোর সম্পর্কে ইনফরমেশন সংগ্রহ ও ম্যানেজ করার জন্য ব্যবহৃত হয়। এটি সাধারণত Win32_Classes-এর মধ্যে ডেটা সংরক্ষণ করে এবং বিভিন্ন ক্লাসের মাধ্যমে অ্যাক্সেস করা হয়।
Get-WmiObject কমান্ডলেটটি WMI ক্লাসের ডেটা পাওয়ার জন্য ব্যবহার করা হয় এবং এটি Windows সিস্টেমের বিভিন্ন কম্পোনেন্ট থেকে তথ্য বের করতে সক্ষম। এই কমান্ডলেটটি WMI ক্লাসের মাধ্যমে ডেটা রিটার্ন করে, যা একাধিক সিস্টেম ইনফরমেশন যেমন প্রোসেস, ডিস্ক, নেটওয়ার্ক, এবং হার্ডওয়্যার ডিভাইসের তথ্য সরবরাহ করে।
Get-WmiObject ব্যবহারের উদাহরণ:
CPU ইনফরমেশন দেখানো:
Get-WmiObject -Class Win32_Processorএটি Win32_Processor ক্লাস থেকে CPU সম্পর্কিত ইনফরমেশন প্রদর্শন করবে যেমন মডেল, স্পিড, কোর সংখ্যা ইত্যাদি।
সিস্টেম ইনফরমেশন দেখানো:
Get-WmiObject -Class Win32_ComputerSystemএটি কম্পিউটার সিস্টেম সম্পর্কিত ইনফরমেশন দেখাবে, যেমন মেমরি সাইজ, মাদারবোর্ড, এবং সিস্টেমের প্রোফাইল।
সার্ভিসেস চেক করা:
Get-WmiObject -Class Win32_Serviceএটি সিস্টেমের সমস্ত সেবা (services) এর স্ট্যাটাস দেখাবে (যেমন চলমান বা বন্ধ)।
ড্রাইভ স্টেটাস দেখা:
Get-WmiObject -Class Win32_LogicalDiskএটি সিস্টেমের বিভিন্ন ডিস্কের তথ্য দেখাবে, যেমন ডিস্কের সাইজ, ফ্রি স্পেস, এবং ফাইল সিস্টেম।
CIM (Common Information Model)
CIM হল একটি আরও আধুনিক প্রযুক্তি যা WMI এর একটি উন্নত সংস্করণ এবং এটি WS-Man প্রোটোকল ব্যবহার করে রিমোট সিস্টেম থেকে তথ্য সংগ্রহ করতে সক্ষম। CIM-এর সাহায্যে আপনি remote management এবং cross-platform সিস্টেমে ব্যবহৃত ডেটা সংগ্রহ করতে পারেন।
CIM Cmdlets সাধারণত CIM Cmdlet হিসেবে পরিচিত, এবং এগুলি Get-CimInstance এবং Set-CimInstance কমান্ডলেট দ্বারা পরিচালিত হয়। CIM WMI এর চেয়ে অধিক কার্যকরী এবং দ্রুত।
Get-CimInstance ব্যবহারের উদাহরণ:
CPU ইনফরমেশন CIM এর মাধ্যমে:
Get-CimInstance -ClassName Win32_Processorএটি Win32_Processor ক্লাস থেকে CPU সম্পর্কিত তথ্য রিটার্ন করবে, এবং WMI থেকে তথ্য পাওয়ার তুলনায় এটি আরও দ্রুত এবং সহজ।
সিস্টেম ইনফরমেশন CIM ব্যবহার করে:
Get-CimInstance -ClassName Win32_ComputerSystemএটি সিস্টেম সম্পর্কিত বিস্তারিত তথ্য দেখাবে, যেমন মেমরি সাইজ, সিস্টেমের আর্কিটেকচার এবং মাদারবোর্ড।
সার্ভিস তথ্য CIM ব্যবহার করে:
Get-CimInstance -ClassName Win32_Serviceএটি সমস্ত সিস্টেম সার্ভিস সম্পর্কিত তথ্য প্রদর্শন করবে।
ড্রাইভ ইনফরমেশন CIM দিয়ে:
Get-CimInstance -ClassName Win32_LogicalDiskএটি সিস্টেমের ড্রাইভগুলোর অবস্থা, সাইজ, ফ্রি স্পেস ইত্যাদি তথ্য প্রদর্শন করবে।
WMI এবং CIM Cmdlets এর মধ্যে পার্থক্য
| বিষয় | WMI Cmdlets (Get-WmiObject) | CIM Cmdlets (Get-CimInstance) |
|---|---|---|
| প্রযুক্তি | WMI (Windows Management Instrumentation) | CIM (Common Information Model) |
| প্রোটোকল | DCOM (Distributed Component Object Model) | WS-Man (Web Services-Management) |
| পারফরম্যান্স | তুলনামূলকভাবে ধীর | অধিক দ্রুত এবং কার্যকরী |
| রিমোট ম্যানেজমেন্ট | WMI পোর্ট ব্যবহার করে রিমোট ব্যবস্থাপনা করা যায় | CIM পোর্ট ব্যবহার করে রিমোট ব্যবস্থাপনা করা যায় |
| ক্লাস এবং কনফিগারেশন | WMI এর জন্য একাধিক ক্লাস নির্ধারিত আছে | CIM আধুনিক, ক্রস-প্ল্যাটফর্ম সাপোর্ট করে |
WMI এবং CIM Cmdlets এর সেরা ব্যবহার
- Get-WmiObject:
- Legacy সিস্টেম এবং পুরনো Windows সংস্করণের জন্য ভালো।
- WinRM বা WS-Man প্রোটোকল থেকে রিমোট ম্যানেজমেন্টের তুলনায় এটি ধীর হতে পারে।
- Get-CimInstance:
- নতুন Windows সংস্করণে এবং আধুনিক সিস্টেমে দ্রুত কার্যকরী।
- Cross-platform ব্যবহারের জন্য, যেমন Linux বা macOS-এ ব্যবহৃত PowerShell-এ অধিক কার্যকরী।
সারাংশ
PowerShell-এ Get-WmiObject এবং CIM Cmdlets দুটি গুরুত্বপূর্ণ টুল যা সিস্টেমের ইনফরমেশন সংগ্রহ করতে ব্যবহৃত হয়। Get-WmiObject WMI প্রোটোকল ব্যবহার করে পুরনো সিস্টেমে ইনফরমেশন সংগ্রহ করার জন্য উপযুক্ত, যেখানে Get-CimInstance CIM প্রোটোকল ব্যবহার করে আধুনিক এবং ক্রস-প্ল্যাটফর্ম সিস্টেমে দ্রুত ও কার্যকরীভাবে তথ্য সংগ্রহ করতে সাহায্য করে।
PowerShell একটি শক্তিশালী টুল যা সিস্টেমের হার্ডওয়্যার এবং সফটওয়্যার তথ্য সংগ্রহ করতে ব্যবহার করা যেতে পারে। এর মাধ্যমে আপনি বিভিন্ন কমান্ড ব্যবহার করে আপনার সিস্টেমের বিস্তারিত তথ্য বের করতে পারেন যেমন প্রসেসর, র্যাম, ডিস্ক স্পেস, ইনস্টল করা সফটওয়্যার, এবং আরো অনেক কিছু।
System Hardware Information Fetch করা
PowerShell ব্যবহার করে আপনি সিস্টেমের হার্ডওয়্যার সম্পর্কিত বিভিন্ন তথ্য সহজেই সংগ্রহ করতে পারেন। এর জন্য Get-WmiObject কমান্ডটি খুবই কার্যকর। এছাড়াও, PowerShell 7 এবং পরবর্তী সংস্করণে Get-CimInstance কমান্ডও ব্যবহার করা যেতে পারে, যা Get-WmiObject এর চেয়ে আরো দ্রুত এবং দক্ষ।
1. প্রসেসর (Processor) তথ্য সংগ্রহ করা
আপনি সিস্টেমের প্রসেসর সম্পর্কিত তথ্য Get-WmiObject বা Get-CimInstance ব্যবহার করে সংগ্রহ করতে পারেন।
Get-WmiObject -Class Win32_Processor
এটি প্রসেসরের নাম, মডেল, কোর সংখ্যা, লজিক্যাল প্রসেসরের সংখ্যা এবং অন্যান্য বৈশিষ্ট্য প্রদর্শন করবে।
2. র্যাম (RAM) তথ্য সংগ্রহ করা
আপনি সিস্টেমের র্যাম সম্পর্কিত তথ্য নিম্নলিখিত কমান্ডটি ব্যবহার করে সংগ্রহ করতে পারেন:
Get-WmiObject -Class Win32_PhysicalMemory
এটি র্যামের আকার (size), স্পিড, মডেল, এবং অন্যান্য তথ্য দেখাবে।
3. ডিস্ক স্পেস (Disk Space) তথ্য সংগ্রহ করা
ডিস্কের ব্যবহৃত এবং উপলব্ধ স্পেস জানার জন্য আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
Get-WmiObject -Class Win32_LogicalDisk
এটি আপনার সিস্টেমের সমস্ত ডিস্কের পার্টিশন, মোট স্পেস, ব্যবহৃত স্পেস এবং উপলব্ধ স্পেসের তথ্য দেখাবে।
4. মাদারবোর্ড (Motherboard) তথ্য সংগ্রহ করা
আপনার সিস্টেমের মাদারবোর্ডের মডেল, নির্মাতা, এবং সংস্করণ জানার জন্য:
Get-WmiObject -Class Win32_BaseBoard
5. নেটওয়ার্ক অ্যাডাপ্টার (Network Adapter) তথ্য সংগ্রহ করা
আপনার সিস্টেমের নেটওয়ার্ক অ্যাডাপ্টারের তথ্য দেখতে নিচের কমান্ড ব্যবহার করতে পারেন:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object {$_.IPEnabled -eq $true}
এটি সক্রিয় নেটওয়ার্ক অ্যাডাপ্টারের তথ্য প্রদর্শন করবে, যেমন IP ঠিকানা, সাবনেট মাস্ক, গেটওয়ে, ইত্যাদি।
6. ভিডিও অ্যাডাপ্টার (Video Adapter) তথ্য সংগ্রহ করা
সিস্টেমের ভিডিও বা গ্রাফিক্স কার্ড সম্পর্কিত তথ্য দেখতে:
Get-WmiObject -Class Win32_VideoController
এটি গ্রাফিক্স কার্ডের নাম, মডেল, ড্রাইভার, ইত্যাদি তথ্য দেখাবে।
System Software Information Fetch করা
PowerShell ব্যবহার করে ইনস্টল করা সফটওয়্যার, অপারেটিং সিস্টেমের সংস্করণ, প্যাচ এবং আপডেট সম্পর্কিত তথ্যও সহজেই সংগ্রহ করা যায়।
1. অপারেটিং সিস্টেমের তথ্য সংগ্রহ করা
আপনার সিস্টেমের অপারেটিং সিস্টেমের নাম, সংস্করণ, বিল্ড, এবং আর্কিটেকচার জানার জন্য:
Get-WmiObject -Class Win32_OperatingSystem
এটি অপারেটিং সিস্টেমের নাম, সংস্করণ, বিল্ড, ইনস্টলেশন তারিখ এবং অন্যান্য গুরুত্বপূর্ণ তথ্য দেখাবে।
2. ইনস্টল করা সফটওয়্যার তালিকা
সিস্টেমে ইনস্টল করা সমস্ত সফটওয়্যারের তালিকা এবং তাদের সংস্করণ দেখতে:
Get-WmiObject -Class Win32_Product
এই কমান্ডটি সমস্ত ইনস্টল করা সফটওয়্যার এবং তাদের সংস্করণ প্রদর্শন করবে, কিন্তু এটি কিছুটা ধীর হতে পারে কারণ এটি সফটওয়্যারগুলি স্ক্যান করতে সময় নেয়।
3. আপডেট এবং প্যাচ সম্পর্কিত তথ্য
Windows আপডেট এবং ইনস্টল করা প্যাচ সম্পর্কিত তথ্য জানার জন্য:
Get-WmiObject -Class Win32_QuickFixEngineering
এটি ইনস্টল করা Windows আপডেটের তথ্য দেখাবে, যেমন কিড, বর্ণনা, ইনস্টলেশন তারিখ ইত্যাদি।
4. সফটওয়্যার ভার্সন চেক করা
আপনার সিস্টেমে একটি নির্দিষ্ট সফটওয়্যার যেমন PowerShell, .NET Framework ইত্যাদির সংস্করণ জানতে:
(Get-Command powershell).FileVersionInfo
এটি PowerShell এর সংস্করণ সম্পর্কিত তথ্য দেখাবে। আপনি যেকোনো অন্য সফটওয়্যারের জন্যও এই পদ্ধতি ব্যবহার করতে পারেন।
PowerShell দিয়ে তথ্য আউটপুট ফরম্যাট করা
PowerShell-এ তথ্য সংগ্রহের পর, আপনি ফলাফলটি আরো ব্যবহারযোগ্য বা পড়তে সহজ করতে বিভিন্ন আউটপুট ফরম্যাট ব্যবহার করতে পারেন। কিছু জনপ্রিয় ফরম্যাট হলো:
1. Select-Object (এ specific properties নির্বাচন করা)
Get-WmiObject -Class Win32_Processor | Select-Object Name, Manufacturer, MaxClockSpeed
এটি শুধুমাত্র প্রসেসরের নাম, নির্মাতা এবং সর্বাধিক ঘড়ি স্পিড প্রদর্শন করবে।
2. Export-CSV (CSV ফাইল হিসেবে আউটপুট সংরক্ষণ করা)
Get-WmiObject -Class Win32_OperatingSystem | Select-Object Caption, Version | Export-Csv -Path "C:\OS_Info.csv" -NoTypeInformation
এটি অপারেটিং সিস্টেমের তথ্য একটি CSV ফাইলে সংরক্ষণ করবে।
3. Format-List (সকল প্রপার্টি আউটপুট দেখানো)
Get-WmiObject -Class Win32_PhysicalMemory | Format-List *
এটি র্যামের সকল প্রপার্টি লিস্ট আউটপুট হিসেবে দেখাবে।
উপসংহার
PowerShell এর মাধ্যমে সিস্টেমের হার্ডওয়্যার এবং সফটওয়্যার সম্পর্কিত তথ্য সংগ্রহ করা অত্যন্ত সহজ এবং দ্রুত। এর মাধ্যমে আপনি সিস্টেম প্রশাসনকে অটোমেট করতে পারেন, এবং সিস্টেমের অবস্থান বা যেকোনো সমস্যা সহজে চিহ্নিত করতে পারেন। PowerShell এর শক্তিশালী কমান্ড এবং স্ক্রিপ্টিং ক্ষমতা ব্যবহার করে আপনি খুব সহজেই প্রয়োজনীয় তথ্য বের করতে পারেন।
WMI (Windows Management Instrumentation) হলো Windows অপারেটিং সিস্টেমের একটি গুরুত্বপূর্ণ ফিচার যা সিস্টেম, সফটওয়্যার, হার্ডওয়্যার এবং অন্যান্য সিস্টেম উপাদানগুলোর তথ্য সংগ্রহ করতে সাহায্য করে। WQL (WMI Query Language) হলো একটি SQL-এর মতো কুয়েরি ভাষা যা WMI ডেটা সংগ্রহের জন্য ব্যবহৃত হয়। এটি WMI এর মাধ্যমে সংগ্রহ করা তথ্যগুলোর মধ্যে সঠিক তথ্য খুঁজে বের করার জন্য খুবই কার্যকরী।
WQL আপনাকে সিস্টেমের বিভিন্ন অংশের তথ্য যেমন হার্ডওয়্যার, সফটওয়্যার, নেটওয়ার্ক কনফিগারেশন, এবং অন্যান্য সিস্টেম স্টেটাস সম্পর্কে বিস্তারিত তথ্য পেতে সাহায্য করে।
WQL কী এবং কিভাবে কাজ করে
WQL ব্যবহার করার জন্য PowerShell-এ Get-WmiObject কমান্ডলেট ব্যবহার করা হয়, যা WMI ক্লাস থেকে ডেটা রিট্রিভ করার জন্য ব্যবহৃত হয়। WQL আসলে একটি সাবসেট SQL-এর এবং এটি SELECT, FROM, এবং WHERE কিওয়ার্ড ব্যবহার করে কুয়েরি তৈরি করতে পারে।
WQL সিনট্যাক্স
WQL কুয়েরির সাধারণ গঠন হলো:
SELECT <column_name> FROM <class_name> WHERE <condition>
উদাহরণস্বরূপ, যদি আপনি আপনার সিস্টেমের সমস্ত প্রোগ্রামের নাম দেখতে চান, তবে আপনি Win32_Product ক্লাসের সাথে একটি WQL কুয়েরি ব্যবহার করতে পারেন।
WQL-এ সাধারণ ক্লাস এবং তাদের ব্যবহার
PowerShell-এ WQL কুয়েরি ব্যবহার করার জন্য বিভিন্ন WMI ক্লাস রয়েছে, যা সিস্টেমের বিভিন্ন অংশের তথ্য ধারণ করে। কিছু সাধারণ WMI ক্লাস হলো:
- Win32_OperatingSystem: অপারেটিং সিস্টেমের তথ্য
- Win32_ComputerSystem: কম্পিউটারের হার্ডওয়্যার সম্পর্কিত তথ্য
- Win32_Processor: প্রসেসরের তথ্য
- Win32_PhysicalMemory: র্যামের তথ্য
- Win32_NetworkAdapter: নেটওয়ার্ক অ্যাডাপ্টারের তথ্য
- Win32_LogicalDisk: ড্রাইভ বা ডিস্কের তথ্য
- Win32_Product: ইনস্টল করা সফটওয়্যারের তথ্য
PowerShell-এ WQL ব্যবহার
PowerShell-এ WQL কুয়েরি চালানোর জন্য Get-WmiObject কমান্ডলেট ব্যবহার করা হয়। আপনি কুয়েরি লিখে সিস্টেমের বিভিন্ন উপাদান থেকে তথ্য সংগ্রহ করতে পারেন।
উদাহরণ ১: অপারেটিং সিস্টেমের তথ্য পাওয়া
আপনি Win32_OperatingSystem ক্লাস ব্যবহার করে অপারেটিং সিস্টেমের তথ্য পেতে পারেন।
Get-WmiObject -Query "SELECT * FROM Win32_OperatingSystem"
এটি আপনার সিস্টেমের অপারেটিং সিস্টেম সম্পর্কিত সমস্ত তথ্য দেখাবে।
উদাহরণ ২: প্রসেসরের তথ্য পাওয়া
Win32_Processor ক্লাসের মাধ্যমে প্রসেসর সম্পর্কিত তথ্য সংগ্রহ করতে পারেন।
Get-WmiObject -Query "SELECT * FROM Win32_Processor"
এটি আপনার সিস্টেমের প্রসেসর সম্পর্কিত তথ্য, যেমন প্রসেসরের গতি, কোর সংখ্যা, এবং অন্যান্য বৈশিষ্ট্য দেখাবে।
উদাহরণ ৩: হার্ড ডিস্কের তথ্য পাওয়া
Win32_LogicalDisk ক্লাস ব্যবহার করে আপনি ডিস্ক বা হার্ড ড্রাইভ সম্পর্কিত তথ্য সংগ্রহ করতে পারেন।
Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk WHERE DriveType=3"
এটি আপনার সিস্টেমের হর্ড ডিস্ক ড্রাইভ সম্পর্কিত তথ্য দেখাবে। DriveType=3 এখানে হার্ড ডিস্কের (Local Disk) জন্য ব্যবহৃত হয়।
উদাহরণ ৪: ইনস্টল করা সফটওয়্যার
আপনি Win32_Product ক্লাস ব্যবহার করে ইনস্টল করা সফটওয়্যার সম্পর্কিত তথ্য দেখতে পারেন।
Get-WmiObject -Query "SELECT * FROM Win32_Product"
এটি আপনার সিস্টেমে ইনস্টল করা সমস্ত সফটওয়্যারের তথ্য দেখাবে।
WQL কুয়েরির উন্নত ব্যবহার
WQL কুয়েরির মাধ্যমে আরও সুনির্দিষ্ট এবং ফিল্টারড ডেটা পাওয়ার জন্য WHERE ক্লজ ব্যবহার করা হয়, যাতে আপনি নির্দিষ্ট শর্তে ডেটা বের করতে পারেন।
উদাহরণ ৫: একটি নির্দিষ্ট প্রসেসর মডেল খুঁজে বের করা
Get-WmiObject -Query "SELECT * FROM Win32_Processor WHERE Name='Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz'"
এটি আপনার সিস্টেমে ইনস্টল করা Intel(R) Core(TM) i7-9700K CPU এর তথ্য দেখাবে।
উদাহরণ ৬: নির্দিষ্ট ডিস্ক ড্রাইভের ফ্রি স্পেস দেখা
Get-WmiObject -Query "SELECT FreeSpace, DeviceID FROM Win32_LogicalDisk WHERE DriveType=3"
এটি আপনার হার্ড ডিস্কের ফ্রি স্পেস এবং ডিভাইস আইডি দেখাবে।
উদাহরণ ৭: সমস্ত নেটওয়ার্ক অ্যাডাপ্টারের তথ্য
Get-WmiObject -Query "SELECT * FROM Win32_NetworkAdapter WHERE NetEnabled=True"
এটি আপনার সিস্টেমের সমস্ত অ্যাকটিভ নেটওয়ার্ক অ্যাডাপ্টারের তথ্য দেখাবে।
WQL এর সুবিধা
- কম্পিউটার ম্যানেজমেন্ট: WQL ব্যবহার করে আপনি দূরবর্তী সিস্টেমের হাওয়ার্ডওয়্যার এবং সফটওয়্যার সম্পর্কিত তথ্য খুব সহজেই জানতে পারেন।
- স্ক্রিপ্টিং ও অটোমেশন: WQL-কে PowerShell স্ক্রিপ্টে ব্যবহার করে সিস্টেমের তথ্য সঙ্গ্ৰহ, কনফিগারেশন ও রক্ষণাবেক্ষণ কাজকে অটোমেট করতে পারেন।
- রিমোট সিস্টেম ম্যানেজমেন্ট: WQL ব্যবহার করে আপনি একটি রিমোট সিস্টেমের হার্ডওয়্যার এবং সফটওয়্যার সম্পর্কিত তথ্য সহজেই রিট্রিভ করতে পারেন, বিশেষ করে যখন বহু সিস্টেমের ডেটা একসাথে দরকার।
- কাস্টম কুয়েরি: আপনি কাস্টম কুয়েরি তৈরি করে সিস্টেমের নির্দিষ্ট তথ্য সংগ্রহ করতে পারেন।
WQL-এর মাধ্যমে আপনি PowerShell-এর পূর্ণ ক্ষমতা ব্যবহার করে সিস্টেম সম্পর্কিত বিশদ তথ্য পেতে পারবেন, যা সিস্টেম অ্যাডমিনিস্ট্রেশন ও ম্যানেজমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ।
Read more