セキュア ブートを有効にして実稼働前ドライバーをテストする方法
リテール システムと運用システムでは、Windows カーネルは、運用 WHQL/WHCP 署名を持つドライバーのみを信頼して読み込みます。 実稼働前ドライバーをテストするには、ドライバー開発者が非運用ドライバーの読み込みを有効にする TESTSIGNING
必要があります。 TESTSIGNING
では、テスト環境と運用環境に違いを示すために、セキュア ブートを無効にする必要があります。
Windows カーネルは、WHQL/WHCP 実稼働前署名で署名された実稼働前ドライバーの読み込みをサポートしています。 WHQL/WHCP 署名には、Microsoft ハードウェア デベロッパー センター (HDC) からアクセスできます。
前提条件
最新バージョンの Windows Driver Kit (WDK) またはダウンロード センターからEnableUefiSbTest.exeをダウンロードします。 EnableUefiSbTest ツールの既定のセットアップ場所は、C:\Program Files (x86)\Windows Kits\10\tools\{arch}\SecureBoot\EnableSB です。
{arch}
は次のいずれかになります{amd64, x86, arm, arm64}
。 ポリシーは、同じ SecureBoot ディレクトリ C:\Program Files (x86)\Windows Kits\10\tools\{arch}\SecureBoot\Policies の下にあります。
実稼働前 WHQL/WHCP 署名のサポートを有効にする
ドライバーが実稼働前に署名されたら、ドライバーをインストールするテスト コンピューターをプロビジョニングする準備が整います。
プロビジョニング ツールとペイロードは、Windows 11 バージョン 22H2 以降で提供されます。
EnableUefiSbTest ツールの使用を強くお勧めします。 または、[HLK セキュア ブートの手動テスト] セクション (UefiSecureBootManualTests.zip\ManualTests\certs\test\db_MSFTtestSigningRoot.cer
) から Microsoft Test Root キーを手動でプロビジョニングすることもできます。 実稼働前 WHQL/WHCP ドライバー署名の信頼を有効にするには、Microsoft テスト キーをセキュア ブート データベース (DB) とセキュア ブート構成ポリシー (SBCP) に含める必要があります。
Note
セキュア ブート データベースのいずれかをプロビジョニングする場合は、Microsoft テスト キーを使用してペイロードに運用環境で署名しないでください。
プロビジョニングの手順
システムの UEFI メニューで、セキュア ブートを無効にし、該当する場合はセキュア ブート キーをクリアします。 これにより、プロビジョニング ツールはテスト キーを設定してセキュア ブート ポリシー ファイルを信頼し、セキュア ブートを再度有効にすることができます。
システム アーキテクチャと付属のプロビジョニング ツール (EnableUefiSbTest.exe) に応じて、WDK から正しいセキュア ブート ポリシー .p7b ファイルをダウンロードします。 プロビジョニング ツールの場所については、「前提条件」を参照してください。
PowerShell またはターミナルの管理者特権のインスタンスで次のコマンドを実行し、PK、KEK、db、dbx、OemId の値が空 ("Not Found") であることを検証します。
EnableUefiSbTest.exe /dump
セキュア ブートが無効になっており、キーが正常にクリアされている場合は、次の出力が必要です。
EnableUefiSbTest.exe /dump Name: PK Not Found Name: KEK Not Found Name: db Not Found Name:dbx Not Found Name: OemId Not Found
セキュア ブート テスト キーを Secure Boot db にプロビジョニングし、PowerShell またはターミナルの管理者特権のインスタンスで次のコマンドを実行して、セキュア ブートを再度有効にします。
EnableUefiSbTest.exe
Note
EnableUefiSbTest.exeは、正常に実行された後は何も出力または返されません。
必要に応じて、セキュア ブート DB の既定のキーと共に Microsoft UEFI CA 証明書をプロビジョニングするコマンドを指定
thirdparty
します。 これにより、オプション ROM や Windows 以外のブートローダーなどの Microsoft UEFI CA 署名 EFI 実行可能ファイルの信頼が可能になります。EnableUefiSbTest.exe /thirdparty
デスクトップ ベースの Windows を実行しているデバイスの場合は、PowerShell またはターミナルの管理者特権のインスタンスで次のコマンドを 実行して、システムの EFI パーティションをマウントし、セキュア ブート ポリシー (.p7b) ファイルを介して S:/EFI/Microsoft/Boot にコピーします。
mountvol s: /s copy-item <path_to_p7b> S:/EFI/Microsoft/Boot/SecureBootPolicy.p7b
Note
Windows カーネルにはセキュア ブート ポリシー ファイル
SecureBootPolicy.p7b
が必要であるため、名前とファイル形式は変更しないでください。デスクトップ ベースの Windows を実行していないデバイスの場合は、対応する
PreProductionPolicy.pol
をコピーします\EFI\Microsoft\Boot\Policies
。 次に、次からFullDebugPolicy.pol
を削除します\EFI\Microsoft\Boot\Policies
。システムを再起動して、Windows カーネルがポリシーを更新できるようにします。 セキュア ブートが再び有効になり、プロビジョニング ツールによって自動的にプロビジョニングされるようになりました。 これは、管理者として再実行
EnableUefiSbTest.exe /dump
し、値のみがdbx
OemId
空であることを検証することで検証できます ("Not Found")。システムは、実稼働前の WHQL/WHCP 署名付きドライバー のコンテンツを検証する準備ができています。 セキュア ブート キーとセキュア ブート ポリシー ファイルが変更されない限り、システムの再起動はデバイスの状態に影響しません。
デプロビジョニングの手順
システムのプロビジョニングを解除し、システムでの実稼働前署名信頼をオプトアウトするには、次の手順を実行します。
PowerShell またはターミナルの管理者特権のインスタンスで次のコマンドを実行して、マウントされた EFI パーティションからセキュア ブート ポリシー ファイルを削除します。
mountvol s: /s rm S:/EFI/Microsoft/Boot/SecureBootPolicy.p7b
Note
検証が HoloLens 2 で実行されている場合は、.pol ポリシー ファイルも S:/EFI/Microsoft/Boot/Policies から 削除する必要があります。
システムの UEFI メニューを起動し、セキュア ブート キーを出荷時の設定に再構成します。
システムを再起動して実行
EnableUefiSbTest.exe /dump
します。空でない値を返す必要があります。この値PK
は、KEK
db
dbx
キーが出荷時の状態に戻されたことを示す値を返します。Note
リテール環境向けのシステムをプロビジョニング解除するには、システムに Windows をクリーンインストールすることをお勧めします。
よく寄せられる質問
Q: コマンドの EnableUefiSbTest.exe /dump
結果 PK
のみが表示されます。 何かエラーが発生しているのでしょうか?
A: これは、ツールが管理者ではなく標準ユーザーとして実行されている場合に発生します。
Q: このコマンドは EnableUefiSbTest.exe /dump
、認識できないエラーを返します。 どうすればよいですか。
A: セキュア ブートが正常に無効になっていないか、セキュア ブート キーがクリアされていない場合、ツールによってエラーが発生する可能性があります。 セキュアブートが無効になっていることを確認します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示