この記事では、インストールされているサード パーティ製 ドライバー パッケージ のインベントリを作成し、セキュリティ リスクを高める可能性がある不要なドライバーを特定する方法について説明します。 PnPUtil と PowerShell を使用してシステムを監査し、不要なドライバー パッケージを削除する方法について説明します。
不要なドライバー パッケージを削減する理由
ドライバーのフットプリントを減らす理由 システム上の各不要なドライバー:
- 潜在的なセキュリティ リスクを引き起こす。
- メモリとシステム リソースを消費します。
- システムクラッシュの原因となる可能性があります。
重要なドライバーのみを維持することで、セキュリティと安定性の両方を向上させることができます。
ドライバーのセキュリティリスクを評価するときは、デバイスにインストールされているかどうかに関係なく、システムに存在するすべての ドライバー パッケージ を検討してください。 存在するドライバー パッケージ (およびサード パーティと Microsoft) を知ることは、セキュリティ 上のリスクを引き起こす可能性のある不要なドライバー パッケージまたは古いドライバー パッケージを特定するのに役立ちます。
1 つの方法は、新しいシステムにインストールされているドライバー パッケージの初期レポートを作成し、定期的にレポートを再度実行して、予期しないドライバー パッケージを検索することです。
インストールされているドライバー パッケージのインベントリ - PnPUtil
PnPUtil は Windows に組み込まれており、ドライバー パッケージを管理するための推奨ツールです。 追加のダウンロードは必要ありません。
次の手順: 次のセクションの基本的なコマンドについて説明するか、 高度な PnPUtil の例を表示します。
PnPUtil /enum-drivers
enum-driversを使用して、ドライバー ストア内のサード パーティ製ドライバー パッケージを一覧表示します。
pnputil /enum-drivers
/filesを使用して、すべてのサード パーティ製ドライバー パッケージを一覧表示し、関連付けられているドライバー ファイルを表示します。
pnputil /enum-drivers /files
PnPUtil を使用してドライバー インベントリ レポートをエクスポートする
/formatオプションと/output-fileオプションを使用して、インストールされているドライバーフットプリントのレポートを作成します。 これらのオプションを使用して、システム上のドライバー パッケージを収集するスクリプトを作成します。 スクリプトを使用して既定の出力または 'text' /format オプションを処理しないでください。これは、その出力が変更され、ローカライズされるためです。 出力は、システムにインストールされている言語によって異なります。
/format - 出力をテキスト、XML、または CSV として書式設定します。
/output-file [<filename>] - 出力をオプションのファイル名に書き込みます。
このコマンド例では、PnPUtil ユーティリティを使用して、システムに現在存在するすべてのサード パーティ製ドライバー パッケージを列挙します。 これには、関連付けられているドライバー ファイルに関する情報が含まれており、結果が CSV (Comma-Separated 値) 形式で出力されます。 出力は、 MyDriverFileInventory.CSVという名前のファイルに保存されます。
pnputil /enum-drivers /files /format CSV /output-file MyDriverFileInventory.CSV
PowerShell スクリプトを使用して追加情報を取得する
システム上の特定のドライバーを検索するには、次の PowerShell スクリプトを使用します。
例 1: 未使用のドライバー パッケージを検索する
このスクリプトは、どのデバイスにもインストールされていない OEM ドライバー パッケージを識別します (デバイス数 = 0)。
[xml] $pnputilOutput = pnputil /enum-drivers /devices /format xml
$pnputilOutput.pnputil.driver | where {$_.devices.count -eq 0}
例 2: 特定のファイルの種類を持つドライバー パッケージを検索する
このスクリプトは、 .sysなど、特定のファイル拡張子のファイルを含むすべての OEM ドライバー パッケージを検索します。
[xml] $pnputilOutput = pnputil /enum-drivers /devices /files /format xml
$pnputilOutput.pnputil.driver | where {$_.Files.File.Name -like "*.sys"}
$sysDrivers = $pnputilOutput.pnputil.driver | Where-Object {$_.Files.File.Name -like "*.sys"}
Write-Host "Found $($sysDrivers.Count) driver(s) with .sys files.`n"
Windows イメージと仮想ハード ディスク
Windows イメージ (.wim) ファイルまたは仮想ハード ディスク (.vhd または .vhdx) の場合は、最初に 展開イメージのサービスと管理ユーティリティ (DISM)/Mount-Image コマンドを使用します。
Mount-WindowsImage -ImagePath "D:\Images\Windows11.vhdx" -Index 1 -Path "C:\Mount"
次に、 Get-WindowsDriver コマンドレット を使用して情報を表示します。 使用したマウント パスを指定します。
Get-WindowsDriver -Path "C:\Mount"
Get-WindowsDriver コマンドレットでは、-Online オプションを使用して、起動した Windows 環境のドライバーを一覧表示することもできます。
Get-WindowsDriver -Online
その他のドライバー ツール
他のツールも利用できますが、制限があります。 代わりに 、PnPUtil と Get-WindowsDriver コマンドレット を使用してください。
デバイス マネージャー GUI では、デバイス別に整理されたドライバー情報のビュー (デバイスごとに -> を表示)、またはドライバー情報別に整理されたデバイス (ドライバー別の表示 ->Devices) が提供されます。 この情報には、デバイスの種類、デバイスの状態、製造元、デバイス固有のプロパティ、および特定のデバイスのドライバー ファイルに関する情報が含まれます。 [表示] ->[非表示のデバイスを表示] を使用して、追加情報を表示します。 詳細については、「 デバイス マネージャーの使用」を参照してください。
システム情報 (Msinfo32.exe) ツールは、[ ソフトウェア環境]、[ システム ドライバー] の下のドライバーを一覧表示します。 表示される列は並べ替え可能であり、ドライバーの状態または種類をグループ化できます。 詳細については、「 Microsoft システム情報 (Msinfo32.exe) ツールの説明」を参照してください。 Msinfo32 には、ドライバー パッケージを一覧表示および解析する方法はありません。 代わりに PnPUtil を使用してください。
driverqueryは Windows に組み込まれていますが、誤解を招くような出力が生成される可能性があるため、推奨されません。 代わりに、より多くの機能を備える PnPUtil を 使用してください。
PnPUtil を使用してドライバーを削除する
PnPUtil を使用して不要なドライバーを削除し、セキュリティ リスクを軽減し、システムの信頼性を高めます。 ドライバーを削除する前に、システム操作に不可欠ではないことを確認します。
ドライバーを安全に削除できると判断した場合は、PnPUtil を使用して削除します。 ドライバーが削除された後、すべてのハードウェアとソフトウェアが正しく機能することをテストするには、重要でない PC を使用します。 常に、バックアップを使用し、システム復元ポイントを確立します。
oem42.inf などの OEM ドライバー名を見つけて、次のコマンドを使用して削除します。
pnputil /delete-driver oem42.inf /uninstall
パラメーターの説明:
/delete-driver <INF>: 削除するドライバーを指定します。
/uninstall: 現在使用しているデバイスからドライバーをアンインストールします。
Important
ドライバーを削除する前に、ドライバーがシステム操作にとって重要ではないことを確認します。 重要なドライバーを削除すると、システムが不安定になり、データが失われる可能性があります。
こちらも参照ください
- PnPUtil リファレンス - コマンドの完全なドキュメント
- PnPUtil コマンド構文 - 詳細な構文ガイド