hyperv:如何从WMI查询中获取控制器编号?

时间:2016-01-22 12:37:58

标签: wmi hyper-v

当我们为VM创建SCSI硬盘时,是否有办法获取scsi控制器索引/数字。 据我所知,我们可以创建4个虚拟SCSI控制器。我如何获得SCSI 0,SCSI 1,SCSI 2,SCSI 3?

  1. Msvm_StorageAllocationSettingData的select查询输出给出了instanceID。如何阅读此字段" Microsoft:E84A07DF-EDA6-4996-A190-3E5FD724194D \ 5177DAB1-6F95-4618-AC73-85B66F37B4A8 \ 0 \ 0 \ L" ?
  2. 提前致谢。

1 个答案:

答案 0 :(得分:0)

InstanceID是Msvm_StorageAllocationSettingData类中Object的实例。您可能需要Parent属性来获取HardDiskDrive,并且您将需要该对象的Parent属性来获取Controller。

在Powershell中:

$VM = gwmi -namespace root\virtualization\v2 -query "SELECT * FROM msvm_computersystem WHERE ElementName = 'vm-name'"
$VSSD = $VM.getRelated("msvm_virtualsystemsettingdata")
$DISKS = $VSSD.getRelated("Msvm_StorageAllocationSettingData")
ForEach( $disk in DISKS ) {
    $HDD = [wmi]$disk.Parent
    $CTRL = [wmi]$hdd.Parent
    echo $CTRL
}

然而,更重要的问题是如何在有多个SCSI控制器时找出它们的数量?有人知道吗?

IDE控制器很容易,因为它在IDE Con​​troller对象上隐式指定,但在SCSI控制器上没有。