Windows の PowerShell からドライバーを一覧表示および管理する方法

最終更新: 04/12/2025
  • PowerShellの リスト、フィルタリング、エクスポートが可能 ドライバー Get-WmiObject や Get-WindowsDriver などのコマンドレットを使用します。
  • ドライバークエリ、 デバイスマネージャ SCCM (Get-CMDriver) はコントローラー インベントリを補完します。
  • 動的にロードされるドライバーの中には、WinDbg や検証ツールなどの追加ツールを必要とするものもあります。
  • PSWindowsUpdate などのモジュールや外部ユーティリティを使用すると、ドライバーを簡単に更新して最新の状態に保つことができます。

PowerShellからドライバーを一覧表示する

Windows環境では、 インストールされているドライバーとそれぞれのバージョンを制御する これは、システムの安定性の維持、ブルースクリーンのトラブルシューティング、移行の準備に不可欠です。PowerShellは、デバイスマネージャーを一つ一つ操作することなく、この種のインベントリを実行できる非常に便利なツールとなっています。

次の行では PowerShellからさまざまな方法でコントローラーを一覧表示し、エクスポートする方法 ファイルを冷静に分析し、他のファイルとの違いは何なのか コマンド として driverquery またはグラフィカル ツール、さらにはオフライン イメージや動的に読み込まれるドライバーなどのより高度なシナリオを処理する方法についても説明します。

ドライバーとは何ですか? また、PowerShell からドライバーをリストする必要があるのはなぜですか?

Windowsのデバイスドライバー

Windowsでは、コントローラまたはドライバは オペレーティングシステムとコンポーネントの間の仲介役として機能する小さなソフトウェアブロック ハードウェア (グラフィックカード、チップセット、 ストレージ周辺機器 USBなど)。これらが占めるコードサイズはそれほど大きくありませんが、システムの安定性に与える影響は甚大です。

重要なドライバー(例えば、 ストレージ、ネットワーク、グラフィックス、チップセット)の誤動作により、クラッシュ、パフォーマンスの低下、さらには ブルースクリーン(BSOD)そのため、バグをデバッグしたりメジャーアップデートを準備したりするときに、インストールされているドライバーとそのバージョンの明確なリストがあると非常に役立ちます。

急いでドライバーを変更したり、アンインストールしたり、ロールバックしたりする前に、 システム復元ポイントでリスクを最小限に抑えるこの方法により、ドライバーの更新が失敗し、コンピューターが異常な動作を始めたり、正しく起動しなくなったりした場合に、元に戻すことができます。

レストランに加えて、 重要なデータをバックアップする (ドキュメント、写真、作業プロジェクトなど)、特にストレージ ドライバーに触れる場合は、間違いがあるとシステムがドライブを正しくマウントしなかったり、情報が破損したりする可能性があるため、注意してください。

インストールされているドライバーを一覧表示する PowerShell の基本コマンド

PowerShellからコントローラインベントリを取得する最も直接的な方法は WMIに頼る最もよく使用されるコマンドの 1 つは次のとおりです。

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion

このコマンドレットを使用すると、 PowerShell は Win32_PnPSignedDriver WMI クラスをクエリします。 署名された PnP ドライバーのリストと、システムが現在関連付けているデバイス名およびドライバー バージョンを返します。

各ドライバーについてもう少し詳しい情報を知りたい場合は、次のようなフィールドを追加できます。 フレンドリー名、発行日、または製造元。 例えば、

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, Manufacturer, DriverVersion, DriverDate

この相談により、あなたは 各エントリのより詳細な情報これにより、古いバージョン、特定の製造元、または何年も更新されていないドライバーを検出できます。

ドライバーリストをファイル(TXT または CSV)にエクスポートする方法

現実世界では、画面上でリストを見るだけでは十分ではありません。最も便利な方法は… 結果をファイルに保存する Excelで分析したり、チームと共有したり、変更を加える前のシステム状態のスナップショットとして保存したりすることができます。 古いドライバーを削除する.

簡単なプレーンテキストのリストだけが必要な場合は、出力をファイルにリダイレクトできます。

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion > C:\drivers.txt

このコマンドはファイルを作成する C:\drivers.txt シンプルなデバイスとバージョンのリストで、すぐに参照したり、レポートに添付したりするのに最適です。

フィルタリングや並べ替えをより簡単に管理したい場合は、 CSV と Export-CSV コマンドレット非常に一般的な例は次のとおりです。

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, DriverVersion, DriverDate | Export-CSV -Path "./MisDrivers.csv" -NoTypeInformation

このコマンドでは、 マイドライバー.csv Excelやスプレッドシートプログラムで開いて バージョンで並べ替え、ドライバーの日付でフィルタリング、特定のメーカーを検索, etc.

PowerShellではドライバーリストを「エクスポートできない」と言われることもありますが、実際には はい、完璧にエクスポートできます。 先ほどご覧いただいたように、出力リダイレクトまたはCSVエクスポートを使用します。その後、その情報をコピー、貼り付け、または任意の場所で操作できます。

  動画から音声ファイルを抽出する 25 の素晴らしいツール

メーカー、名前、または特定のテキストでドライバーをフィルタリングします

通常、すべてのドライバーを一度に表示するのではなく、特定のメーカーやデバイスの種類に焦点を絞りたいでしょう。そのためには、 Where-Object によるフィルターの連鎖 各ドライバーの特性について。

例えば、ドライバーだけを残しておきたい場合は、 インテル次のような簡単なこともできます:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion | Where-Object { $_.DeviceName -like "*Intel*" }

このコマンドはWMIによって返されたすべてのエントリを反復処理し、 デバイス名に「Intel」という文字列が含まれるデバイスのみを維持します。アスタリスクをワイルドカードとして使用すると、テキスト内の任意の場所で部分一致を検索できます。

同じ考え方は、特定のアプリケーションやハードウェアの種類に関連するドライバーを見つけるのにも使えます。例えば、 USBドライバを更新する名前の一部、メーカー、ルートのパターンなどを知っていれば、 フィルターを最も快適な特性に適応させる いずれの場合にも。

デバイス マネージャーやその他の Windows ツールからドライバーを表示する

PowerShellはリストの自動化とエクスポートに非常に強力ですが、Windowsでも コントローラーを管理するための古典的なグラフィカルツール これは既知である必要があり、コマンド パスと組み合わせる必要があります。

最初の参照点は デバイスマネージャこれには、「PC」を右クリックして「管理」を選択するか、スタートボタンのコンテキストメニュー(Windows + X)を使用するとより迅速にアクセスできます。そこに、システムにインストールされているすべてのハードウェアカテゴリがツリー表示されます。

インストールや操作に問題があるデバイスは、多くの場合、 黄色の警告アイコンいずれかをダブルクリックすると、プロパティ ウィンドウが開き、デバイスの状態を確認したり、「ドライバー」タブにアクセスしたりできます。

そのタブには次のようなオプションがあります 「ドライバーの詳細」、「ドライバーの更新」、「ドライバーのロールバック」、「無効化」または「アンインストール」これらのアクションにより、ドライバー ファイルを表示したり、新しいバージョンを検索したり、以前のバージョンに戻したり、デバイスを削除せずに無効にしたり、システムからドライバーを完全に削除したりできます。

これらのツールに加えて、Windowsにはコマンド driverquery から使用する コマンドプロンプト (CMD)。実行中 driverquery インストールされているすべてのドライバーのリストが表示され、 driverquery /v メモリ使用量、ビルド日、ステータスなどの詳細情報が表示されます。

driverquery と PowerShell の関係

driverqueryコマンドは非常に柔軟で、 ドライバーのステータスをさまざまなビューで表示するたとえば、署名されたドライバーのみを詳細に一覧表示したい場合は、次のコマンドを実行します。

driverquery /si

このモードでは 追加の有用な情報を含む署名付きドライバー セキュリティ監査や整合性チェックなど、いつでもご相談ください。 driverquery /? 利用可能なすべてのパラメータを確認し、ニーズに合わせて出力を調整します。

ドライバークエリの利点の1つは ConvertFrom-CSVを使用してPowerShellと統合できます。CSV形式で出力を生成し、パイプ処理すれば、PowerShellから操作できるオブジェクトを取得できます。典型的な例としては、次のようになります。

driverquery.exe /v /fo csv | ConvertFrom-CSV | Select-Object "Display Name", "Start Mode", "Paged Pool(bytes)", Path

これを組み合わせると PowerShellデータ操作によるDriverQueryの威力表示名、起動モード、ページメモリ、ディスク上のドライバパスなど、関心のある列のみを選択します。これは、例えば以下のような特定の種類でフィルタリングしたい場合に便利です。 グラフィックドライバー.

ドライバークエリと特定の標準WMIクエリはどちらも主に次の点に重点を置いていることに注意してください。 システムに登録されたドライバー、それらの多くは ブーツ または、レジストリ(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services)を通じて管理されます。実行時に動的に挿入される一部のドライバーは、これらのリストに表示されない場合があります。

Get-WindowsDriver を使用して PowerShell からドライバーを一覧表示する

より高度なシナリオ、特に Windows オフライン イメージ (例えばマウントされたWIM)コマンドレットは非常に便利です Get-WindowsDriverこれは、PowerShell からアクセスできる DISM ツールの一部です。

このコマンドレットを使用すると、実行中のWindowsインストールとフォルダにマウントされたイメージの両方のドライバーパッケージに関する情報を表示できます。主な構文は、以下の2つの使用モードに分かれています。 オフラインとオンライン.

  Windowsで使用中のファイルを段階的に削除する方法

のために フォルダにマウントされたオフラインイメージ一般的な形式は次のようになります。

Get-WindowsDriver -Path "C:\offline"

実行中のシステムに対して動作させるには、パラメータを使用します -オンライン:

Get-WindowsDriver -Online

追加のパラメータがない場合、Get-WindowsDriver サードパーティ製ドライバーのリストを返します 画像に表示されている。修飾子を追加すると -すべてWindows には、デフォルトでデフォルトのドライバーも含まれています。

Get-WindowsDriver の主なパラメータ

最も重要なパラメータの一つは -運転者これにより、 特定の .inf ファイルまたは .inf ファイルのフォルダー これらのドライバーに関する詳細情報を取得します。フォルダーを指定すると、有効なドライバーパッケージではない .inf ファイルは自動的に無視されます。

オフライン画像を扱う場合、パラメータ -パス マウントされたイメージのルートパスを指定します。Windowsフォルダがそのルートレベルにない場合は、 -Windowsディレクトリ 配置されている相対サブフォルダーを指定します。

パラメータ -システムドライブ これは、Windows PE で作業していて、ブートマネージャーが別のパーティションにある場合など、より特殊なシナリオで使用されます。このような場合、これは、提供すべき BootMgr ファイルを含むドライブを指定するために使用されます。

アクティビティログに関しては、パラメータ -ログパス ログファイルへのフルパスを定義できます。指定しない場合は、デフォルトのパスが使用されます。 %WINDIR%\Logs\Dism\dism.logWindows PEではRAMのスクラッチ領域です。一方、 -ログレベル ログの詳細度を、エラーのみからデバッグ情報を含むまでの範囲の値で決定します。

最後に、パラメータ -スクラッチディレクトリ これは、サービス操作中にファイルが抽出される一時フォルダです。ローカルパスでなければならず、操作が完了すると、 一時ファイル 自動的に除去され、残留物は残りません。

Get-WindowsDriver の実際の例

現在の Windows インストールのすべてのドライバーをすばやく表示するには、次のコマンドを実行します。

Get-WindowsDriver -Online -All

このコマンドは表示します すべてのドライバー(システムとサードパーティの両方) 実行中のイメージに存在します。WMIやデバイスマネージャーを使用せずに、どのパッケージがインストールされているのかを直接確認できる方法です。

を使用している場合は、 C:\offline にマウントされたイメージ サードパーティ製のドライバーのみをチェックしたい場合は、次の操作を実行できます。

Get-WindowsDriver -Path "C:\offline"

そのイメージ内の特定の OEM ドライバーの詳細なレポートが必要な場合は、.inf ファイルを指定するだけです。

Get-WindowsDriver -Path "C:\offline" -Driver "OEM1.inf"

特定のドライバー パスにある .inf ファイルにアクセスすることもできます。次に例を示します。

Get-WindowsDriver -Path "C:\offline" -Driver "C:\drivers\Usb\Usb.inf"

これらすべての場合において、 Get-WindowsDriverはオブジェクトを返します これを Select-Object、Where-Object、または Export-CSV にパイプして、情報をフィルタリング、並べ替え、または最適な形式でエクスポートすることができます。

PowerShell と SCCM: ドライバー カタログの Get-CMDriver

企業環境を管理する場合 構成マネージャー (SCCM)各コンピューター上のドライバーだけでなく、イメージとパッケージを展開するために SCCM が維持するドライバーの集中カタログにも興味があります。

このコンテキストでは、コマンドレットが役立ちます。 Get-CMDriver、それはのために働く Configuration Manager によって管理されるデバイス ドライバーから情報を取得しますこのコマンドレットには、クエリの対象に応じて、名前、数値識別子、ドライバー パッケージ、または管理カテゴリなど、複数のシグネチャがあります。

基本的な構文には次のようなバリエーションが含まれます。

Get-CMDriver

Get-CMDriver -DriverPackageId <String>

Get-CMDriver -DriverPackageName <String>

Get-CMDriver -Id <Int32>

Get-CMDriver -InputObject <IResultObject>

これらのパラメータを使用すると、SCCMカタログにクエリを送信し、次の条件でフィルタリングできます。 ドライバー名、識別子、関連パッケージ、または管理カテゴリ コントローラーを整理するために定義したものです。

Get-CMDriver の例

特定のドライバーの名前(たとえば「Surface Serial Hub Driver」)がわかっている場合は、次のコマンドで詳細を取得できます。

Get-CMDriver -Name "Surface Serial Hub Driver"

名前に同じプレフィックスを持つ複数のドライバー (Surface ドライバー ファミリ全体など) をチェックする必要があり、関連するプロパティのみを表示する場合は、次のようなものを使用できます。

  取得失敗 – Chrome での不適切な権限エラー

Get-CMDriver -Fast -Name "Surface*" | Select-Object LocalizedDisplayName, DriverVersion, DriverDate

修飾子 -速い 取得する情報量が減り、クエリの速度が向上します。これは大規模なカタログで特に顕著です。次に、Select-Objectで 自分にとって役立つ列だけを残します 分析のために。

管理カテゴリ (たとえば、すべてのコントローラーをグループ化する「Surface」カテゴリ) を管理する場合は、次のようにカテゴリとドライバーの取得を連鎖できます。

$category = Get-CMCategory -Name "Surface"
Get-CMDriver -Fast -AdministrativeCategory $category

この場合、まずカテゴリを変数に格納し、Get-CMDriverにそれを返すように依頼します。 そのカテゴリに関連付けられたすべてのコントローラこれは、SCCM でコントローラの論理ビューを維持するのに非常に役立ちます。

動的にロードされたドライバーを一覧表示する場合の制限

すべてのドライバが同じように動作するわけではありません。スイートに含まれるいくつかのツールなどもあります。 Sysinternals (例: Process Explorer または handle.exe)起動時に読み込まれる従来のサービスとして登録せずに、実行時にドライバーをカーネルに動的に挿入します。

典型的な例はドライバーだ procexp152.sys (またはprocexp113.sysなどの以前のバージョン)は、Process Explorerに関連付けられています。このタイプのドライバは、 Get-WmiObject Win32_SystemDriverこれらのクエリはレジストリ サービス (CurrentControlSet\Services) の情報に依存しており、通常は主にシステムにロードされるドライバーを反映​​するためです。

同様に、 driverquery は動的に挿入されたすべてのドライバーをリストしない可能性がありますしたがって、独自のドライバーをロードするサードパーティ ツールによって発生する BSOD や異常な動作をデバッグする場合は、他の方法に頼る必要があるかもしれません。

それらの代替案の中には 診る メモリダンプ カーネル WinDbgのようなツールを使うか、次のようなユーティリティを使う。 verifier.exeドライバー検証ツールを使用すると、監視するドライバーを選択して不安定な動作を検出することができますが、グラフィカル インターフェイスでは、クエリと検証の構成に重点を置いたコマンド ライン バージョンよりも多くの列挙オプションが提供されます。

つまり、一般的な在庫管理とほとんどの管理ニーズのために、 PowerShell、WMI、Get-WindowsDriver は、必要な機能を十分カバーします。ただし、ホットロードされたドライバーをデバッグする極端な場合には、カーネル分析ツールを補足する必要があります。

PSWindowsUpdate を使用して PowerShell でドライバーを更新する

多くの管理者は、ドライバーの一覧表示に加えて、PowerShellを使用して ドライバーの更新を自動化する Windows Updateの そしてまた サウンドドライバーを更新するよく使用される方法の 1 つは、標準の更新コマンドレットを拡張する PSWindowsUpdate モジュールを使用することです。

通常の流れは 署名されたスクリプトの実行を一時的に有効にするモジュールをインストールし、Microsoft サーバーから直接ドライバーの更新を要求します。

典型的なコマンドのセットは次のようになります。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Install-Module PSWindowsUpdate
Import-Module PSWindowsUpdate
Get-WindowsUpdate
Get-WindowsUpdate -MicrosoftUpdate -Category Driver -Install -AutoReboot

このシーケンスは、現在のセッションのスクリプト実行を有効にし、PSWindowsUpdateモジュールをインストールしてインポートし、 利用可能なアップデートを確認します。 最後に、Microsoft Update を介して「ドライバー」カテゴリからインストールするように要求し、必要に応じてシステムが自動的に再起動できるようにします。

また、Microsoft Update から検出されたすべての更新プログラムをインストールし、介入なしで再起動するコマンドを使用して、範囲を広げることもできます。次に例を示します。

Get-WindowsUpdate -MicrosoftUpdate -Install -AutoReboot

この作業方法は特に、 大きなチームパークここでは、ドライバのバージョンを個別に変更するのではなく、標準化することが重要です。ただし、事前にドライバの適切なインベントリを作成し、重要な環境では組織全体に展開する前にパイロットグループでテストすることをお勧めします。

Windows周辺機器、ドライバの問題
関連記事
Windowsでゴーストデバイスと孤立したドライバーを削除するための完全ガイド