Existe algum ID exclusivo para mídia de armazenamento ou volume lógico que está faltando?
It seems that the only way to guarantee against collisions is to use some associator of either Win32_DiskDrive of Get_Disk to connect physical media to volumes
A resposta Identificador exclusivo para drive USB no Powershell por < um href="https://superuser.com/users/36030/windos"> Windos sugere o uso do SerialNumber:
Get-WmiObject -Class Win32_Volume | select Name, DeviceID, SerialNumber
No entanto, alguns fabricantes:
-
Não forneça um número de série, ou
-
Use o mesmo número de série em muitos dispositivos.
Solução: use o número de série junto com a mídia física e o volume
Podemos vincular o ID do dispositivo, modelo, dados de partição, ID do volume e número de série, conforme demonstrado pelo seguinte script do PowerShell (com base em Usando o WMI para vincular um volume de disco a um disco físico com o PowerShell ).
Isso permite a geração de um ID exclusivo para um disco físico.
Get-DiskDetails.ps1 :
$diskdrive = Get-WmiObject win32_diskdrive
foreach($drive in $diskdrive)
{
out-host -InputObject "'nDevice: $($drive.deviceid.substring(4))'n Model: $($drive.model)"
# partition
$partitions = Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='"$($drive.DeviceID.replace('\','\'))'"} WHERE AssocClass = Win32_DiskDriveToDiskPartition"
foreach($part in $partitions)
{
Out-Host -InputObject " Partition: $($part.name)"
$vols = Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='"$($part.DeviceID)'"} WHERE AssocClass = Win32_LogicalDiskToPartition"
foreach($vol in $vols)
{
out-host -InputObject " Volume: $($vol.name)"
$serial = Get-WmiObject -Class Win32_Volume | where { $_.Name -eq "$($vol.name)\" } | select SerialNumber
out-host -InputObject " Serial Number: $($serial.serialnumber)"
}
}
}
Exemplo de saída :
> .\Get-DiskDetails.ps1
Device: PHYSICALDRIVE0
Model: WDC WD5000LPVX-08V0TT5
Partition: Disk #0, Partition #0
Partition: Disk #0, Partition #1
Partition: Disk #0, Partition #2
Volume: C:
Serial Number: 3369131806
Device: PHYSICALDRIVE1
Model: SanDisk Cruzer USB Device
Partition: Disk #1, Partition #0
Volume: E:
Serial Number: 2157441447
Device: PHYSICALDRIVE2
Model: Seagate Expansion Desk USB Device
Partition: Disk #2, Partition #0
Volume: F:
Serial Number: 911653731
>