Ответ 1
Это выглядит полезно: Как определить, какие USB-устройства подключены к компьютеру?
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDevices = objWMIService.ExecQuery _
("Select * From Win32_USBControllerDevice")
For Each objDevice in colDevices
strDeviceName = objDevice.Dependent
strQuotes = Chr(34)
strDeviceName = Replace(strDeviceName, strQuotes, "")
arrDeviceNames = Split(strDeviceName, "=")
strDeviceName = arrDeviceNames(1)
Set colUSBDevices = objWMIService.ExecQuery _
("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
For Each objUSBDevice in colUSBDevices
Wscript.Echo objUSBDevice.Description
Next
Next
Образец вывода (должен быть деревом):
USB Root Hub
Microsoft USB IntelliMouse Web
Microsoft USB IntelliMouse Web
USB Mass Storage Device
Disk drive
Generic volume
USB Root Hub
USB Root Hub
Я надеюсь, что не все USB-накопители описывают себя как "USB Mass Storage Device". Если это так, проверьте имя тома или autorun.inf, если они есть.
Microsoft, являющаяся одним из изобретателей USB, вряд ли вам понадобится эту информацию в Linux, но ее можно собрать для поисковых запросов, таких как "Pendrive" и "Flash Drive".