PowerShellを使ってシステムに接続されているUSBデバイスのリストを取得する方法

この記事では、PowerShellを使用してシステムに接続されているUSBデバイスのリストを取得する方法について詳しく解説します。この記事は初心者にも分かりやすいように、実際のコード例とその詳細な説明、さらに応用例を5つ以上紹介します。

目次

PowerShellとは?

PowerShellはWindowsシステムで利用できるスクリプト言語とコマンドラインインターフェースです。システム管理者はこのPowerShellを用いて、多くの種類の作業を自動化したり、システム情報を取得することができます。

なぜPowerShellが便利なのか

PowerShellを使用する最大の利点は、多様なタスクの自動化が可能な点です。特にシステム管理においては、GUIを介さずにシステムを制御できるため、効率が格段に上がります。

基本的なUSBデバイスのリスト取得方法

以下のスクリプトを実行すると、接続されているUSBデバイスの基本情報を一覧できます。


# システムに接続されているUSBデバイスのリストを取得
Get-WmiObject -Class Win32_USBControllerDevice | ForEach-Object { [Wmi]$_.Dependent }

このコードの解説

– `Get-WmiObject`: WMI(Windows Management Instrumentation)から情報を取得するコマンドレットです。
– `-Class Win32_USBControllerDevice`: USBデバイスの情報を指定しています。
– `ForEach-Object { [Wmi]$_.Dependent }`: 取得した各USBデバイスの情報を整理して出力します。

応用例

応用例1: デバイス名でフィルタ

特定のUSBデバイスだけをリストに表示することも可能です。


# "USB Storage"と名のつくデバイスだけをリスト
Get-WmiObject -Class Win32_USBControllerDevice | ForEach-Object { [Wmi]$_.Dependent } | Where-Object { $_.Name -like "*USB Storage*" }

応用例2: デバイスIDで検索

デバイスIDを用いて、特定のUSBデバイスを識別できます。


# 特定のデバイスIDを持つデバイスをリスト
$deviceID = "USB\\VID_0781&PID_5567"
Get-WmiObject -Class Win32_USBControllerDevice | ForEach-Object { [Wmi]$_.Dependent } | Where-Object { $_.DeviceID -eq $deviceID }

応用例3: デバイスの状態を確認

デバイスの状態(有効/無効)も確認できます。


# デバイスの状態を確認
Get-WmiObject -Class Win32_USBControllerDevice | ForEach-Object { [Wmi]$_.Dependent } | Select-Object Name, Status

応用例4: PowerShellスクリプトでの実行

上記のコードをPowerShellスクリプト(.ps1ファイル)として保存して、一括で実行することもできます。


# PowerShellスクリプトでUSBデバイス情報をCSVファイルに出力
Get-WmiObject -Class Win32_USBControllerDevice | ForEach-Object { [Wmi]$_.Dependent } | Select-Object Name, DeviceID, Status | Export-Csv -Path "C:\\usb_devices.csv"

応用例5: 複数の条件でフィルタ

複数の条件を組み合わせてUSBデバイスをリストする方法です。


# "USB Storage"と名のつく、かつ、状態が"OK"のデバイスをリスト
Get-WmiObject -Class Win32_USBControllerDevice | ForEach-Object { [Wmi]$_.Dependent } | Where-Object { $_.Name -like "*USB Storage*" -and $_.Status -eq "OK" }

まとめ

PowerShellを用いて、システムに接続されているUSBデバイスのリストを取得する方法を解説しました。基本的なリスト取得方法から、様々な応用例まで詳しく説明しましたので、この機会にPowerShellでのシステム管理の一環として、ぜひ活用してください。

コメント

コメントする

目次