Identificador exclusivo para drive USB no Powershell

1

De acordo com a documentação da classe win32_volume aqui o nome do dispositivo que aparece no gerenciador de dispositivos está indisponível como uma propriedade de win32_volume. A propriedade SerialNumber é exclusiva do dispositivo ou apenas do sistema dela? Se apenas para o sistema que propriedade devo procurar para escrever um script portátil?

    
por jamesson 12.07.2015 / 23:00

1 resposta

2

O SerialNumber irá vê-lo corretamente. A propriedade DeviceID também parecia promissora, mas isso é apenas estático no sistema.

Para testar, inseri duas unidades USB e executei o seguinte comando no PowerShell:

Get-WmiObject -Class Win32_Volume | select Name, DeviceID, SerialNumber

A saída inicial ficou assim:

Name     DeviceID                                            SerialNumber
----     --------                                            ------------
J:\      \?\Volume{56f4971c-28d3-11e5-8298-10604b833008}\   1893178287
H:\      \?\Volume{56f496cc-28d3-11e5-8298-10604b833008}\   3930884954

Eu ejetei os dois e os inseri novamente na ordem oposta, esperando que eles trocassem letras de unidade, mas eles os mantiveram, mas trocaram de posição na saída do PowerShell. (note que DeviceID e SerialNumber são os mesmos.)

Name     DeviceID                                            SerialNumber
----     --------                                            ------------
H:\      \?\Volume{56f496cc-28d3-11e5-8298-10604b833008}\   3930884954
J:\      \?\Volume{56f4971c-28d3-11e5-8298-10604b833008}\   1893178287

Finalmente eu inseri os sticks em outro computador, note que o deviceId é diferente, mas o número de série permanece o mesmo.

Name     DeviceID                                            SerialNumber
----     --------                                            ------------
E:\      \?\Volume{603a0c09-2674-11e5-b1db-0050569a754c}\   3930884954
H:\      \?\Volume{603a0c15-2674-11e5-b1db-0050569a754c}\   1893178287
    
por 13.07.2015 / 01:24