คุณสามารถใช้ PowerShell เพื่อดูหรือเปลี่ยนการตั้งค่า BIOS บนคอมพิวเตอร์ของคุณที่ใช้ Windows มาพิจารณาตัวอย่างที่คุณสามารถใช้เพื่อรับหรือแก้ไขการตั้งค่า BIOS บางอย่างด้วย PowerShell ผ่านคลาส WMI (Windows Management Instrumentation) บนคอมพิวเตอร์ของผู้จำหน่ายยอดนิยม:HP, Lenovo, Dell
คุณสามารถดูพารามิเตอร์ BIOS พื้นฐานบนคอมพิวเตอร์ของคุณโดยใช้ Get-WmiObject cmdlet จาก Win32_BIOS คลาส:
Get-WmiObject -Class Win32_BIOS | Format-List *
คำสั่งนี้ช่วยให้คุณดูเวอร์ชัน BIOS ของคุณ (SMBIOSBIOSVersion, BIOSVersion), ผู้ผลิตฮาร์ดแวร์, หมายเลขซีเรียลของคอมพิวเตอร์, ReleaseDate และข้อมูลอื่นๆ
คุณสามารถแสดงรายการพารามิเตอร์ BIOS เหล่านี้ได้เพียงบางส่วน:
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
คุณสามารถใช้คลาส Win32_BIOS เพื่อดูข้อมูล BIOS บางอย่างบนคอมพิวเตอร์ที่ใช้ Windows อย่างไรก็ตาม ผู้จำหน่ายฮาร์ดแวร์บางรายมีคลาส WMI พิเศษเพื่อเข้าถึง BIOS โดยตรงจากระบบปฏิบัติการ Windows (ต้องติดตั้งไดรเวอร์ดั้งเดิมโดยผู้ผลิตฮาร์ดแวร์ในคอมพิวเตอร์)
การจัดการการตั้งค่า Lenovo BIOS จาก PowerShell
คุณสามารถรับรายการพารามิเตอร์ BIOS และค่าต่างๆ ได้ที่ Lenovo คอมพิวเตอร์ในลักษณะนี้:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi
วิธีแสดงเฉพาะชื่อการตั้งค่า BIOS และค่าปัจจุบัน:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsetting
ให้ตรวจสอบว่าได้ตั้งรหัสผ่านเพื่อเข้าใช้งาน BIOS บนคอมพิวเตอร์ Lenovo ของคุณหรือไม่:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
หากคำสั่งคืนค่าเป็น 0 แสดงว่าไม่ได้ตั้งค่ารหัสผ่านเพื่อเข้าสู่ BIOS
คุณสามารถเปลี่ยนพารามิเตอร์ BIOS บางอย่างในคอมพิวเตอร์ 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()
เปลี่ยนการตั้งค่า BIOS จาก PowerShell บนคอมพิวเตอร์ Hewlett-Packard
หากต้องการรับการตั้งค่า BIOS ค่าต่างๆ และตัวเลือกที่มีใน HP คอมพิวเตอร์ คุณสามารถใช้คำสั่งต่อไปนี้:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
คุณสามารถเปลี่ยนการตั้งค่า BIOS บางอย่างในคอมพิวเตอร์ HP จาก PowerShell ตัวอย่างเช่น คุณต้องการปิดใช้งานการบูตคอมพิวเตอร์จากอุปกรณ์ 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)
หากคำสั่งสุดท้ายส่งคืน “0” แสดงว่าดำเนินการสำเร็จแล้ว คุณสามารถใช้ตัวจัดการ PowerShell อย่างง่าย:
$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 ใน BIOS บนแล็ปท็อป HP เพื่อตัดการเชื่อมต่อจาก Wi-Fi โดยอัตโนมัติเมื่อมีการเชื่อมต่ออีเทอร์เน็ต ให้เรียกใช้คำสั่งนี้:
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')
การกำหนดค่าการตั้งค่า DELL BIOS ด้วย PowerShell
ในการดูและจัดการการตั้งค่า BIOS บน DELL คอมพิวเตอร์ คุณสามารถใช้ DCIM-BIOSService คลาส WMI หรือ root\dellomci ที่ทันสมัยกว่า คลาส (ใช้ได้หลังจากการติดตั้งแพ็คเกจ OMCI — เปิด Manage Client Instrumentation )
หากต้องการดูลำดับอุปกรณ์บู๊ตใน BIOS บนคอมพิวเตอร์ Dell ให้เรียกใช้คำสั่งต่อไปนี้:
Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder
ตัวอย่างเช่น คุณสามารถเปิดใช้งาน Wake on LAN ใน BIOS แบบนั้น:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
นอกจากนี้ Dell ได้เปิดตัวโมดูล PowerShell แยกต่างหาก DellBIOSProvider ซึ่งติดตั้งควบคู่ไปกับการติดตั้งไดรเวอร์ หรือคุณสามารถติดตั้งด้วยตนเองโดยใช้คำสั่งนี้:
Install-Module -Name DellBIOSProvider -Force
คุณสามารถใช้โมดูลนี้เพื่อดูลำดับการบูตบนคอมพิวเตอร์ Dell:
Get-ChildItem DellSmbios:\BootSequence\Bootsequence
หากต้องการเปลี่ยนการตั้งค่า BIOS เฉพาะ ให้ใช้ Set-Item cmdlet ตัวอย่างเช่น ในการเปลี่ยนรหัสผ่าน BIOS:
Set-Item -Path Dellsmbios\Security\AdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
ด้วยวิธีการที่อธิบายไว้ข้างต้น คุณสามารถสร้างสคริปต์ PowerShell เพื่อส่งออกการตั้งค่า BIOS ปัจจุบันจากคอมพิวเตอร์อ้างอิง (เช่น ไปยังไฟล์ CSV) จากนั้น คุณสามารถใช้ PowerShell เพื่อปรับใช้การตั้งค่า BIOS เดียวกันกับคอมพิวเตอร์ทุกเครื่องในบริษัทของคุณ