1

gwmi win32_volume为我提供了该卷的详细信息。

gwmi win32_diskdrive为我提供磁盘签名。

如何使用 Powershell 获取特定卷 GUID 的磁盘签名(卷 GUID 看起来像这样\\?\Volume{2e5e3ff7-fb5a-11e1-9924-80c16e6c465c}\

使用Win32_LogicalDisk对我来说不是一个选项,因为某些卷可能未安装,并且它们不会有与之关联的字母。很好的例子是System ReservedWindows 7 上的分区。

4

3 回答 3

1

我找不到 gwmi 满足我的要求的任何东西,所以我正在从 powershell 访问 diskpart。

在这种情况下,我正在获取 gwmi win32_diskdrive 可以帮助我获得的磁盘签名

$volumeCommand = "list volume" | diskpart
 $Pattern = 'XXXbbbXXXX'
 $Volume
for($i=5; $i -le $volumeCommand.length; $i++)
{
write-host $volumeCommand[$i]
 $matched = @(Select-String -inputobject $volumeCommand[$i] -Pattern $Pattern)
    if($matched ) {
   $Volume=$volumeCommand[$i -1 ]
     break
   }
}

$columnToGet = 1
$volumeName = $Volume | 
   %{ $_.Split(" ",[StringSplitOptions]"RemoveEmptyEntries")[$columnToGet] }

$selectCommand = "sel volume " +$volumeName  
$uniqueid = "uniqueid disk"
write-host $selectCommand
$volumeuniqueidCommand =  $selectCommand , $uniqueid  | diskpart
write-host $volumeuniqueidCommand


$signature = $volumeuniqueidCommand[$volumeuniqueidCommand.length-3].trimStart("Disk ID: ")
write-host $signature
$signature = [CONVERT]::toint32($signature,16)
write-host $signature
于 2012-10-20T19:34:25.143 回答
0

我认为最好的(也是唯一的 IMO)方法是使用DiskExt.exeSysinternals

您可以使用 PowerShell 解析DiskExt输出,找到与卷相关的磁盘驱动器,然后使用它win32_volume来选择他的signature

于 2012-10-19T20:03:26.503 回答
0

您可能正在寻找以下代码:

$StrComputer = 'COMPUTER_NAME'
$DeviceId = "X:"
$wmiLogicalDiskQuery = "ASSOCIATORS OF {Win32_LogicalDisk.DeviceID='" + $DeviceId + "'} where AssocClass = Win32_LogicalDiskToPartition";
$PhysicaldiskPartitionName = (gwmi -Query $wmiLogicalDiskQuery).Name;
$wmiPhysicalDiskQuery = "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + $PhysicaldiskPartitionName + "'} where AssocClass = Win32_DiskDriveToDiskPartition";
$PhysicaldiskDriveName = (gwmi -Query $wmiPhysicalDiskQuery -Comp $StrComputer).DeviceID
$DiskSignature = (gwmi Win32_DiskDrive -Comp $StrComputer | where-object {$_.DeviceID -eq $PhysicaldiskDriveName} ).Signature

这是从这里稍微修改的版本。

于 2012-10-19T21:44:46.543 回答