Windows には、システムに読み込まれたカーネル ドライバーが整合性で実行され、Microsoft によって信頼されている機関によって暗号化署名されていることを確認することで、システムを保護するのに役立つ、 カーネル コード 整合性と呼ばれるセキュリティ機能が含まれています。

このメッセージが表示される場合は、ドライバーまたはカーネル モード ソフトウェアが正しく署名されていないか、Windows カーネルのコード整合性署名要件を満たしていないことを意味します。

Windows セキュリティドライバーがブロックされたときに表示されるブロック ダイアログ

Windows では、すべての新しいドライバーを送信し、 Windows ハードウェア互換性プログラム (WHCP) プロセスを通じて署名する必要があります。 Windows で以前に信頼されていたドライバーは、現在期限切れの クロス署名済みプログラムによって署名 されています。 ただし、2026 年 4 月のセキュリティ更新プログラムでは、これらのドライバーは既定で信頼されなくなります。 お知らせはこちら: https://go.microsoft.com/fwlink/?linkid=2356646。

Windows ドライバー ポリシーとは

Windows ドライバー ポリシーは、デバイスに読み込めるカーネル モード ドライバーを制限する Windows カーネルのポリシーです。 アクティブな場合、読み込みが許可されるのは次のドライバーのみです。

  1. Microsoft WHCP 認定プロセスを通じて適切に署名されたドライバー

  2. Windows ドライバー ポリシーに表示されるドライバーは、クロス署名されたプログラムによって署名された信頼できるドライバーの一覧を許可します

Microsoft WHCP が署名されていないドライバー、または Windows ドライバー ポリシーに表示されるドライバーは、スコープ内で有効なシステムでブロックされます。

この機能は、安全でない可能性があるドライバーやテストされていないドライバーからユーザーを保護し、未検証のドライバーやドライバーの発行元によって引き起こされるマルウェア、システムの不安定性、セキュリティの脆弱性のリスクを軽減するのに役立ちます。

動作のしくみ

Windows ドライバー ポリシーでは、 スマート アプリコントロール などの 2 フェーズのアプローチを使用して、デバイスの保護を徐々に強化します。

評価モード (監査)

この機能は、最初にアクティブ化されると、 評価モード で開始されます。 このフェーズでは、次の操作を行います。

  • ポリシーによってブロックされるドライバーは 監査されますが、読み込みは引き続き許可されます 。 これにより、デバイスは引き続き正常に動作し、Windows は適用がシステムに適しているかどうかを判断します。

  • Windows は、ポリシーの影響を受けるシステム上のドライバーの数を追跡します。

  • 評価中にポリシーに違反するドライバーが検出された場合、評価の進行状況は リセットされます 。 つまり、強制のカウントダウンが開始され、Windows でシステムのドライバーの使用状況を確認する時間が長くなります。

評価基準

Windows では、次の条件を監視して、デバイスを適用する準備ができているタイミングを判断します。

  • システムのアップタイム : デバイスは 100 時間 のアクティブな使用を累積している必要があります。

  • ブート セッション : 評価が開始されてから、デバイスが少なくとも 3 回 (Windows Serverで 2 回) 再起動されている必要があります。

  • ポリシー違反なし : 評価期間中にブロックされるドライバーが読み込まれた場合、アップタイム セッション カウンターとブート セッション カウンターは ゼロにリセット され、評価期間が延長されます。

デバイスがポリシーに合格し、これらの条件を満たすドライバーを一貫して読み込む場合、システムは適用の適切な候補と見なされます。

強制モード

評価条件が満たされると、Windows は強制 モード に自動的に切り替わります。 このフェーズでは、次の操作を行います。

  • デバイスは、Windows ドライバー ポリシーの署名要件を満たしていないドライバーから保護されます。

  • これらのドライバー は、読み込みがブロック され、確認する Microsoft 用の診断データと、確認できる Windows イベント ログ内のエントリが生成されます。

  • 特定のドライバーと発行元の許可リストは、WHCP 認定されていない特定の広く使用されているレガシ ドライバーが引き続き機能することを許可するポリシーに含まれています。

適用モードがアクティブになると、ポリシーは再起動後も有効なままになります。

よくある質問

このポリシーによってドライバーがブロックされている場合は、次の情報が表示されることがあります。

  • ハードウェア デバイスが正しく機能していません。

  • 周辺機器またはコンポーネント (プリンター、ネットワーク アダプター、GPU など) が認識されません。

  • カーネル ドライバーに依存するアプリケーションの起動に失敗します。

Windows ドライバー ポリシーが責任を負うかどうかを確認するには、次の 2 つの方法を使用してコード整合性イベント ログを確認します。

コード整合性イベントを手動で照会する    

  1. [スタート] ボタンを右クリックし、[イベント ビューアー ] を選択します。

  2. 左側のウィンドウで、[ アプリケーションとサービス ログ ] > [Microsoft > Windows > CodeIntegrity > Operational] に移動します

  3. 次の ID を持つイベントを探すか、ログをフィルター処理します。

  • イベント ID 3076 - ドライバーが 監査されました (ポリシーが監査モードであるため、ブロックされましたが、許可されました)。

  • イベント ID 3077 — 適用ポリシーに違反したため、ドライバーの読み込みが ブロック されました。

イベントの詳細で、[ ポリシー ID ] フィールドを探します。 この機能によって発生するイベントは、次のいずれかのポリシー GUID を参照します。

  • 監査ポリシー : {784C4414-79F4-4C32-A6A5-F0FB42A51D0D}

  • ポリシーの適用 : {8F9CB695-5D48-48D6-A329-7202B44607E3}

PowerShell を使用してコード整合性イベントを照会する

PowerShell を使用すると、この機能に関連するイベントをすばやく見つけることができます。

# Find audit events (Event ID 3076) from the Windows Driver audit policy

$events = Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -FilterXPath "*[System[EventID=3076]]" -ErrorAction SilentlyContinue |

Where-Object { $_.Message -like '*784C4414-79F4-4C32-A6A5-F0FB42A51D0D*' }

$results = $events | ForEach-Object {

$xml = [xml]$_.ToXml()

$data = $xml.Event.EventData.Data

[PSCustomObject]@{

TimeCreated = $_.TimeCreated

DriverName    = ($data | Where-Object { $_.Name -eq 'File Name' }).'#text'

ProductName = ($data | Where-Object { $_.Name -eq 'ProductName' }).'#text'

ParentProcess = ($data | Where-Object { $_.Name -eq 'Process Name' }).'#text'

}

}

$results | Select-Object DriverName, ProductName, ParentProcess -Unique | Format-Table -AutoSize -Wrap

# Find block events (Event ID 3077) from the Windows Driver enforced policy

$events = Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -FilterXPath "*[System[EventID=3077]]" -ErrorAction SilentlyContinue |

Where-Object { $_.Message -like '*8F9CB695-5D48-48D6-A329-7202B44607E3*' }

$results = $events | ForEach-Object {

$xml = [xml]$_.ToXml()

$data = $xml.Event.EventData.Data

[PSCustomObject]@{

TimeCreated = $_.TimeCreated

DriverName    = ($data | Where-Object { $_.Name -eq 'File Name' }).'#text'

ProductName = ($data | Where-Object { $_.Name -eq 'ProductName' }).'#text'

ParentProcess = ($data | Where-Object { $_.Name -eq 'Process Name' }).'#text'

}

}

$results | Select-Object DriverName, ProductName, ParentProcess -Unique | Format-Table -AutoSize -Wrap

イベントの詳細には、監査またはブロックされたドライバーの名前と、ドライバーを読み込もうとしたプロセスの名前が含まれます。これは、影響を受けるドライバーまたはデバイスを特定するのに役立ちます。

デバイス ユーザーまたは IT 管理者の場合

  1. 上記の手順を使用してイベント ログを確認し、ブロックされているドライバーを特定します。

  2. 更新されたドライバーのWindows Updateを確認します。 WHCP 認定の署名済みドライバーは、Windows Updateを通じて既に利用できます。 [設定] > [Windows Update > の詳細設定 ] > [オプションの更新] > [ドライバーの更新プログラム] に移動して、使用可能なドライバー更新プログラムをチェックします。

  3. 製造元の Web サイトにアクセス します。 ベンダーの公式サポート ページから最新のドライバー バージョンをダウンロードします。新しいバージョンは WHCP 署名されている可能性が高くなります。

4. ドライバーを公開する ハードウェアまたはソフトウェア ベンダーに問い合わせてください 。 WHCP 認定バージョンのドライバーが使用可能かどうか、およびアクセスする場所を確認します。 ほとんどのベンダーは、既に WHCP がドライバーを認定しています。

ドライバー発行元の場合

Windows 用のカーネル モード ドライバーを開発して配布する場合は、ドライバーが WHCP プロセスを通じて署名されていることを確認する必要があります。

  1. Windows ハードウェア デベロッパー センター に参加します 。 有効な EV (拡張検証) コード署名証明書を 使用して Windows ハードウェア デベロッパー センター に登録します。

  2. 申請 を作成します 。 ハードウェア ダッシュボードで、新しい製品を作成し、認定のためにドライバー パッケージを送信します。

  3. HLK テストを実行します Windows ハードウェア ラボ キット (HLK) を使用して、ドライバーの種類とデバイス カテゴリに必要なテストを実行します。

  4. 署名のために送信 します。 テストに合格したら、HLK の結果をドライバー パッケージと共に送信します。 MICROSOFT は WHCP 証明書を使用してドライバーに署名します。

  5. 署名されたドライバーを配布します 。 署名したら、Windows Updateや Web サイトを通じて WHCP 認定ドライバーを発行します。

重要: WHCP 認定なしでクロス証明書のみを使用して署名されたドライバーは、Windows ドライバー ポリシーが適用モードのシステムでブロックされる可能性があります。

警告: この機能を無効にすると、デバイスのセキュリティが低下します。 有効にしたまま、ドライバー発行元と連携して、代わりに WHCP 署名ドライバーを取得することをお勧めします。

Windows ドライバー ポリシーは、EFI システム パーティションに格納され、Windows の初期ブート コンポーネントによって保護される署名付きコード整合性ポリシーです。 この機能をオフにする場合は、管理者として実行されている悪意のあるソフトウェアが機能を改ざんできないように、次の手動手順が必要です。

手順 1: セキュア ブートを無効にする

  1. コンピューターを再起動し、 UEFI ファームウェア設定メニュー (BIOS) を入力します。 通常、これを行うには、起動時にキーを押します (デバイスの製造元のドキュメントチェック F2 F10 Del Esc など)

    1. または、Windows で[ 設定] > [ システム > 回復 ] > [詳細設定] > [ 今すぐ再起動] に移動します。 次に、[トラブルシューティング ] > [UEFI ファームウェア設定 ] > [再起動] > [詳細設定 ] を選択します

  2. ファームウェアの設定で、[ セキュア ブート ] オプション (通常は [ セキュリティ ] タブまたは [ ブート ] タブ) を見つけます。

  3. [セキュア ブート] を [無効] に設定します。

  4. 変更を保存し、ファームウェア設定を終了します。

手順 2: EFI システム パーティションからポリシー ファイルを削除する

1. 管理者として PowerShell を 開きます。

2. 次を実行して EFI システム パーティションをマウントします。

mountvol S: /s

'S:' の代わりに、使用可能な任意のドライブ文字を使用できます。

3. 監査ポリシー ファイルを削除します。

del S:\EFI\Microsoft\Boot\CiPolicies\Active\{784C4414-79F4-4C32-A6A5-F0FB42A51D0D}.cip

4. 適用ポリシーも存在する場合は、削除します。

del S:\EFI\Microsoft\Boot\CiPolicies\Active\{8F9CB695-5D48-48D6-A329-7202B44607E3}.cip

5. また、Windows システム ディレクトリのポリシーをチェックして削除します。

del %windir%\System32\CodeIntegrity\CiPolicies\Active\{784C4414-79F4-4C32-A6A5-F0FB42A51D0D}.cip

del %windir%\System32\CodeIntegrity\CiPolicies\Active\{8F9CB695-5D48-48D6-A329-7202B44607E3}.cip

6. EFI パーティションのマウントを解除します。

mountvol S: /d

手順 3: コンピューターを再起動する

デバイスを再起動して変更を有効にします。 再起動後、ポリシーはアクティブではなくなり、WHCP 認定を持たないドライバーを含むすべての署名済みドライバーの読み込みが許可されます。

手順 4: セキュア ブートを再度有効にする

ポリシー ファイルを削除した後、UEFI ファームウェア設定でセキュア ブートを再度有効にして、他のセキュア ブート保護を維持します。

この機能は 評価モード で開始され、ログは記録されますが、認定されていないドライバーはブロックされません。 システムが評価基準 (十分なアップタイムとポリシー違反のない再起動) を満たすと、ポリシーは自動的に 適用モード に移行し、WHCP 署名されていないドライバーはブロックされます。 これにより、以前に動作していたドライバーの読み込みが停止する可能性があります。

現在、個々のドライバーのポリシーをバイパスする方法はありません。 機能を完全に無効にすることも (上記を参照)、できればドライバーの発行元に問い合わせて、WHCP で署名されたバージョンのドライバーを提供するように依頼することもできます。

この機能は 、カーネル モード ドライバーにのみ 適用されます。 ユーザー モード アプリケーションは、このポリシーの影響を受けません。

PowerShell で管理者として次のコマンドを実行して、チェックできます。

$evalPolicy = (citool -lp -json | ConvertFrom-Json).Policies | Where-Object { $_.PolicyID -eq "784c4414-79f4-4c32-a6a5-f0fb42a51d0d" }

$enforcedPolicy = (citool -lp -json | ConvertFrom-Json).Policies | Where-Object { $_.PolicyID -eq "8F9CB695-5D48-48D6-A329-7202B44607E3" }

if ($enforcedPolicy.IsEnforced -and $enforcedPolicy.IsAuthorized) { Write-Host "✅ The feature is in enforcement mode" -ForegroundColor Green }

elseif($evalPolicy.IsEnforced -and $evalPolicy.IsAuthorized) { Write-Host "✅ The feature is in evaluation mode" -ForegroundColor Green }

else { Write-Host "❌ The feature is not available on this system" -ForegroundColor Red }

はい - Windows Server 2025 以降のサーバー プラットフォーム。 ただし、Windows Serverでは、ブート セッションの要件は 2 回の再起動 です (クライアント エディションでは 3 回に比べて)。 その他の条件はすべて同じです。

Windows をリセットまたは再インストールすると、この機能は評価モードで新たに開始されます。 評価カウンターがリセットされ、適用への移行が最初から再度開始されます。

補足説明

ブロックされたドライバーに関する問題が引き続き発生する場合は、 Microsoft コミュニティ フォーラム にアクセスするか、 Microsoft サポートにお問い合わせください

この機能に関するフィードバックをお待ちしております。 エクスペリエンスを共有するには:

  1. Windows で フィードバック ハブ を開きます ( Win + F キーを押します)。

2. 手順 2 — カテゴリを選択 し、[セキュリティとプライバシー ] > [アプリ制御 ] を選択します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。