Windows 11でIntel GPUドライバーを削除・ブロックしたあと、
Windows Update後に、Intel GPUドライバーが勝手に戻っていないか確認したい
という場合があります。
この記事では、設定後のPCを短時間で確認するために、次の4点をチェックします。
1. DriverStore
→ Intel Display Driverが戻っていないか
2. 現在のDisplay Device
→ どのドライバーで動作しているか
3. DenyDeviceIDs
→ Intel GPUの再インストール防止設定が残っているか
4. Group Policy
→ 設定がPCへ適用されているか
今回の環境では、Intel GPUドライバーを使用すると、
Windowsロゴ
↓
ログイン画面直前
↓
ブラックスクリーン
となる症状が発生していました。
切り分けた結果、
Intel GPU Driver
↓
Microsoft Basic Display Adapter
↓
症状改善
を確認しています。
そのため、この記事ではMicrosoft Basic Display Adapterで動作している状態を意図した正常状態として確認します。
先に結論:確認するコマンド
まず確認だけしたい場合は、以下です。
DriverStore
pnputil /enum-drivers /class Display
現在のDisplay Device
Get-PnpDevice -Class Display
DenyDeviceIDs
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDs
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDsRetroactive
ブロック対象Hardware ID
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceIDs"
Group Policy適用結果
Command Promptの場合:
gpresult /h "%USERPROFILE%\Desktop\gpresult.html"
PowerShellの場合:
gpresult /h "$env:USERPROFILE\Desktop\gpresult.html"
今回の環境では最終的に、
DriverStore
→ Intel Display Driverなし
Display Device
→ Microsoft Basic Display Adapter
DenyDeviceIDs
→ 有効
Intel GPU Hardware ID
→ 登録済み
Group Policy
→ 適用済み
になっていることを確認します。
1. DriverStoreにIntel Display Driverが戻っていないか確認する
管理者としてPowerShellまたはCommand Promptを起動し、次を実行します。
pnputil /enum-drivers /class Display
このコマンドでは、DriverStoreに登録されているサードパーティ製Display Driverを確認できます。
今回確認したいのは、
Intel / Intel CorporationのDisplay DriverがDriverStoreに存在していないこと
です。
例えば、
Published Name : oem42.inf
Provider Name : Intel Corporation
Class Name : Display
のようなエントリが表示された場合、Intel Display DriverがDriverStoreに残っています。
以前削除した、
oemXX.inf
が再び登録されていないかも確認します。
今回の確認基準は次のとおりです。
| 確認項目 | 期待する状態 |
|---|---|
| IntelのDisplay Driver | 見つからない |
削除したoemXX.inf
|
再登録されていない |
Intel Display Driverが再び登録されていた場合は、DriverStoreへの再導入が発生していないか確認します。
2. 現在使われているDisplay Deviceを確認する
DriverStoreにドライバーが存在することと、
現在そのドライバーが使用されていること
は別です。
現在のDisplay Deviceを確認します。
管理者PowerShellで、
Get-PnpDevice -Class Display
を実行します。
今回の環境では、
Status Class FriendlyName
------ ----- ------------
OK Display Microsoft Basic Display Adapter
となっていれば、意図した状態です。
つまり、
Intel GPU Driver
↓
使用されていない
Microsoft Basic Display Adapter
↓
使用中
になっていることを確認します。
Microsoft Basic Display Adapterを使用することが、一般的なWindows PCで推奨されるという意味ではありません。
今回は障害切り分けの結果、この構成を意図的に使用しています。
3. InstanceIdを取得する
もう少し詳しく確認するため、Display DeviceのInstanceIdを取得します。
$dev = Get-PnpDevice -Class Display | Select-Object -First 1
$dev.InstanceId
例えば、
PCI\VEN_8086&DEV_XXXX&SUBSYS_XXXXXXXX&REV_XX\...
のような値が表示されます。
InstanceIdは、
Windows上で現在認識されているデバイスを特定するためのID
です。
前回ブロック設定で使用したHardware IDとは少し役割が異なります。
Hardware ID
↓
どの種類のハードウェアか
↓
DenyDeviceIDsのブロック条件などに使用
InstanceId
↓
Windows上のどのデバイスか
↓
Get-PnpDevicePropertyなどの詳細確認に使用
今回は、このInstanceIdを使ってドライバー情報を確認します。
4. 現在デバイスに関連付けられているドライバーを確認する
取得したInstanceIdを使います。
Get-PnpDeviceProperty -InstanceId $dev.InstanceId |
Where-Object {
$_.KeyName -like "*DEVPKEY_Device_Driver*" -or
$_.KeyName -like "*DEVPKEY_Device_DriverVersion*"
} |
Select-Object KeyName, Data
ここで確認しているのは、
DriverStoreに何が保存されているかではなく、現在のDisplay Deviceにどのドライバー情報が関連付けられているか
です。
イメージとしては、
pnputil /enum-drivers
↓
PC内に保存されているDriver Packageを見る
Get-PnpDevice
Get-PnpDeviceProperty
↓
現在認識されているDevice側を見る
という違いです。
今回の目的は、
Intel GPU Driver
↓
再び使用されていない
ことの確認です。
Get-PnpDevicePropertyで取得できるプロパティは、Windowsの状態やデバイスによって多少異なります。
そのため、特定の文字列が必ず表示されることより、
現在のDisplay Deviceにどのドライバーが関連付けられているか
を確認することが重要です。
5. DenyDeviceIDsが有効か確認する
次に、
Intel GPUドライバーの再導入を防ぐ設定
が残っているか確認します。
次を実行します。
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDs
続いて、
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDsRetroactive
今回確認する値は、
DenyDeviceIDs
↓
0x1
DenyDeviceIDsRetroactive
↓
0x1
です。
| 設定 | 期待値 |
|---|---|
| DenyDeviceIDs | 1 |
| DenyDeviceIDsRetroactive | 1 |
これで、
対象Device IDに一致するデバイスのインストール制限
↓
有効
になっていることを確認します。
6. DenyDeviceIDsにIntel GPUのHardware IDが登録されているか確認する
設定自体が有効でも、
ブロックしたいHardware IDが登録されていなければ意味がありません。
次を実行します。
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceIDs"
ここに、設定したIntel GPUのHardware IDが存在することを確認します。
例えば、
PCI\VEN_8086&CC_0300
などです。
確認しているものを整理すると、
DenyDeviceIDs = 1
↓
ブロック機能が有効
DenyDeviceIDsRetroactive = 1
↓
既存デバイスにも制限を適用
DenyDeviceIDs配下
↓
実際にブロックするHardware ID
となります。
つまり、
ブロック機能がON
+
ブロック対象IDが登録済み
の両方が必要です。
今回の最低限の確認状態は、
DenyDeviceIDs
↓
1
DenyDeviceIDsRetroactive
↓
1
DenyDeviceIDsの一覧
↓
Intel GPUのHardware IDあり
です。
7. DriverStoreを削除しただけでは再インストールを防げない
ここは今回の構成で重要だったポイントです。
DriverStoreからIntel Display Driverを削除すると、
現在
↓
Intel Driverなし
という状態にはできます。
しかし、それだけでは、
Windows Update
↓
Intel GPU Driverを再取得
↓
DriverStoreへ再登録
される可能性があります。
そのため今回は、
DriverStore cleanup
+
DenyDeviceIDs
を組み合わせています。
役割としては、
DriverStore cleanup
↓
過去に入ったDriverを削除
DenyDeviceIDs
↓
今後の再導入を制御
です。
8. gpresultでGroup Policyの適用状態を確認する
最後に、
設定を書いただけでなく、PCへGroup Policyとして適用されているか
を確認します。
Command Promptの場合は、
gpresult /h "%USERPROFILE%\Desktop\gpresult.html"
PowerShellから実行する場合は、
gpresult /h "$env:USERPROFILE\Desktop\gpresult.html"
を使用します。
実行するとデスクトップに、
gpresult.html
が作成されます。
HTMLを開き、
Computer Configuration
↓
Administrative Templates
↓
Device Installation Restrictions
周辺を確認します。
ここで重要なのは、
設定した
だけで終わらず、
そのPCへ実際に適用されている
ところまで確認することです。
レジストリだけでも現在値は確認できますが、gpresultをHTMLで残しておけば、
その時点でPCにどのGroup Policyが適用されていたか
を後から確認できます。
複数台のPCや長期間運用するEdge PCでは、障害調査時の記録としても役立ちます。
9. Windows Update後に確認するチェックリスト
Windows Updateや再起動後は、最低限次の4点を確認します。
DriverStore
Intel Display Driver
↓
なし
確認:
pnputil /enum-drivers /class Display
現在のDisplay Device
Microsoft Basic Display Adapter
↓
使用中
確認:
Get-PnpDevice -Class Display
Driver再導入防止
DenyDeviceIDs
↓
有効
DenyDeviceIDsRetroactive
↓
有効
Intel GPU Hardware ID
↓
登録済み
確認:
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDs
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDsRetroactive
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceIDs"
Group Policy
Device Installation Restrictions
↓
対象PCへ適用済み
確認:
gpresult /h "%USERPROFILE%\Desktop\gpresult.html"
10. 今回の構成を整理する
今回行ったIntel GPUドライバー対策を時系列で整理すると、
過去
↓
DriverStoreに残っていたIntel Display Driverを削除
現在
↓
Microsoft Basic Display Adapterで動作していることを確認
未来
↓
DenyDeviceIDsでIntel GPU Driverの再導入を制御
設定状態
↓
gpresultでGroup Policy適用を確認
となります。
つまり確認したいのは、
DriverStore
+
現在使用中のDriver
+
再インストール防止設定
+
Group Policy適用状態
の4つです。
特にWindows Update後は、
「以前設定したから大丈夫」ではなく、現在も意図した状態が維持されているか
を確認するようにしています。
まとめ
Windows 11でIntel GPUドライバーを削除・ブロックしたあとに確認する項目は、次の4つです。
| 項目 | 確認内容 | コマンド |
|---|---|---|
| DriverStore | Intel Driverが戻っていない | pnputil /enum-drivers /class Display |
| Display Device | 意図したDriverで動作している | Get-PnpDevice -Class Display |
| DenyDeviceIDs | 再導入防止設定が有効 | reg query |
| Group Policy | PCへ設定が適用されている | gpresult /h |
今回の環境では、
Intel GPU Driver
↓
ブラックスクリーン
Microsoft Basic Display Adapter
↓
症状改善
という切り分け結果だったため、この状態を維持できていることを確認しました。
ドライバー関連の問題では、
「削除できたか」だけでなく「戻っていないか」まで確認する
ことが重要だと考えています。
次回:Windows Defender Firewallで必要な通信だけを残す
ここまでは、
Intel GPU Driverの再導入制御
+
DriverStore cleanup
+
設定後の状態確認
を行い、
意図したドライバー構成を維持できているか
を確認してきました。
しかし、Edge PCを長期間運用するうえでは、ドライバーだけでなく、
端末がどの通信を許可し、どの通信を遮断するか
というネットワーク側の設計も重要になります。
Edge PCでは、
接続機器
↓
Edge PC
↓
Cloud
という通信経路を維持する必要があります。
そのため、単純にFirewallを厳しくすればよいわけではありません。
次回は、
必要な通信だけを残し、本来の機能を維持しながら不要な通信を閉じるWindows Defender Firewallの設計
について整理します。
注意事項
本記事は、実際のEdge PC運用・障害対応経験をもとに、機密情報に配慮して一部を一般化・匿名化しています。
特定の組織、施設、製品、システムについて説明するものではありません。
また、デバイスドライバーやGroup Policyの変更は、デバイスの動作やWindowsの安定性に影響する可能性があります。
特に、
DenyDeviceIDs
DriverStore
Device Installation Restrictions
などを変更する場合は、
- 対象デバイス
- Hardware ID
- 現在使用しているドライバー
- 設定を解除する方法
- 復旧手段
を事前に確認してください。
実環境へ適用する場合は、検証環境で動作確認を行い、設定を元に戻せる手段を確保したうえで実施してください。