如何使用WMI和C#以编程方式在Hyper-V中弹出虚拟机的虚拟软盘驱动器?

时间:2011-07-19 04:54:13

标签: c# wmi virtual-machine hyper-v floppy

我正在尝试使用Hyper-V WMI API和VB弹出/删除Hyper-V中虚拟机的加载 * 虚拟软盘驱动器 *(VFD)。净/ C#。

我在启动虚拟机时执行此操作但仍然出现以下错误:

“'VM-17-7-2011_Sub146_0'无法删除资源。(虚拟机ID E543B32A-2058-4992-B50A-C7DBC6A8D948)” * 错误代码: * 32773 JobStated:例外{10}

并且此错误信息不是很有用。

此外,如果我能够在创建虚拟机时成功将虚拟软盘驱动器添加到虚拟机,为什么我在尝试弹出/卸载虚拟机时出错?我这样做是错误的吗?请帮忙。

另请注意,我在创建虚拟机后将虚拟机添加到虚拟机,并且该虚拟机尚未启动!这意味着可以在不启动VM的情况下将VFD添加到VM。因此,逻辑上我应该能够在VM处于关闭状态但尚未启动时将其删除。

删除虚拟资源的代码部分如下:

 Dim RASDs As String() = New String() {existingRASD.GetText(TextFormat.CimDtd20)}

                Dim VMManagementService As ManagementObject = Me.GetVirtualSystemManagementService()

                Dim _
                    inParams As ManagementBaseObject = _
                        VMManagementService.GetMethodParameters("RemoveVirtualSystemResources")
                inParams("ResourcesettingData") = RASDs
                inParams("TargetSystem") = VM.Path.Path

                Dim _
                    outParams As ManagementBaseObject = _
                        VMManagementService.InvokeMethod("RemoveVirtualSystemResources", inParams, Nothing)
                Dim FloppyDisk As JobResult = Me.CreateJobResultFromWmiMethodResults(outParams)
                result = FloppyDisk

请反思为什么我会得到这个,我怎么能解决这个问题。感谢。

史蒂夫

0 个答案:

没有答案