2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellでUSB機器リストを取得して有効・無効化する。

Last updated at Posted at 2024-10-05

はじめに

Windowsに繋がっている特定のデバイスを有効、無効にする方法がないか?調べたところ、PowerShellのPnpDeviceでできることがわかったのでまとめる。

PnpDevice

プラグアンドプレイに関わる処理ができる。リストを取得したり、デバイスを指定して有効、無効をすることができる。

コマンド名 意味
Get-PnpDevice 機器のリストを取得する。
Enable-PnpDevice デバイスを有効化する。
Disable-PnpDevice デバイスを無効化する。

USB機器リスト

現在接続しているリストの取得はGet-PnpDevice-PresentOnlyを付ける。 これにより、Status, Class, FriendlyName , InstanceIdのリストを取得できる。

Get-PnpDevice -PresentOnly

ここから、USBだけ抜き出す場合は、InstanceIDがUSBから始まる。でフィルタすればよい。

Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' }

<#
Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
OK         DiskDrive       SMI USB DISK USB Device                                                          USBSTOR\...
OK         DiskDrive       Sony Storage Media USB Device                                                    USBSTOR\...
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
OK         USB             USB 大容量記憶装置                                                               USB\VID_...
OK         USB             汎用 USB ハブ                                                                    USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         USB             USB Composite Device                                                             USB\VID_...
OK         Bluetooth       インテル(R) ワイヤレス Bluetooth(R)                                              USB\VID_...
OK         USB             USB 大容量記憶装置                                                               USB\VID_...
#>

機器の有効・無効化

-InstanceId に 有効・無効化したいでUSBデバイスのInstanceIDを指定する。-Confirm:$falseはユーザに対して、実行許可確認をしないで実行したい場合につける。

#有効化
Enable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false

#無効化
Disable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false

USBメモリを有効・無効化する例

#現在デバイスリスト-----------------------------------
$devlist = Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' }
Write-Output $devlist

#USB 大容量記憶装置を無効化---------------------------
foreach ($dev in $devlist) {
	if ($dev.FriendlyName -like "USB 大容量記憶装置") {
		Write-Output "Disable : $($dev.Class) : $($dev.FriendlyName) : $($dev.InstanceId)"
		# デバイスを無効にする
		Disable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false
	}
}
$current_devlist = Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' }
Write-Output $current_devlist

#USB 大容量記憶装置を有効化---------------------------
foreach ($dev in $devlist) {
	if ($dev.FriendlyName -like "USB 大容量記憶装置") {
		Write-Output "Enable : $($dev.Class) : $($dev.FriendlyName) : $($dev.InstanceId)"
		# デバイスを有効にする
		Enable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false
	}
}
$current_devlist = Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB' }
Write-Output $current_devlist
結果
Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
OK         DiskDrive       SMI USB DISK USB Device                                                          USBSTOR\...
OK         DiskDrive       Sony Storage Media USB Device                                                    USBSTOR\...
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
OK         USB             USB 大容量記憶装置                                                               USB\VID_...
OK         USB             汎用 USB ハブ                                                                    USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         USB             USB Composite Device                                                             USB\VID_...
OK         Bluetooth       インテル(R) ワイヤレス Bluetooth(R)                                              USB\VID_...
OK         USB             USB 大容量記憶装置                                                               USB\VID_...


------------------------
Disable : USB : USB 大容量記憶装置 : USB\VID_090C&PID_1000\........
Disable : USB : USB 大容量記憶装置 : USB\VID_054C&PID_05BA\........
------------------------
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
Error      USB             USB 大容量記憶装置                                                               USB\VID_...
OK         USB             汎用 USB ハブ                                                                    USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         USB             USB Composite Device                                                             USB\VID_...
OK         Bluetooth       インテル(R) ワイヤレス Bluetooth(R)                                              USB\VID_...
Error      USB             USB 大容量記憶装置                                                               USB\VID_...


------------------------
Enable : USB : USB 大容量記憶装置 : USB\VID_090C&PID_1000\........
Enable : USB : USB 大容量記憶装置 : USB\VID_054C&PID_05BA\........
------------------------
OK         DiskDrive       SMI USB DISK USB Device                                                          USBSTOR\...
OK         DiskDrive       Sony Storage Media USB Device                                                    USBSTOR\...
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
OK         USB             USB ルート ハブ (USB 3.0)                                                        USB\ROOT...
OK         USB             USB 大容量記憶装置                                                               USB\VID_...
OK         USB             汎用 USB ハブ                                                                    USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         HIDClass        USB 入力デバイス                                                                 USB\VID_...
OK         USB             USB Composite Device                                                             USB\VID_...
OK         Bluetooth       インテル(R) ワイヤレス Bluetooth(R)                                              USB\VID_...
OK         USB             USB 大容量記憶装置                                                               USB\VID_...


以上

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?