Согласно Win32_Volume документации класса здесь имя устройства , которое показывает в менеджере устройств будет недоступен как свойство Win32_Volume. Свойство SerialNumber уникально для устройства или только для системы? Если только для системы, какое свойство я должен искать, чтобы написать переносимый скрипт?
1 ответ
2
SerialNumber увидит вас правильно. Свойство DeviceID также выглядело многообещающе, но оно статично только в одной системе.
Для тестирования я вставил два USB-накопителя и запустил следующую команду в PowerShell:
Get-WmiObject -Class Win32_Volume | select Name, DeviceID, SerialNumber
Начальный вывод выглядел так:
Name DeviceID SerialNumber
---- -------- ------------
J:\ \\?\Volume{56f4971c-28d3-11e5-8298-10604b833008}\ 1893178287
H:\ \\?\Volume{56f496cc-28d3-11e5-8298-10604b833008}\ 3930884954
Я вынул оба и вставил их в обратном порядке, надеясь, что они поменяют местами буквы дисков, однако они сохранили их, но поменялись местами в выводе PowerShell. (обратите внимание, что DeviceID и SerialNumber совпадают.)
Name DeviceID SerialNumber
---- -------- ------------
H:\ \\?\Volume{56f496cc-28d3-11e5-8298-10604b833008}\ 3930884954
J:\ \\?\Volume{56f4971c-28d3-11e5-8298-10604b833008}\ 1893178287
Наконец, я вставил флешки в другой компьютер, обратите внимание, что идентификатор устройства отличается, но серийный номер остается прежним.
Name DeviceID SerialNumber
---- -------- ------------
E:\ \\?\Volume{603a0c09-2674-11e5-b1db-0050569a754c}\ 3930884954
H:\ \\?\Volume{603a0c15-2674-11e5-b1db-0050569a754c}\ 1893178287