Windows ドライバー ポリシー

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 は、デバイスを強制する準備ができているかどうかを判断するために、次の条件を監視します。

  • システムの稼働時間 : デバイスでは、 250 時間 のアクティブ使用が蓄積されている必要があります。
  • ブート セッション : 評価が開始されてから、デバイスは少なくとも 3 回 (Windows Server では 2 回) 再起動されている必要があります。
  • ポリシー違反なし : 評価期間中にブロックされるドライバーが読み込まれると、稼働時間とブート セッション カウンターは 0 にリセット され、評価期間が延長されます。

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

強制モード

評価基準が満たされると、Windows は自動的に 強制モード に移行します。 このフェーズの場合:

  • デバイスは、Windows ドライバー ポリシーの署名要件を満たしていないドライバーから保護されます。
  • これらのドライバーは、Microsoft が確認するための診断データ、および確認できる Windows イベント ログのエントリの 読み込みと生成がブロックされます
  • 特定のドライバーと発行元の許可リストがポリシーに含まれており、まだ WHCP 認定を受けていない特定の広く使用されているレガシ ドライバーが引き続き機能を実行できるようにします。

強制モードがアクティブになると、ポリシーは再起動しても有効です。

よくある質問

ドライバーがブロックされているかどうかを知る操作方法

ドライバーがこのポリシーによってブロックされている場合、次の画面が表示される可能性があります:

  • ハードウェア デバイスが正しく機能していません。
  • 周辺機器またはコンポーネント (プリンター、ネットワーク アダプター、GPU など) が認識されません。
  • カーネル ドライバーに依存するアプリケーションが起動に失敗します。

次の 2 つの方法を使用してコード整合性イベント ログを確認すると、Windows ドライバー ポリシーが原因であるかどうかを確認できます。

コード整合性イベントのクエリを手動で実行する

  1. [スタート] ボタンを右クリックし、[イベント ビューアー] を選択します。
  2. 左側のウィンドウで、[アプリケーションとサービス ログ]>Microsoft>Windows>CodeIntegrity>Operational に移動します
  3. 次の ID を持つイベントについて、ログを参照またはフィルター処理します。
  • イベント ID 3076 - ドライバーが 監査されました (ブロックされますが、ポリシーが監査モードであるため許可されました)。
  • イベント ID 3077 — 強制ポリシーに違反したため、ドライバーの読み込みが ブロックされました

[Event Details] で、[ Policy 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 でドライバーが更新されているか確認します。 WRCP 認定の署名付きドライバーは、Windows Update を介して既に入手できる場合があります。 [設定]>Windows Update>詳細オプション>オプションの更新プログラム>ドライバーの更新プログラム] に移動しチェックて、利用可能なドライバー更新プログラムを確認します。

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

  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 ドライバー ポリシーを持つシステムでブロックされる可能性があります。

Windows ドライバー ポリシーをオフにする操作方法

警告

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

手順は、インストールされている Windows 更新プログラムによって異なります。 [設定]>Windows Update>更新履歴 に移動してチェックできます。

2026 年 7 月の更新プログラムまたはそれ以降の更新プログラムが適用されたデバイス

これらのデバイスでは、管理者はセキュア ブート設定を変更せずにポリシーをオフにできます。

  1. [スタート] を右クリックし、[ターミナル (管理)] を選択します。

  2. 次のコマンドを実行します。

    CiTool.exe --remove-policy "{8F9CB695-5D48-48D6-A329-7202B44607E3}"
    
  3. デバイスを再起動します。

ポリシーは、コマンドを実行した後も引き続き現在の Windows セッションを保護します。 再起動すると変更が完了し、今後のセッションではポリシーが無効になります。

2026 年 7 月の更新プログラムのないデバイス

以前のバージョンの Windows では、このポリシーには追加のスタートアップ保護があります。 セキュア ブートを一時的にオフにし、強制ポリシーを手動で削除する必要があります。

  1. コンピューターを再起動し、 UEFI ファームウェア設定メニュー (BIOS とも呼ばれます) に入ります。 このメニューを開くのに使用されるキーは製造元によって異なりますが、多くの場合、 F2F10Deleteまたは Esc です。

    Windows からメニューを開くこともできます。 [設定]>システム>回復>高度なスタートアップ>今すぐ再起動の順に移動します。 次に、[トラブルシューティング]>詳細オプション>UEFI ファームウェアの設定>再起動の順に選択します。

  2. 通常は [セキュリティ] または [ブート] の下にある [セキュア ブート] を見つけて、[無効] に設定します。 変更を保存して Windows を起動します。

  3. [スタート] を右クリックし、[ターミナル (管理)] を選択します。

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

    mountvol S: /s
    

    S: が既に使用されている場合は、使用可能な別のドライブ文字を選択し、その文字を残りのコマンドで使用します。

  5. EFI システム パーティションと Windows から強制ポリシーを削除します。

    Remove-Item "S:\EFI\Microsoft\Boot\CiPolicies\Active\{8F9CB695-5D48-48D6-A329-7202B44607E3}.cip" -Force
    Remove-Item "$env:windir\System32\CodeIntegrity\CiPolicies\Active\{8F9CB695-5D48-48D6-A329-7202B44607E3}.cip" -Force
    

    Windows でファイルが見つからないと報告された場合は、次の手順に進みます。

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

    mountvol S: /d
    
  7. デバイスを再起動します。 これでポリシーは無効になります。

  8. 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 に影響しますか?

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

Windows をリセットまたは再インストールするとどうなりますか?

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

補足説明

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

この機能に関するフィードバックをお寄せください。 ご感想を共有するには:

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

2. [ステップ 2 — カテゴリを選択] で、[セキュリティとプライバシー]>アプリ コントロール を選択します。