Creating a Virtual Machine with WMI v2

0

Cześć,
próbuję utworzyć maszynę wirtualną w Hyper-V poprzez WMI zgodnie z tym blogiem: https://docs.microsoft.com/pl-pl/archive/blogs/virtual_pc_guy/creating-a-virtual-machine-with-wmi-v2

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);

Ale poległem na

objConfig.getText(1);

W tym miejscu przestawiony jest obiekt (Msvm_VirtualSystemSettingData) w formie tekstu, ale nie wiem jak go prze konwertować na tekst w formacie WmiDtd20

1

Ok, problem rozwiązałem chwilę po tym jak napisałem ten temat :)

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);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.