Bạn có thể dùng PowerShell để xem hoặc thay đổi cài đặt BIOS trên máy tính chạy Windows. Hãy xem xét một số ví dụ để lấy hoặc sửa đổi cài đặt BIOS qua các lớp WMI (Windows Management Instrumentation) trên máy tính của các hãng phổ biến: HP, Lenovo, Dell.
Bạn có thể xem các thông số BIOS cơ bản bằng cmdlet Get-WmiObject từ lớp Win32_BIOS:
Get-WmiObject -Class Win32_BIOS | Format-List *
Lệnh này cho phép xem phiên bản BIOS (SMBIOSBIOSVersion, BIOSVersion), nhà sản xuất phần cứng, số serial máy tính, ReleaseDate và các thông tin khác.
Bạn có thể liệt kê chỉ một số thông số BIOS:
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
Lớp Win32_BIOS dùng để xem thông tin BIOS trên bất kỳ máy tính Windows nào. Tuy nhiên, một số nhà cung cấp phần cứng cung cấp các lớp WMI đặc biệt để truy cập BIOS trực tiếp từ Windows OS (driver gốc của hãng phần cứng phải được cài đặt).
Quản lý cài đặt BIOS Lenovo từ PowerShell
Bạn có thể lấy danh sách thông số BIOS và giá trị của chúng trên máy Lenovo như sau:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi
Để chỉ hiển thị tên cài đặt BIOS và giá trị hiện tại:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsetting
Kiểm tra xem mật khẩu truy cập BIOS có được đặt trên máy Lenovo không:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
Nếu lệnh trả về 0, nghĩa là mật khẩu vào BIOS chưa được đặt.
Bạn có thể thay đổi một số thông số BIOS trên máy Lenovo. Ví dụ, bật 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()
Thay đổi cài đặt BIOS từ PowerShell trên máy Hewlett-Packard
Để lấy cài đặt BIOS, giá trị và tùy chọn có sẵn trên máy HP, dùng lệnh:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
Bạn có thể thay đổi cài đặt BIOS trên máy HP từ PowerShell. Ví dụ, muốn tắt khởi động từ thiết bị USB:
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
Nếu cần mật khẩu để thay đổi cài đặt BIOS, dùng script sau:
$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting('Network (PXE) Boot','Disable',$HPBIOSPassword)
Nếu lệnh cuối trả về "0", nghĩa là thực thi thành công. Bạn có thể dùng trình xử lý PowerShell đơn giản:
$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
}
Nếu muốn bật LAN/WLAN Switching trong BIOS trên laptop HP để tự động ngắt Wi-Fi khi có kết nối Ethernet, chạy lệnh:
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')
Cấu hình cài đặt BIOS DELL với PowerShell
Để xem và quản lý cài đặt BIOS trên máy DELL, dùng lớp WMI DCIM-BIOSService hoặc lớp hiện đại hơn root\dellomci (có sẵn sau khi cài gói OMCI — Open Manage Client Instrumentation).
Để xem thứ tự thiết bị boot trong BIOS trên máy Dell, chạy lệnh:
Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder
Ví dụ, bật Wake on LAN trong BIOS:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
Cũng có mô-đun PowerShell riêng DellBIOSProvider của Dell, cài đặt cùng driver hoặc cài thủ công:
Install-Module -Name DellBIOSProvider -Force
Dùng mô-đun này xem thứ tự boot trên máy Dell:
Get-ChildItem DellSmbios:\BootSequence\Bootsequence
Để thay đổi cài đặt BIOS cụ thể, dùng cmdlet Set-Item. Ví dụ đổi mật khẩu BIOS:
Set-Item -Path Dellsmbios\Security\AdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
Sử dụng các phương pháp trên, bạn có thể tạo script PowerShell xuất cài đặt BIOS hiện tại từ máy tham chiếu (ví dụ ra file CSV). Sau đó dùng PowerShell triển khai cùng cài đặt BIOS lên tất cả máy tính trong công ty.