ভূমিকা
পাওয়ারশেল ব্যবহার করে উইন্ডোজ-চালিত কম্পিউটারের BIOS সেটিংস দেখা ও পরিবর্তন করা যায়। নিচে জনপ্রিয় ভেন্ডর HP, Lenovo, Dell-এর কম্পিউটারে WMI ক্লাস (Windows Management Instrumentation) মাধ্যমে BIOS ম্যানেজমেন্টের উদাহরণ দেওয়া হলো।
বেসিক BIOS ইনফরমেশন দেখুন
Get-WmiObject -Class Win32_BIOS | Format-List *
এই কমান্ডে BIOS ভার্সন (SMBIOSBIOSVersion, BIOSVersion), হার্ডওয়্যার ম্যানুফ্যাকচারার, সিরিয়াল নম্বর, ReleaseDate ইত্যাদি দেখা যায়।
নির্দিষ্ট প্যারামিটারগুলো দেখতে:
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
Win32_BIOS ক্লাস যেকোনো উইন্ডোজ কম্পিউটারে কাজ করে। কিন্তু কিছু হার্ডওয়্যার ভেন্ডর সরাসরি BIOS অ্যাক্সেসের জন্য স্পেশাল WMI ক্লাস প্রদান করে (শর্তে ম্যানুফ্যাকচারারের নেটিভ ড্রাইভার ইনস্টল থাকে)।
Lenovo BIOS সেটিংস ম্যানেজমেন্ট
Lenovo কম্পিউটারের BIOS প্যারামিটার ও ভ্যালু লিস্ট:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi
শুধু সেটিং নাম ও করেন্ট ভ্যালু দেখতে:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsetting
BIOS পাসওয়ার্ড সেট আছে কিনা চেক করুন:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
রিটার্ন ০ মানে পাসওয়ার্ড সেট নেই।
Lenovo-এ WOL (Wake-On-LAN) সক্ষম করা:
$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace root\wmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace root\wmi)
$SaveLenovoBIOS.SaveBiosSettings()
HP কম্পিউটারে BIOS সেটিং পরিবর্তন
HP কম্পিউটারের BIOS সেটিংস, ভ্যালু ও অপশন দেখুন:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
USB বুট ডিসেবল করা:
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
BIOS পাসওয়ার্ড সহ সেটিং পরিবর্তন:
$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting('Network (PXE) Boot','Disable',$HPBIOSPassword)
রিটার্ন ০ হলে সফল। এরর হ্যান্ডলিং সহ স্ক্রিপ্ট:
$ChangeBIOS_State = $bios.setbiossetting('Network (PXE) Boot', 'Disable' , $HPBIOSPassword)
$ChangeBIOS_State_Code = $ChangeBIOS_State.return
If(($ChangeBIOS_State_Code) -eq 0)
{ write-host "OK" }
Else
{ write-host "Error - (Return code $ChangeBIOS_State_Code)" -Foreground Red }
LAN/WLAN Switching সক্ষম করা (ল্যাপটপে):
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')
Dell BIOS সেটিংস কনফিগারেশন
DELL কম্পিউটারে DCIM-BIOSService WMI ক্লাস বা আধুনিক root\dellomci ক্লাস (OMCI প্যাকেজ ইনস্টলেশনের পর উপলব্ধ) ব্যবহার করুন।
বুট ডিভাইস অর্ডার দেখুন:
Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder
Wake on LAN সক্ষম করা:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
DellBIOSProvider মডিউল ইনস্টল ও ব্যবহার:
Install-Module -Name DellBIOSProvider -Force
বুট সিকোয়েন্স দেখুন:
Get-ChildItem DellSmbios:\BootSequence\Bootsequence
BIOS পাসওয়ার্ড পরিবর্তন:
Set-Item -Path Dellsmbios\Security\AdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
উপরোক্ত পদ্ধতিগুলো ব্যবহার করে একটি রেফারেন্স কম্পিউটারের BIOS সেটিংস এক্সপোর্ট করুন (CSV-এ), তারপর পাওয়ারশেল স্ক্রিপ্ট দিয়ে কোম্পানির সব কম্পিউটারে একই সেটিংস ডিপ্লয় করুন।