我想使用govmomi查找附加到虚拟机的vmdk文件。我可以找到它的托管对象存储,但是以编程方式无法做到这一点。

最佳答案

假设您具有虚拟机的托管对象vmMo

vmdks := []string{}
for _, device := range vmMo.Config.Hardware.Device {
    switch disk := device.(type) {
    case *types.VirtualDisk:
        fileName := disk.GetVirtualDevice().Backing.(types.BaseVirtualDeviceFileBackingInfo).GetVirtualDeviceFileBackingInfo().FileName
        vmdks = append(vmdks, fileName)
    }
}

08-28 09:48