Я пытаюсь отобразить физические диски на смонтированные разделы и даже дальше на буквы смонтированных томов (C:\ смонтирован на разделе 0 диска 0)

Сначала я использую

 Select * from Win32_DiskDrive

получить индекс для всех физических дисков. Тогда я использую

 SELECT Name FROM Win32_DiskPartition WHERE Index = " & objDiskDrive.Index

Название что-то в форме Disk #0 Partition #0 . Используя это, я пытаюсь выполнить запрос к Win32_LogicalDiskToPartition Это возвращает такие вещи, как:

Antecedent: \\COMP_NAME\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
Dependent: \\COMP_NAME\root\cimv2:Win32_LogicalDisk.DeviceID="C:"
EndingAddress: 160039272959
StartingAddress: 1048576

Если бы я мог выполнить запрос к предыдущей строке и проанализировать зависимую строку, я мог бы получить свое отображение, но это не работает. Запрос недействителен. Я пытаюсь запустить следующее:

   Select * from Win32_LogicalDiskToPartition WHERE Antecedent LIKE '%Disk #0, Partition #0%'

1 ответ1

1

Я считаю, что вы должны использовать заявление ASSOCIATORS OF (ссылка), чтобы получить нужные вам результаты. Таким образом, выражение wql будет:
"ASSOCIATORS OF {Win32_DiskPartition.DeviceID='Disk #0, Partition #0'} WHERE AssocClass = Win32_LogicalDiskToPartition"

Вы также можете использовать ту же технику, чтобы сначала получить раздел (ы) (с ассоциированным классом Win32_DiskDriveToDiskPartition)

Microsoft опубликовал фрагмент кода, который делает именно то, что вам нужно (последний: «определить, какая буква диска связана с разделом логического диска», на котором я фактически основал свой ответ) http://msdn.microsoft.com/en-us/library/aa394592%28v=vs.85%29.aspx

Надеюсь это поможет

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .