この記事では、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でのシステム管理の一環として、ぜひ活用してください。
コメント