Уведомления
Очистить все
Delphi
2
Записи
1
Пользователи
0
Likes
380
Просмотры
Создатель темы 08/03/2020 5:55 дп
Я пытаюсь создать виртуальную машину в Hyper-V через WMI
FWMIService := FSWbemLocator.ConnectServer('', 'root\virtualization\v2', '', '');
FWbemObject := FWMIService.Get('Msvm_VirtualSystemSettingData');
objConfig := FWbemObject.SpawnInstance_;
objConfig.ElementName := 'test';
FWbemObject2 := FWMIService.Get('MSVM_VirtualSystemManagementService');
FInParams := FWbemObject2.Methods_.Item('DefineSystem').InParameters.SpawnInstance_();
FInParams.SystemSettings := objConfig.getText(1);
FInParams.ResourceSettings := null;
FInParams.ReferenceConfiguration := null;
FOutParams := FWMIService.ExecMethod('MSVM_VirtualSystemManagementService', 'DefineSystem', FInParams);
Возникла проблема с:
objConfig.getText(1);
Объект (Msvm_VirtualSystemSettingData) перемещается сюда в виде текста, но я не знаю, как преобразовать его в текст в формате WmiDtd20.
Создатель темы 08/03/2020 5:56 дп
Решил проблему сам:
(Кому интересно - смотрите)
FWMIService := FSWbemLocator.ConnectServer('', 'root\virtualization\v2','' ,'' );
FWbemObject := FWMIService.Get('Msvm_VirtualSystemSettingData');
objConfig := FWbemObject.SpawnInstance_;
objConfig.ElementName := 'test';
FWbemObject2 := FWMIService.Get('Msvm_VirtualSystemManagementService.CreationClassName="Msvm_VirtualSystemManagementService",Name="vmms",SystemCreationClassName="Msvm_ComputerSystem",SystemName="' + ComputerName + '"');
FInParams := FWbemObject2.Methods_.Item('DefineSystem').InParameters.SpawnInstance_();
FInParams.SystemSettings := objConfig.GetText_(1);
FOutParams := FWMIService.ExecMethod('Msvm_VirtualSystemManagementService.CreationClassName="Msvm_VirtualSystemManagementService",Name="vmms",SystemCreationClassName="Msvm_ComputerSystem",SystemName="' + ComputerName + '"', 'DefineSystem', FInParams);