PowerShellを使ってシステムに接続されているUSBデバイスのリストを取得する方法という問いには、Get-PnpDevice -PresentOnlyを基準にInstanceIdがUSB系の項目を抽出し、ClassとStatusを併記するという方法で答えます。-Class USBはUSBコントローラー関連クラスに限定される一方、USB接続のストレージやHIDは別Classで現れることがある。InstanceIdがUSBで始まるPresentOnly一覧も併用する。この記事ではFriendlyName、Class、Status、InstanceIdを使い、複合デバイスの親子関係をInstanceIdで追うを判断軸にし、実行前の確認、記事固有のコード、合否判定、戻し方を一続きで示します。
seq19の過去ログではなく、コマンド実行時点でPresentなUSBデバイスを列挙する。完了は「今接続している対象のInstanceIdを一意に示し、複合機能を持つ場合は複数エントリの関係を説明できる」と定義します。対象が取れない場合は「0件ならPnpDeviceモジュール、デバイスマネージャー表示、USBコントローラー、リモート実行制約を確認する」として切り分け、推測で成功扱いにしません。
PresentOnlyで現在の範囲を定義
PresentOnlyで現在の範囲を定義では、現在接続中のUSBデバイス一覧の対象を「FriendlyName、Class、Status、InstanceIdを使い、複合デバイスの親子関係をInstanceIdで追う」という単位で扱います。-Class USBはUSBコントローラー関連クラスに限定される一方、USB接続のストレージやHIDは別Classで現れることがある。InstanceIdがUSBで始まるPresentOnly一覧も併用する。対象が複数なら表示名の部分一致で先頭を採らず、一意になる条件を追加します。
現在接続中のUSBデバイス一覧を始める前に、PowerShellの版、コマンドの提供元、必要権限、管理ポリシーの有無を確認します。権限不足と対象なしは意味が異なるため、例外を0件へ置き換えません。
USBコントローラー配下を理解
Get-PnpDevice -PresentOnlyを基準にInstanceIdがUSB系の項目を抽出し、ClassとStatusを併記する。現在接続中のUSBデバイス一覧ではこの進め方により、操作したという事実ではなく、期待する状態へ到達したかでタイトルの問いへ答えられます。seq19の過去ログではなく、コマンド実行時点でPresentなUSBデバイスを列挙する。
USBコントローラー配下を理解の合格条件は、今接続している対象のInstanceIdを一意に示し、複合機能を持つ場合は複数エントリの関係を説明できることです。作業時刻、実行ユーザー、端末名を添え、判断に使った値が後から追える形にします。
InstanceIdを含む一覧を作る
InstanceIdを含む一覧を作るは変更前の基準点です。FriendlyName、Class、Status、InstanceIdを使い、複合デバイスの親子関係をInstanceIdで追うを出力に含め、取得時刻と一緒に保存します。値だけを切り取ると別対象との比較になるため、識別列を省きません。
Get-PnpDevice -PresentOnly | Where-Object InstanceId -like 'USB*' | Select-Object Status, Class, FriendlyName, InstanceId
-Class USBはUSBコントローラー関連クラスに限定される一方、USB接続のストレージやHIDは別Classで現れることがある。InstanceIdがUSBで始まるPresentOnly一覧も併用する。出力が多い場合も最初から無理に一件へ絞らず、候補数と除外理由を残してから対象を決めます。
Class USBだけで周辺機器を欠落させない
Class USBだけで周辺機器を欠落させないでは同じ対象を別経路でもう一度読みます。判定したいのは「コマンドが終了したか」ではなく、今接続している対象のInstanceIdを一意に示し、複合機能を持つ場合は複数エントリの関係を説明できるかどうかです。
Get-PnpDevice -PresentOnly -Class USB | Sort-Object FriendlyName | Format-Table Status, FriendlyName, InstanceId
0件ならPnpDeviceモジュール、デバイスマネージャー表示、USBコントローラー、リモート実行制約を確認する。現在接続中のUSBデバイス一覧の期待値と実測値が一致しないときは追加変更を重ねず、対象識別、権限、ポリシー、時間差の順で原因を分けます。
複合デバイスを重複と誤解しない
複合デバイスを重複と誤解しないでは、Get-PnpDevice -PresentOnlyを基準にInstanceIdがUSB系の項目を抽出し、ClassとStatusを併記する。現在接続中のUSBデバイス一覧の例中にある名前、パス、ID、時刻はサンプルなので、そのまま本番へ貼らず、直前の読み取り結果から承認値を入れます。
Get-CimInstance Win32_PnPEntity | Where-Object PNPDeviceID -like 'USB*' | Select-Object Name, Status, PNPDeviceID
同名のUSBメモリやアダプターをFriendlyNameだけで区別しない。取得記事でDisable-PnpDeviceを実行しない。現在接続中のUSBデバイス一覧でプレビュー対応コマンドを使える場合はWhatIfを先に実行し、非対応の操作は対象一覧と引数を画面へ出して人が承認してから一度だけ実行します。
0件なら列挙経路と権限を確認
読み取りのみ。CSVへ出す場合はシリアル相当の識別情報を含むので共有範囲を制限する。復旧操作にも同じ識別条件を使い、名前が似た別対象へ戻し処理を適用しません。
- 現在接続中のUSBデバイス一覧の変更前値と取得時刻
- 復旧対象: FriendlyName、Class、Status、InstanceIdを使い、複合デバイスの親子関係をInstanceIdで追う
- 復旧後の判定: 今接続している対象のInstanceIdを一意に示し、複合機能を持つ場合は複数エントリの関係を説明できる
- 再実行を止める条件: 同名のUSBメモリやアダプターをFriendlyNameだけで区別しない。取得記事でDisable-PnpDeviceを実行しない
取り外し前の識別票として保存
同名のUSBメモリやアダプターをFriendlyNameだけで区別しない。取得記事でDisable-PnpDeviceを実行しない。取り外し前の識別票として保存に該当したら、警告を消して継続するのではなく、どの条件で止まったかを記録します。
0件ならPnpDeviceモジュール、デバイスマネージャー表示、USBコントローラー、リモート実行制約を確認する。現在接続中のUSBデバイス一覧ではエラー本文、FullyQualifiedErrorId、対象ID、直前に成功した段階を残すと、別担当者が安全な地点から調査できます。
履歴調査と混ぜない
抜去前後の比較では同じコマンドと端末で採取し、差分のInstanceIdを提示する。現在接続中のUSBデバイス一覧を繰り返す場合は、正常、対象なし、要承認、失敗を異なる終了状態として記録し、前回値との比較だけで異常を決めません。
| 履歴調査と混ぜないの識別軸 | FriendlyName、Class、Status、InstanceIdを使い、複合デバイスの親子関係をInstanceIdで追う |
| 採用する実測 | 今接続している対象のInstanceIdを一意に示し、複合機能を持つ場合は複数エントリの関係を説明できる |
| 0件時の扱い | 0件ならPnpDeviceモジュール、デバイスマネージャー表示、USBコントローラー、リモート実行制約を確認する |
| 保留にする兆候 | 同名のUSBメモリやアダプターをFriendlyNameだけで区別しない。取得記事でDisable-PnpDeviceを実行しない |
現在接続中のUSBデバイス一覧の実行記録には、開始前の対象候補、採用した識別値、実行したコード、終了後の実測、除外した候補と理由を同じ作業番号で残します。特に「FriendlyName、Class、Status、InstanceIdを使い、複合デバイスの親子関係をInstanceIdで追う」を省くと、後日の再確認で別対象の値を比較するおそれがあります。画面コピーだけでなく、日時と端末名を含む構造化した出力も保存します。
PowerShellを使ってシステムに接続されているUSBデバイスのリストを取得する方法を定期手順へ組み込む場合も、初回は対話的に候補を確認します。正常時は「今接続している対象のInstanceIdを一意に示し、複合機能を持つ場合は複数エントリの関係を説明できる」、判定不能時は「0件ならPnpDeviceモジュール、デバイスマネージャー表示、USBコントローラー、リモート実行制約を確認する」、中止時は「同名のUSBメモリやアダプターをFriendlyNameだけで区別しない。取得記事でDisable-PnpDeviceを実行しない」をそれぞれ別の結果として扱います。これにより、0件や例外を都合よく成功へ丸めず、次の担当者が同じ対象と条件で追試できます。
公式情報・参考資料
現在接続中のUSBデバイス一覧で使うコマンド名、引数、対応環境は次のMicrosoft一次資料で確認しました。記事の確認日は2026年7月17日です。OSやモジュール更新後は、実行端末のGet-Helpと併せて再確認してください。

コメント