PowerShell を使用して、Windows コンピューター上の BIOS/UEFI 設定を表示または変更できます。 この記事では、Windows PowerShell を使用して、通常のコンピューターおよび人気のあるブランドのコンピューター (HP、Lenovo、Dell、東芝) でコンピューターの BIOS 設定を取得または変更する方法を説明します。
PowerShell で BIOS/UEFI バージョンを確認する
WMI クラス Win32_BIOS では、コンピュータの BIOS (UEFI) に関する基本情報を説明します。 Get-WmiObject コマンドレットを使用して、WMI (Windows Management Instrumentation) から BIOS 情報を取得できます。
Advertisement
Get-WmiObject -Class Win32_BIOS
デフォルトでは、コマンドは BIOS バージョン (SMBIOSBIOSVersion)、製造元、シリアル番号、およびコンピューターのモデルに関する情報を返します。
で利用可能な BIOS パラメータの完全なリストを表示するには、 Win32_BIOS WMI クラスの場合は、次のコマンドを使用します。
Advertisement
Get-WmiObject -Class Win32_BIOS | Format-List *
関心のある BIOS 設定のみを表示できます。たとえば、BIOS バージョン、コンピューターのシリアル番号、製造元、発売日など:
Get-WmiObject -Class Win32_BIOS | Select SMBIOSBIOSVersion, Manufacturer, SerialNumber, ReleaseDate
リモート コンピューターから BIOS 情報を取得することもできます。
Get-WmiObject -Class Win32_BIOS -ComputerName MUN-WKS41
Get-ItemProperty -Path HKLM:HARDWAREDESCRIPTIONSystemBIOS
Win32_BIOS は、Windows デバイスの基本的な BIOS 情報を取得するために使用できる汎用クラスです。
ただし、一部のハードウェア ベンダーは、Windows OS から BIOS に直接アクセスするための特別な WMI クラスを提供しています (製造元のネイティブ ドライバーをインストールする必要があります)。
Advertisement
Get-BIOS モジュールを使用して BIOS 設定を取得または変更する方法
PSGallery の別のモジュールを使用できます。 BIOS を取得する Dell、HP、Lenovo、東芝コンピュータの BIOS/UEFI 設定を取得します。
PowerShell オンライン ギャラリーからモジュールをインストールします (PowerShell モジュールはオフラインでインストールできます)。
Install-Module GetBIOS
コンピューターの BIOS 設定を表示するには、次のコマンドを実行します。
Get-BIOS
BIOS の一部のバージョンでは、BIOS パラメータの現在の値だけでなく、その説明と可能な値も表示できます。
Advertisement
Get-BIOS -ShowDescription
同じ開発者による、Dell、Lenovo、HP マシンの BIOS 設定を変更できるモジュールもあります。
Install-Module SetBIOS
デバイスの BIOS 設定を変更するには、{Setting, Value} 形式で CSV ファイルを作成する必要があります。
BIOS 設定を含む CSV ファイルを適用するには、次のコマンドを実行します。
Set-BIOS -Path "YourBIOSSettingsFile.csv"
BIOS がパスワードで保護されている場合は、次を追加します -Password
オプションに。
Advertisement
PowerShell を使用して Lenovo デバイスの BIOS 設定を一覧表示する
現在の BIOS 設定は、次の別の WMI クラスに保存されます。 レノボ コンピューター。 利用可能な BIOS オプションとその値は、Lenovo DeviceL で一覧表示できます。
Get-WmiObject -class Lenovo_BiosSetting -namespace rootwmi | select-object InstanceName, currentsetting
Lenovo コンピューターに BIOS パスワードが設定されているかどうかを確認してみましょう。
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace rootwmi).PasswordState
コマンドが 0 を返した場合、BIOS セキュリティ パスワードは設定されていません。
Lenovo デバイスの BIOS パスワードを変更します。
Advertisement
(gwmi -Class Lenovo_SetBiosPassword -Namespace rootwmi).SetBiosPassword("pap,oldPassword,newPassword,ascii,us")
Lenovo コンピューターでは一部の BIOS パラメーターを変更できます。 たとえば、WOL (Wake-On-LAN) を有効にしてみましょう。
$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace rootwmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace rootwmi)
$SaveLenovoBIOS.SaveBiosSettings()
Lenovo デバイスの BIOS 設定を工場出荷時のデフォルトにリセットします。
$DefaultSettings = Get-WmiObject -Namespace rootwmi -Class Lenovo_LoadDefaultSettings
$DefaultSettings.LoadDefaultSettings("CurrentBIOSPassword,ascii,us")
PowerShell: Hewlett-Packard コンピューターの BIOS 設定の一覧表示と変更
利用可能な BIOS オプション、その値、および利用可能なオプションをリストすることができます。 HP 次のコマンドを使用してコンピュータ/ラップトップにアクセスします。
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
HP コンピューターでは、PowerShell を使用して一部の BIOS 設定を変更できます。 たとえば、USB ストレージ デバイスからコンピュータを起動する機能を無効にすることができます。
Advertisement
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
HP デバイスの BIOS 設定を変更するためにパスワードが必要な場合は、次のスクリプトを使用できます。
$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$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
}
HP ラップトップの BIOS で LAN/WLAN 切り替えを有効にして、イーサネット接続が利用可能なときに Wi-Fi から自動的に切断するようにするには、次のコマンドを実行します。
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')
HPをインストールすることもできます クライアント管理スクリプトライブラリ Hewlett Packard デバイスの (CMSL) 拡張子 (https://www.hp.com/us-en/solutions/client-management-solutions/download.html)。 CMSL には、BIOS/UEFU 設定の取得または変更、ファームウェアの更新などを可能にするいくつかの PowerShell モジュールが含まれています。
Advertisement
現在の BIOS 設定をテキスト ファイルにエクスポートします。
Get-HPBIOSSettingsList | Out-File -FilePath ‘C:ProgramDataHPCMSLLogsCurrentBIOSSettings.txt’
HP BIOS 設定で WLAN 自動切り替えオプションを有効にします。
Set-HPBIOSSettingValue -Name "LAN/WLAN Auto Switching" -Value Enable -Password BiosPass000rd
PowerShell を使用して DELL BIOS 設定を構成する
BIOS 設定を表示および管理できます。 デル を使用するコンピュータ DCIM-BIOSサービス WMI クラスまたは最新の ルートデロムシ クラス (OMCI のインストール後に使用可能、 クライアント インストルメンテーションの管理を開く)。
DELL コンピュータでは、DCIM-BIOSService WMI クラスまたは新しい rootdellomci クラス (OMCI – Open Manage Client Instrumentation のインストール後に使用可能) WMI クラスを使用して、BIOS 設定を表示および管理できます。
Dell コンピュータの BIOS で起動デバイスの順序を表示するには、次のコマンドを実行します。
Get-WmiObject -NameSpace rootdellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder
Advertisement
たとえば、次のように有効にできます ウェイクオンLAN BIOS では次のようになります。
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
さらに、Dell コンピュータの場合は、公式の DellBIOSプロバイダー PowerShell モジュール。ドライバーのインストール プロセスの一部としてインストールされます。または、次のコマンドを使用して手動でインストールできます。
Install-Module -Name DellBIOSProvider -Force
たとえば、このモジュールを使用して、Dell コンピュータの起動順序を取得できます。
Get-Item DellSmbios:BootSequenceBootsequence
BIOS パスワードが設定されていることを確認します。
Advertisement
Get-Item -Path DellSmbios:SecurityIsAdminPasswordSet
Dell デバイスの BIOS セキュリティ パスワードを変更します。
Set-Item -Path DellsmbiosSecurityAdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
PowerShell を使用して Windows デバイスの BIOS 設定を取得および変更する方法を確認しました。 これにより、すべてのコンピューターの BIOS/UEFI 設定を (SCCM、Intune、MDT などを使用して) 統一できます。