2015-08-11 2 views
2

Common utilities for the virtualization samples (V2) ИспользуяНайти конкретный контроллер SCSI с WMI Query для Msvm_ResourceAllocationSettingData

Я создал класс, который запрашивает Msvm_VirtualSystemSettingData -

public static ManagementObject GetVirtualMachineSettings(ManagementObject virtualMachine) 
{ 
    using (ManagementObjectCollection settingsCollection = 
       virtualMachine.GetRelated("Msvm_VirtualSystemSettingData", "Msvm_SettingsDefineState", 
       null, null, null, null, false, null)) 
     { 
      ManagementObject virtualMachineSettings = 
       GetFirstObjectFromCollection(settingsCollection); 

      return virtualMachineSettings; 
     } 
} 

В Main, я используя класс следующим образом -

ManagementObject vmSettings = GetVirtualMachineSettings(vm); 

ManagementObjectCollection scsiController = vmSettings.GetRelated("Msvm_ResourceAllocationSettingData"); 

foreach (ManagementObject controller in scsiController) 
{ 
    if (controller["ResourceType"].ToString() == "6") 
    { 
      Console.WriteLine("\nCaption: {0}\nDescription: {1}\nInstance ID: {2}\nElementName: {3}\nResource Type: {4}\nResource SubType: {5}\n", 
           controller["Caption"].ToString(), 
           controller["Description"].ToString(), 
           controller["InstanceID"].ToString(), 
           controller["ElementName"].ToString(), 
           controller["ResourceType"].ToString(), 
           controller["ResourceSubType"].ToString()); 
     } 
} 

Как именно я вижу, какой SCSI 0, SCSI 1, SCSI 2, SCSI 3? Я знаю, что у «HyperV: Synthetic Scsi Device» все есть идентификатор экземпляра, но я имею в виду, как Hyper-V переводит каждый контроллер SCSI на 0, 1, 2 и 3?

ответ

0

Если вы посмотрите на поле InstanceID - вы увидите

Microsoft: 219513E4-7641-49B0-810E-DC7621E1B01B \ 3BAE5515-9D6C-4216-85F4-9335CEE41629 \ 0

где второй идентификатор GUID (3BAE5515-9D6C-4216-85F4-9335CEE41629) является идентификатором контроллера SCSI. Вы можете получить номер шины, запустив: Get-VirtualSCSIAdapter -ID 3BAE5515-9D6C-4216-85F4-9335CEE41629 в Powershell на хосте Hyper-V.

Эта команда возвращает:

автобус: 0

ID: 3BAE5515-9D6C-4216-85F4-9335CEE41629

Смежные вопросы