インストールされているドライバー パッケージのインベントリを作成する

この記事では、インストールされているサード パーティ製 ドライバー パッケージ のインベントリを作成し、セキュリティ リスクを高める可能性がある不要なドライバーを特定する方法について説明します。 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

その他のドライバー ツール

他のツールも利用できますが、制限があります。 代わりに 、PnPUtilGet-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

ドライバーを削除する前に、ドライバーがシステム操作にとって重要ではないことを確認します。 重要なドライバーを削除すると、システムが不安定になり、データが失われる可能性があります。

こちらも参照ください