Как программно извлечь виртуальный дисковод виртуальной машины в Hyper-V с помощью WMI и C#?
Я пытаюсь извлечь / удалить загруженный *виртуальный дисковод* (VFD) виртуальной машины в Hyper-V с помощью API-интерфейса WMI Hyper-V и VB.Net/C#.
Я выполняю эту операцию, когда виртуальная машина выключена, но все равно получаю следующую ошибку:
"VM-17-7-2011_Sub146_0" не удалось удалить ресурсы. (Идентификатор виртуальной машины E543B32A-2058-4992-B50A-C7DBC6A8D948) "*Код ошибки:* 32773 JobStated: Exception {10}
и эта информация об ошибке не очень полезна.
Кроме того, если я могу создать и добавить виртуальный дисковод гибких дисков к виртуальной машине при создании виртуальной машины, почему я получаю сообщение об ошибке при попытке извлечь / выгрузить его? Я делаю это неправильно? Пожалуйста помоги.
Также обратите внимание, что я добавляю VFD в виртуальную машину после ее создания, и эта виртуальная машина еще не запущена! Это означает, что VFD может быть добавлен в виртуальную машину без ее запуска. Поэтому по логике я должен быть в состоянии удалить его, когда виртуальная машина находится в выключенном состоянии и еще не запущена.
Часть кода, которая удаляет виртуальные ресурсы, выглядит следующим образом:
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
Пожалуйста, подумайте, почему я получаю это и как я могу решить это. Благодарю.
Стив