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);
        }
Exemplo n.º 3
0
 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);
                    }
                }
            }
        }