It could probably be a bit neater/smarter, but it does work.
To use this, create a new custom data class with three rows.
One for Class, Friendly Name and the Hardware ID. I just made them all 255 sized strings that are not keys and don't require data.
Get the GUID of the data class and replace my one in the attached script.
Then just run it!
(p.s, thanks for that info jharings)
I query the data like such:
SELECT usb.[Class],
usb.[FriendlyName],
usb.[HardwareID],
vc.[Name] AS 'Workstation',
vc.[User] AS 'Primary User'
-- Change this table with the one you created in the custom data class
FROM Inv_Historical_USB_Storage_Devices usb
JOIN vComputer vc
ON usb.[_ResourceGuid] = vc.[Guid]
WHERE usb.[HardwareID] ! = ''
ORDER BY usb.[FriendlyName]
edit: make sure your custom data class has the 'allow multiple rows from a single computer resource' checkbox ticked