【保存版】PowerShellでBIOS設定を表示・変更する方法(HP/Lenovo/Dell対応)
Windowsが動作するPCでは、PowerShellを使ってBIOS設定の表示や変更を行うことができます。本記事では、WMIクラス(Windows Management Instrumentation)を通じて、HP、Lenovo、Dellといった主要ベンダーのPCのBIOS設定を取得・変更するための具体的なコマンド例を詳しく解説します。
Win32_BIOSクラスでBIOS情報を表示する
まず、Win32_BIOSクラスとGet-WmiObjectコマンドレットを使って、基本的なBIOS情報を確認する方法から見ていきましょう。以下のコマンドを実行すると、コンピューターのBIOS基本パラメーターを一覧表示できます。
Get-WmiObject -Class Win32_BIOS | Format-List *
このコマンドにより、BIOSバージョン(SMBIOSBIOSVersion、BIOSVersion)、ハードウェアの製造元、シリアル番号、リリース日(ReleaseDate)などの情報を確認できます。

特定の項目だけを表示したい場合は、以下のように出力を絞り込むことも可能です。
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
Win32_BIOSクラスは、Windowsが動作するあらゆるPCで利用できる汎用的な手法です。ただし、一部のハードウェアベンダーは、Windows OSから直接BIOSへアクセスできる専用のWMIクラスを独自に提供しています(利用には、ハードウェアメーカー純正のドライバーがPCにインストールされている必要があります)。以降では、ベンダーごとの専用クラスを使った操作方法を紹介します。
Lenovo PCのBIOS設定をPowerShellで管理する
Lenovo製PCでは、以下のコマンドでBIOSパラメーターとその値の一覧を取得できます。
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi
設定名と現在の値のみを表示したい場合は、次のように実行します。
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsetting

続いて、Lenovo PCにBIOSアクセス用のパスワードが設定されているかどうかを確認してみましょう。
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
このコマンドが「0」を返した場合、BIOSに入るためのパスワードは設定されていません。

Lenovo PCでは、一部のBIOS設定をPowerShellから変更することもできます。例として、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 PCのBIOS設定をPowerShellで変更する
HP製PCでは、以下のコマンドでBIOS設定の名称、現在の値、選択可能なオプションをまとめて取得できます。
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
HP PCでも、PowerShellからBIOS設定を変更できます。たとえば、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」を返せば、正常に実行されたことを意味します。戻り値を判定する簡単なエラーハンドラーを組み込めば、処理結果をわかりやすく確認できます。
$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
}
また、HPノートPCでLAN/WLANスイッチング機能(Ethernet接続が利用可能になったときにWi-Fiから自動的に切断する機能)を有効化したい場合は、次のコマンドを実行します。
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')
Dell PCのBIOS設定をPowerShellで構成する
Dell製PCのBIOS設定を表示・管理するには、DCIM-BIOSService WMIクラス、またはより新しいroot\dellomciクラス(OMCIパッケージ — Open Manage Client Instrumentation のインストール後に利用可能)を使用します。
Dell PCのBIOSにおける起動デバイスの順序を確認するには、次のコマンドを実行します。
Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder

たとえば、Wake on LANを有効化するには、以下のようにSetBIOSAttributesメソッドを呼び出します。
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
さらにDellは、専用のPowerShellモジュールDellBIOSProviderを公開しています。ドライバーのインストール時に一緒に導入されるほか、次のコマンドで手動インストールすることも可能です。
Install-Module -Name DellBIOSProvider -Force
このモジュールを使えば、Dell PCの起動順序を直感的に確認できます。
Get-ChildItem DellSmbios:\BootSequence\Bootsequence
特定のBIOS設定を変更する際は、Set-Itemコマンドレットを使用します。たとえば、BIOS管理者パスワードを変更する場合は次のようになります。
Set-Item -Path Dellsmbios\Security\AdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
応用:BIOS設定の一括展開
以上で紹介した方法を組み合わせれば、基準となる参照PCから現在のBIOS設定をエクスポートするPowerShellスクリプト(CSVファイルへの出力など)を作成できます。そのスクリプトを流用すれば、同じBIOS設定を社内のすべてのPCに対してPowerShell経由で一括展開でき、大規模環境での運用管理を大幅に効率化できます。
-
PowerShellでファイルとフォルダーを削除する方法【Remove-Itemコマンド徹底解説】
ファイルやフォルダーをひとつずつ手動で削除するのは、意外と手間がかかる作業です。しかし、PowerShellの使い方をマスターしていれば、そんな面倒な作業も一瞬で終わらせられます。この記事では、PowerShellを使ってWindowsのファイルやフォルダーを削除するさまざまな方法を紹介します。 PowerShellとは PowerShellは、Windowsが無料で提供しているコマンドライン自動化ツールです。コマンドプロンプトのウィンドウ上で起動するシェルを通じて、OSをより細かくコントロールできるようになるのが特徴です。 PowerShellでは「コマンドレット(Cmdlet)」と呼ばれ
-
Windows 10の言語設定を変更する方法|表示言語・キーボード・地域設定まで完全解説
Windowsのインストール時には、PCの既定の言語を選択するよう求められます。しかし、後から言語を変更したくなった場合はどうすればよいのでしょうか。また、複数のユーザーが同じPCを使用している場合、Windowsを再インストールせずに既定の言語を変更したいこともあるでしょう。 このガイドでは、新しいアカウントと既存アカウントの両方を対象に、Windows 10で言語設定を簡単に変更する方法を詳しく解説します。 Windows 10で既定のシステム言語を変更する方法 別の地域へ引っ越した場合や、Windowsの初期設定時に誤った言語を選択してしまった場合は、以下の手順に従って、英語など希望する