Beispiel #1
0
        // TODO: Split into Add and Connect methods
        internal static void AddNetworAdapter(this ManagementScope scope, string vmIdentity, string switchName)
        {
            var virtualMachine           = scope.GetVirtualMachine(vmIdentity);
            var virtualSystemSettingData = virtualMachine.GetVirtualSystemSettingData();

            var defaultRessourcePoolForSyntheticEthernetPorts = scope.GetDefaultRessourcePoolForSyntheticEthernetPorts();
            var allocationSettingData = defaultRessourcePoolForSyntheticEthernetPorts.GetAllocationSettingDataFromDefaultRessourcePool();

            allocationSettingData["VirtualSystemIdentifiers"] = new[] { Guid.NewGuid().ToString("B") };
            allocationSettingData["ElementName"]      = "Network Adapter";
            allocationSettingData["StaticMacAddress"] = false;
            allocationSettingData.Put();

            var outParameters = scope.AddResourceSettings(virtualSystemSettingData, allocationSettingData);

            var resultingRessourceSettings = outParameters["ResultingResourceSettings"] as string[];

            var syntheticEthernetPortSettingsData = new ManagementObject(resultingRessourceSettings[0]);

            // --------------- Connect Adapter and Switch

            var defaultRessourcePoolForEthernetConnection = scope.GetDefaultRessourcePoolForEthernetConnection();
            var ethernetPortAllocationSettingData         = defaultRessourcePoolForEthernetConnection.GetAllocationSettingDataFromDefaultRessourcePool();

            var virtualSwitch = scope.GetVirtualSwitch(switchName);

            ethernetPortAllocationSettingData["Parent"]       = syntheticEthernetPortSettingsData;
            ethernetPortAllocationSettingData["HostResource"] = new[] { virtualSwitch };

            scope.AddResourceSettings(virtualSystemSettingData, ethernetPortAllocationSettingData);
        }
Beispiel #2
0
        internal static void SetVhd(this ManagementScope scope, string vmIdentity, string vhdFilepath)
        {
            var virtualMachine           = scope.GetVirtualMachine(vmIdentity);
            var virtualSystemSettingData = virtualMachine.GetVirtualSystemSettingData();

            var diskDriveResource = scope.GetDiscDriveResource(virtualSystemSettingData);

            var allocationSettingData = scope.GetAllocationSettingDataForVirtualHardDisks();

            allocationSettingData["Parent"]       = diskDriveResource;
            allocationSettingData["HostResource"] = new string[] { vhdFilepath };

            scope.AddResourceSettings(virtualSystemSettingData, allocationSettingData);
        }
Beispiel #3
0
        internal static ManagementObject GetDiscDriveResource(this ManagementScope scope, ManagementObject virtualSystemSettingData)
        {
            var storageAllocationSettingData = scope.GetAllocationSettingDataForSyntheticDiskDrives();

            var ideController = virtualSystemSettingData.GetIdeController();

            storageAllocationSettingData["Parent"]          = ideController;
            storageAllocationSettingData["AddressOnParent"] = 0;

            var outParameters = scope.AddResourceSettings(virtualSystemSettingData, storageAllocationSettingData);

            var resultingRessourceSettings = outParameters["ResultingResourceSettings"] as string[];

            return(new ManagementObject(resultingRessourceSettings[0]));
        }