2012-03-02 71 views
0

更新:首选的解决方案是一些使用VMware工具包.NET和实现以下切换磁盘持久模式调用

其中一个,我们现在需要执行的任务(如果可能的话)是将虚拟硬盘从非永久模式切换到永久模式,反之亦然。

我试过寻找正确的API调用,但还没有找到。有谁知道这是否可以通过API调用完成?

回答

1

虽然我没有做过这个确切的操作,我通过ReconfigVm任务做了类似的行动用VirtualDeviceBackingInfo在其diskMode属性中具有所需持久性类型的已升级VirtualDevice来设置VirtualMachineConfigSpec。数据对象被记录在这里:

http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.ConfigSpec.html

http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.device.VirtualDevice.html

http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.device.VirtualDevice.BackingInfo.html

+0

非常感谢马克。我试图设置它,但没有太多关于如何在diskMode属性上设置所需的持久性类型的文档。你可以发布一个快速的代码片段来说明如何做到这一点吗? – Nikhil 2012-03-15 22:05:26

+0

我已经到了可以创建配置规范并调用Reconfig_VM任务的地步。当我看着VMWare Console时,任务甚至被解雇。但是磁盘模式不会切换。你知道DiskMode属性的正确值吗? – Nikhil 2012-03-16 09:44:43

1

按照VMware vSphere PowerCLI Cmdlets Reference,这应该做的工作:http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.VirtualMachine.html#reconfigure

你将需要:

Get-HardDisk -VM $myVM | Set-HardDisk -Persistence "Independent(Non)Persistent" 
+0

其实我使用C#我的API调用。转换成等效的C#代码后,我会尝试一下,并让你知道。谢谢。 – Nikhil 2012-03-12 00:22:41

+0

在VMWare.Vim dll中找不到任何可以让我做类似的事情。不幸的是,由于一些公司的限制,我不能使用powershell代码。你知道我是否可以通过使用VMWare.Vim DLL和C#来做到这一点? – Nikhil 2012-03-12 11:04:35

+0

有没有办法使用反射器或其他方式查看此cmdlet的代码? – Nikhil 2012-03-14 12:23:18