古い PC を使い続けるのって 関門 が幾つも立ち塞がります。
Secure Boot 問題にしても、然り!。
でも、世の中には素晴らしい方々がいて指針を指し示して下さいます。 感謝。
Windsows 11 になって、ハードに要求される要件が厳しくなりましたね。
当初、どうしようかなぁ、と頭を抱えていた訳ですが、
何とか山を越え ... 。
そして、また、次の山が立ち塞がっていました。
Secure Boot !。
通常は、意識していなくても当の昔に自動更新されているので、
何其れ? の方が多いのかも知れません。
必須ファイルの署名期限が近付くので、新しいものに交換!と言われたのが約1年半前。
今年の5月頃から盛んに目にする様になりましたが、
古い機種では、 対応に取り組んでいます (未更新)のまま、此の秋を迎えて仕舞った訳です。
一向に更新される気配は ... 無い。 :O
起動出来無く訳では無く、通常利用には差支え無いのでしようが、
事は セキュリティ絡み です。
昨今、巷を騒がせている セキュリティ ですから。
直せるものなら 直したい と。
以前から検索しては来たのですが、一般的な検索結果では 効果無し!。 X(
証明書の署名期限が 6月から10月 と言われていたので、
本腰を入れて 検索し捲り!。 何とか10月のうちに ... 。
結果、無事に 2023 証明書に移行しました!。
安堵。
未確認ですが、TPM や Secure Boot 要件が 将来の OS 更新条件 になるかも。
さて、長く且つかなり専門的になりますが、書き残して置きます。
こりゃ駄目だと思ったら、現状で我慢するか、新しいのの導入をご検討下さい。
先ずは、作業前。 目にする機会のある場所の警告マークは心が折れますね。
該当機種は HP EliteBook 840 G3 。 Business Note PC の範疇。
最初から OS は Pro 搭載。 現在は Windows 11 Pro Version 25H2
以下のページを参考に対応しましたが、
例示のものとは 数箇所 差異があり、
判断には困りましたが、何とか凌ぎました。
因みに、此の ページ は Maker である HP の HP Community なので、
検証文字列が Maker 固有になっている箇所があります。
他 Maker の場合、読み替える必要があると考えます。
https://h30434.www3.hp.com/t5/Business-Notebooks/Enabling-new-UEFI-2023-CA-certificates-in-pre-2018-HP/td-p/9628370/page/5
Posted by akluch 07-19-2026 11:11 PM - edited 08-03-2026 01:54 PM
akluch さまに感謝!。
以下、実行時の Std-Output 。
管理者での Power Shell で、です。
各 Step は 参考にしたサイトのものに準じます。
ステップ番号の後の Device Dependent は機種依存すると思われる箇所。
コマンドをコピーペーストする際には、冒頭の Prompt "PS C:¥WINDOWS¥system32> " にご留意を!。
------
Step 0
------
Create C:¥Temp Directry
Copy %WINDIR%¥System32¥SecureBootUpdates To C:¥Temp
------
Step 1
------
PS C:¥WINDOWS¥system32> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Name Version Source Summary
---- ------- ------ -------
nuget 2.8.5.208 https://cdn.o... NuGet provider for the OneGet meta-package manager
PS C:¥WINDOWS¥system32> Install-Script -Name SplitDbxContent -Force
"C:¥Program Files¥WindowsPowerShell¥Scripts¥SplitDbxContent.ps1"
Creation 2026年10月29日、14:40:57
Modified 2020年7月28日、7:53:54
------
Step 2 Device Dependent
------
PS C:¥WINDOWS¥system32> Get-SecureBootUEFI -Name PK -Decoded
SignatureOwner : f5a96b31-dba0-4faa-a42a-7a0c9832768e
Subject : CN=HP UEFI Secure Boot 2013 PK Key, OU=Long Lived CodeSigning Certificate, O=Hewlett-Packard Company
Version : 3
Algorithm : sha256RSA
SerialNumber : 7758A5F8CB1DCFD32C6A7F8F03816B04
ValidFrom : 2013-08-23 09:00:00Z
ValidTo : 2033-08-24 08:59:59Z
PS C:¥WINDOWS¥system32>
SerialNumber = 7758A5F8CB1DCFD32C6A7F8F03816B04
https://github.com/microsoft/secureboot_objects/blob/main/PostSignedObjects/KEK/kek_update_map.json
Get/Download .json To PC
Open by Using notepad.exe
Seek/Search SerialNumber String
"ef40e88b7f2cc718a087051db5d5d4c26043c5aa": {
"KEKUpdate": "HP/KEKUpdate_HP_PK5.bin",
"Certificate": {
"serial_number": "7758a5f8cb1dcfd32c6a7f8f03816b04",
"issued_to": "CN=HP UEFI Secure Boot 2013 PK Key,OU=Long Lived CodeSigning Certificate,O=Hewlett-Packard Company",
"issued_by": "CN=Hewlett-Packard Printing Device Infrastructure CA,O=Hewlett-Packard Company,C=US"
}
},
KEKUpdate = HP/KEKUpdate_HP_PK5.bin
Find This File (KEKU....bin) On Left KEK Tree (HP) At github Page
Download That
Copy/Move to C:¥Temp
------
Step 3 Device Dependent
------
PS C:¥WINDOWS¥system32> PowerShell.exe -ExecutionPolicy Bypass -Command "cd C:¥temp; & 'C:¥Program Files¥WindowsPowerShell¥Scripts¥SplitDbxContent.ps1' C:¥temp¥KEKUpdate_HP_PK5.bin"
Successfully created output file .¥signature.p7
Successfully created output file .¥content.bin
PS C:¥WINDOWS¥system32>
PS C:¥WINDOWS¥system32> Set-SecureBootUefi -AppendWrite -Name KEK -ContentFilePath C:¥temp¥content.bin -SignedFilePath C:¥temp¥signature.p7 -Time 2010-03-06T19:17:21Z
>>
Name Bytes Attributes
---- ----- ----------
KEK {218, 7, 3, 6...} NON VOLATILE...
------
Step 4
------
PS C:¥WINDOWS¥system32> PowerShell.exe -ExecutionPolicy Bypass -Command "cd C:¥temp; & 'C:¥Program Files¥WindowsPowerShell¥Scripts¥SplitDbxContent.ps1' C:¥temp¥DBUpdate3P2023.bin"
Successfully created output file .¥signature.p7
Successfully created output file .¥content.bin
PS C:¥WINDOWS¥system32>
PS C:¥WINDOWS¥system32> Set-SecureBootUefi -AppendWrite -Name db -ContentFilePath C:¥temp¥content.bin -SignedFilePath C:¥temp¥signature.p7 -Time 2010-03-06T19:17:21Z
Name Bytes Attributes
---- ----- ----------
db {218, 7, 3, 6...} NON VOLATILE...
PS C:¥WINDOWS¥system32> PowerShell.exe -ExecutionPolicy Bypass -Command "cd C:¥temp; & 'C:¥Program Files¥WindowsPowerShell¥Scripts¥SplitDbxContent.ps1' $env:windir¥System32¥SecureBootUpdates¥DBUpdate2024.bin"
Successfully created output file .¥signature.p7
Successfully created output file .¥content.bin
PS C:¥WINDOWS¥system32> Set-SecureBootUefi -AppendWrite -Name db -ContentFilePath C:¥temp¥content.bin -SignedFilePath C:¥temp¥signature.p7 -Time 2010-03-06T19:17:21Z
Name Bytes Attributes
---- ----- ----------
db {218, 7, 3, 6...} NON VOLATILE...
PS C:¥WINDOWS¥system32> PowerShell.exe -ExecutionPolicy Bypass -Command "cd C:¥Temp; & 'C:¥Program Files¥WindowsPowerShell¥Scripts¥SplitDbxContent.ps1' $env:windir¥System32¥SecureBootUpdates¥DBUpdateOROM2023.bin"
Successfully created output file .¥signature.p7
Successfully created output file .¥content.bin
PS C:¥WINDOWS¥system32> Set-SecureBootUEFI -AppendWrite -Name db -ContentFilePath C:¥Temp¥content.bin -SignedFilePath C:¥Temp¥signature.p7 -Time 2010-03-06T19:17:21Z
Name Bytes Attributes
---- ----- ----------
db {218, 7, 3, 6...} NON VOLATILE...
------
Step 5
------
PS C:¥WINDOWS¥system32> PowerShell.exe -ExecutionPolicy Bypass -Command "cd C:¥Temp; & 'C:¥Program Files¥WindowsPowerShell¥Scripts¥SplitDbxContent.ps1' C:¥Temp¥dbxupdate.bin"
Successfully created output file .¥signature.p7
Successfully created output file .¥content.bin
PS C:¥WINDOWS¥system32>
PS C:¥WINDOWS¥system32> Set-SecureBootUEFI -AppendWrite -Name dbx -ContentFilePath "C:¥Temp¥content.bin" -SignedFilePath "C:¥Temp¥signature.p7" -Time "2010-03-06T19:17:21Z"
Name Bytes Attributes
---- ----- ----------
dbx {218, 7, 3, 6...} NON VOLATILE...
PS C:¥WINDOWS¥system32> PowerShell.exe -ExecutionPolicy Bypass -Command "cd C:¥Temp; & 'C:¥Program Files¥WindowsPowerShell¥Scripts¥SplitDbxContent.ps1' $env:windir¥System32¥SecureBootUpdates¥DBXUpdateSVN.bin"
Successfully created output file .¥signature.p7
Successfully created output file .¥content.bin
PS C:¥WINDOWS¥system32> Set-SecureBootUEFI -AppendWrite -Name dbx -ContentFilePath C:¥Temp¥content.bin -SignedFilePath C:¥Temp¥signature.p7 -Time 2010-03-06T19:17:21Z
Name Bytes Attributes
---- ----- ----------
dbx {218, 7, 3, 6...} NON VOLATILE...
------
Step 6
------
PS C:¥WINDOWS¥system32> ([System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Windows UEFI CA 2023')
True
PS C:¥WINDOWS¥system32> ([System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI kek).bytes) -match 'Microsoft Corporation KEK 2K CA 2023')
True
PS C:¥WINDOWS¥system32> ([System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI pk).bytes) -match 'Microsoft RSA Third Party PCA 2023')
False
PS C:¥WINDOWS¥system32> ([System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI pk).bytes) -match 'Hewlett-Packard')
True
PS C:¥WINDOWS¥system32>
True True False True : Not All True, This Case No Problem ... ?
Something I did wrong ?
------
Step 7
------
[System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromSignedFile("$env:windir¥Boot¥EFI_EX¥bootmgfw_EX.efi").Issuer
PS C:¥WINDOWS¥system32> [System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromSignedFile("$env:windir¥Boot¥EFI_EX¥bootmgfw_EX.efi").Issuer
CN=Windows UEFI CA 2023, O=Microsoft Corporation, C=US
PS C:¥WINDOWS¥system32>
OK!
------
Step 8
------
PS C:¥WINDOWS¥system32> mountvol S: /S
PS C:¥WINDOWS¥system32> reg save HKLM¥BCD00000000 S:¥EFI¥Microsoft¥Boot¥BCD.bak
この操作を正しく終了しました。
PS C:¥WINDOWS¥system32> Copy-Item "S:¥EFI¥Microsoft¥Boot¥bootmgfw.efi" "S:¥EFI¥Microsoft¥Boot¥bootmgfw.efi.bak" -Force
PS C:¥WINDOWS¥system32> Copy-Item "$env:windir¥Boot¥EFI_EX¥bootmgfw_EX.efi" "S:¥EFI¥Microsoft¥Boot¥bootmgfw.efi" -Force
PS C:¥WINDOWS¥system32> Copy-Item "S:¥EFI¥Boot¥BOOTX64.efi" "S:¥EFI¥Boot¥BOOTX64.efi.bak" -Force
PS C:¥WINDOWS¥system32> Copy-Item "$env:windir¥Boot¥EFI_EX¥bootmgfw_EX.efi" "S:¥EFI¥Boot¥BOOTX64.efi" -Force
PS C:¥WINDOWS¥system32> mountvol S: /D
------
Step 9
------
Reboot PC (First Time)
-------
Step 10
-------
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:¥WINDOWS¥system32> Set-ItemProperty -Path "HKLM:¥SYSTEM¥CurrentControlSet¥Control¥SecureBoot" -Name "AvailableUpdates" -Value 16384 -Type DWord
PS C:¥WINDOWS¥system32> Set-ItemProperty -Path "HKLM:¥SYSTEM¥CurrentControlSet¥Control¥SecureBoot¥Servicing" -Name "UEFICA2023Status" -Value "Updated" -Type String
>>
PS C:¥WINDOWS¥system32> Remove-ItemProperty -Path "HKLM:¥SYSTEM¥CurrentControlSet¥Control¥SecureBoot¥Servicing" -Name "UEFICA2023Error" -ErrorAction SilentlyContinue
>>
PS C:¥WINDOWS¥system32> Remove-ItemProperty -Path "HKLM:¥SYSTEM¥CurrentControlSet¥Control¥SecureBoot¥Servicing" -Name "UEFICA2023ErrorEvent" -ErrorAction SilentlyContinue
>>
PS C:¥WINDOWS¥system32> Stop-ScheduledTask -TaskName "¥Microsoft¥Windows¥PI¥Secure-Boot-Update" -ErrorAction SilentlyContinue
>>
PS C:¥WINDOWS¥system32> Disable-ScheduledTask -TaskName "¥Microsoft¥Windows¥PI¥Secure-Boot-Update" -ErrorAction SilentlyContinue
TaskPath TaskName State
-------- -------- -----
¥Microsoft¥Windows¥PI¥ Secure-Boot-Update Disabled
PS C:¥WINDOWS¥system32> Enable-ScheduledTask -TaskName "¥Microsoft¥Windows¥PI¥Secure-Boot-Update" -ErrorAction SilentlyContinue
TaskPath TaskName State
-------- -------- -----
¥Microsoft¥Windows¥PI¥ Secure-Boot-Update Ready
PS C:¥WINDOWS¥system32>
-------
Step 11
-------
Reboot PC (Second Time)
Install-Script 実行には 以下が必要でした。
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
また、
Install-Script で取得した保存場所が例示と異なっています。
C:¥Program Files¥WindowsPowerShell¥Scripts¥
環境依存なのでしょうか。 管理者で取得した場合に規定では上記になる様です。
上の説明は此れになっています。
最後のステップ迄進んで、Windows Security に 緑色の✔ が付か無いケースが有ります。
原因は セキュアブートは✔でも コア分離が OFF になっていたから でした。
此れを操作 (ON) し再起動する事で 全体が 緑色の✔ に変わります。


0 件のコメント:
コメントを投稿