FileServerStatusConfirm(ManagementScope scope, ManagementObject managementService, string vmName) { using (ManagementObject guestServiceInterfaceComponent = GetGuestServiceInterfaceComponent(scope, vmName)) using (ManagementObject guestFileService = GetGuestFileService(guestServiceInterfaceComponent)) { if (Convert.ToUInt16(guestFileService.GetPropertyValue("EnabledState")) != 2) { using (ManagementObjectCollection guestServiceInterfaceComponentSettingDatas = guestServiceInterfaceComponent.GetRelated("Msvm_GuestServiceInterfaceComponentSettingData")) using (ManagementObject guestServiceInterfaceComponentSettingData = WmiUtilities.GetFirstObjectFromCollection(guestServiceInterfaceComponentSettingDatas)) { guestServiceInterfaceComponentSettingData["EnabledState"] = 2; using (ManagementBaseObject inParams = managementService.GetMethodParameters("ModifyResourceSettings")) { inParams["ResourceSettings"] = new string[] { guestServiceInterfaceComponentSettingData.GetText(TextFormat.WmiDtd20) }; using (ManagementBaseObject outParams = managementService.InvokeMethod( "ModifyResourceSettings", inParams, null)) { try { WmiUtilities.ValidateOutput(outParams, scope); } catch (ManagementException e) { Console.WriteLine("WMIÎļþ¿½±´Òì³££º" + e.Message); } } } } } } }
GetGuestServiceInterfaceComponent( ManagementScope scope, string vmName) { ManagementObject guestServiceInterfaceComponent; using (ManagementObject virtualMachine = WmiUtilities.GetVirtualMachine( vmName, scope)) { using (ManagementObjectCollection settingsCollection = virtualMachine.GetRelated( "Msvm_GuestServiceInterfaceComponent", "Msvm_SystemDevice", null, null, null, null, false, null)) { guestServiceInterfaceComponent = WmiUtilities.GetFirstObjectFromCollection( settingsCollection); } } return(guestServiceInterfaceComponent); }
GetVhdSettings( ManagementObject virtualMachine) { // Get the virtual machine settings (Msvm_VirtualSystemSettingData object). using (ManagementObject vssd = WmiUtilities.GetVirtualMachineSettings(virtualMachine)) { return(GetVhdSettingsFromVirtualMachineSettings(vssd)); } }
GetGuestFileService( ManagementObject guestServiceInterfaceComponent) { ManagementObject guestFileService; using (ManagementObjectCollection guestFileServices = guestServiceInterfaceComponent.GetRelated( "Msvm_GuestFileService", "Msvm_RegisteredGuestService", null, null, null, null, false, null)) { guestFileService = WmiUtilities.GetFirstObjectFromCollection( guestFileServices); } return(guestFileService); }
CopyFileToGuest( string hostMachine, string vmName, string sourceFileName, string destinationFileName, bool overwriteExisting, bool createFullPath) { // // Get the ManagementScope for the Hyper-V host. // string managementPath = string.Format( CultureInfo.CurrentCulture, @"\\{0}\root\virtualization\v2", hostMachine); ManagementScope scope = new ManagementScope( managementPath, null); ManagementObject guestFileService; // // Get the Msvm_GuestServiceInterfaceComponent instance. // using (ManagementObject guestServiceInterfaceComponent = GetGuestServiceInterfaceComponent(scope, vmName)) { // // Get the Msvm_GuestFileService instance. // guestFileService = GetGuestFileService( guestServiceInterfaceComponent); } // // Create parameters for the CopyFilesToGuest method. // string[] copyFileToGuestSettingDataText = new string[1]; using (ManagementObject wmiCopyFileToGuestSettingData = CreateCopyFileToGuestSettingData( scope, sourceFileName, destinationFileName, overwriteExisting, createFullPath)) { copyFileToGuestSettingDataText[0] = wmiCopyFileToGuestSettingData.GetText( TextFormat.CimDtd20); } using (guestFileService) { // // Invoke the CopyFilesToGuest method. // using (ManagementBaseObject inParams = guestFileService.GetMethodParameters("CopyFilesToGuest")) { inParams["CopyFileToGuestSettings"] = copyFileToGuestSettingDataText; using (ManagementBaseObject outParams = guestFileService.InvokeMethod( "CopyFilesToGuest", inParams, null)) { // // Validate the output. // WmiUtilities.ValidateOutput( outParams, scope, true, true); } } } }