Ejemplo n.º 1
0
        /// <summary>
        /// Send a stop command to a Service and wait until the Service is stopped
        /// </summary>
        /// <param name="ServiceName"></param>
        /// <returns>Returns an ArrayList of Services which has stopped because of service dependencies </returns>
        public ArrayList StopService(string ServiceName)
        {
            try
            {
                ManagementObjectCollection Dependencies;
                ManagementObject           Service;
                WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());
                oProv.mScope.Path.NamespacePath       = @"root\cimv2";
                oProv.mScope.Options.EnablePrivileges = true;
                Service      = oProv.GetObject("Win32_Service.Name='" + ServiceName + "'");
                Dependencies = oProv.ExecuteQuery("Associators of {Win32_Service.Name='" + ServiceName + "'} Where AssocClass=Win32_DependentService Role=Antecedent");

                ArrayList Result = new ArrayList();
                foreach (ManagementObject MO in Dependencies)
                {
                    if (MO.GetPropertyValue("State").ToString().ToLower() == "running")
                    {
                        Result.AddRange(StopService(MO.GetPropertyValue("Name").ToString()));
                    }
                }
                Result.Add(ServiceName);
                bStopService(Service);
                return(Result);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get an ArrayList of all Subfolders
        /// </summary>
        /// <param name="Path"></param>
        /// <returns></returns>
        public ArrayList SubFolders(string Path)
        {
            lock (oWMIProvider)
            {
                ArrayList result = new ArrayList();
                try
                {
                    WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());
                    oProv.mScope.Path.NamespacePath = @"root\cimv2";
                    ManagementObjectCollection MOC = oProv.ExecuteQuery(@"Associators of {Win32_Directory.Name='" + Path + @"'} where AssocClass=Win32_Subdirectory ResultRole=PartComponent");

                    foreach (ManagementObject MO in MOC)
                    {
                        try
                        {
                            result.Add(MO.GetPropertyValue("Name").ToString().ToLower());
                        }
                        catch { }
                    }
                    return(result);
                }
                catch { }

                return(result);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Delete a Folder with all Subfolders and Files
        /// </summary>
        /// <param name="Path"></param>
        public void DeleteFolder(string Path)
        {
            if (!string.IsNullOrEmpty(Path))
            {
                try
                {
                    ManagementObjectCollection MOC;

                    //Delete all Subfolders
                    foreach (string sSub in SubFolders(Path))
                    {
                        DeleteFolder(sSub);
                    }
                    WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());
                    oProv.mScope.Path.NamespacePath = @"root\cimv2";
                    string FolderPath = Path.Replace(@"\", @"\\");
                    //ManagementObjectCollection MOC = oWMIProvider.ExecuteQuery("SELECT * FROM Win32_Directory WHERE Drive like '" + (FolderPath.Split('\\'))[0] + "' and Path like '" + (CachePath.Split(':'))[1] + @"\\' and FileType = 'File Folder'");
                    MOC = oProv.ExecuteQuery("SELECT * FROM Win32_Directory WHERE Name = '" + FolderPath + "'");

                    //Delete the root Folder
                    foreach (ManagementObject MO in MOC)
                    {
                        try
                        {
                            ManagementBaseObject inParams = MO.GetMethodParameters("DeleteEx");
                            ManagementBaseObject result   = MO.InvokeMethod("DeleteEx", inParams, null);
                        }
                        catch { }
                    }
                }
                catch { }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// local CCM_ComponentClientConfig policy from requested policy
        /// </summary>
        /// <param name="ComponentName"></param>
        /// <returns>ROOT\ccm\Policy\Machine\RequestedConfig:CCM_ComponentClientConfig</returns>
        public ManagementObjectCollection Component_Requested(string ComponentName)
        {
            WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());

            oProv.mScope.Path.NamespacePath = @"ROOT\ccm\Policy\Machine\RequestedConfig";
            return(oProv.ExecuteQuery("SELECT * FROM CCM_ComponentClientConfig WHERE ComponentName = '" + ComponentName + "'"));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Delete multiple Files
        /// </summary>
        /// <param name="Drive">Disk Drive like 'c:'</param>
        /// <param name="Path">Path like '\\windows\\'</param>
        /// <param name="Filename">Filename like 'kb%'</param>
        /// <param name="Extension">Extension like 'log'</param>
        public void DeleteFiles(string Drive, string Path, string Filename, string Extension)
        {
            try
            {
                ManagementObjectCollection MOC;

                if (!Path.EndsWith(@"\"))
                {
                    Path = Path + @"\";
                }

                WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());
                oProv.mScope.Path.NamespacePath = @"root\cimv2";
                string FolderPath = Path.Replace(@"\", @"\\");
                //ManagementObjectCollection MOC = oWMIProvider.ExecuteQuery("SELECT * FROM Win32_Directory WHERE Drive like '" + (FolderPath.Split('\\'))[0] + "' and Path like '" + (CachePath.Split(':'))[1] + @"\\' and FileType = 'File Folder'");
                MOC = oProv.ExecuteQuery(string.Format("SELECT * FROM CIM_DataFile WHERE Drive = '{0}' and Path = '{1}' and Filename like '{2}' and Extension like '{3}'", new object[] { Drive, FolderPath, Filename, Extension }));

                //Delete the root Folder
                foreach (ManagementObject MO in MOC)
                {
                    try
                    {
                        ManagementBaseObject inParams = MO.GetMethodParameters("Delete");
                        ManagementBaseObject result   = MO.InvokeMethod("Delete", inParams, null);
                    }
                    catch { }
                }
            }
            catch { }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// CCM_ComponentClientConfig from actual policy
        /// </summary>
        /// <param name="ComponentName"></param>
        /// <returns>ROOT\ccm\Policy\Machine\ActualConfig:CCM_ComponentClientConfig</returns>
        public ManagementObject Component_Actual(string ComponentName)
        {
            WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());

            oProv.mScope.Path.NamespacePath = @"ROOT\ccm\Policy\Machine\ActualConfig";
            ManagementObjectCollection MOC = oProv.ExecuteQuery("SELECT * FROM CCM_ComponentClientConfig WHERE ComponentName = '" + ComponentName + "'");

            foreach (ManagementObject MO in MOC)
            {
                return(MO);
            }
            return(null);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Delete all instances from a Query Result
 /// </summary>
 /// <param name="sNamespace"></param>
 /// <param name="sQuery"></param>
 public void DeleteQueryResults(string sNamespace, string sQuery)
 {
     try
     {
         WMIProvider oProv = new WMIProvider(this.mscope.Clone());
         oProv.mScope.Path.NamespacePath = sNamespace;
         ManagementObjectCollection oResults = oProv.ExecuteQuery(sQuery);
         foreach (ManagementObject oInst in oResults)
         {
             oInst.Delete();
         }
     }
     catch { }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Get DCM Baselines (Class SMS_DesiredConfiguration)
 /// </summary>
 /// <returns>Class SMS_DesiredConfiguration</returns>
 public ManagementObjectCollection CCM_DCMBaselines()
 {
     if (oDCMBaselines == null)
     {
         WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());
         oProv.mScope.Path.NamespacePath = @"root\ccm\dcm";
         ManagementObjectCollection MOC = oProv.ExecuteQuery("SELECT * FROM SMS_DesiredConfiguration");
         oDCMBaselines = MOC;
         return(MOC);
     }
     else
     {
         return(oDCMBaselines);
     }
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Uninstall a Windows Installer Package based on the MSI-ID
        /// </summary>
        /// <param name="MSIID"></param>
        /// <returns>MSI Exit Code or 99 if MSIID was not found</returns>
        public UInt32 UninstallMSI_ID(string MSIID)
        {
            ManagementObjectCollection CliAgents;
            WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());

            oProv.mScope.Path.NamespacePath = @"root\cimv2";
            CliAgents = oProv.ExecuteQuery("SELECT * FROM Win32_Product WHERE IdentifyingNumber ='" + MSIID + "'");

            foreach (ManagementObject CliAgent in CliAgents)
            {
                ManagementBaseObject inParams = CliAgent.GetMethodParameters("Uninstall");
                ManagementBaseObject result   = CliAgent.InvokeMethod("Uninstall", inParams, null);
                return(UInt32.Parse(result.GetPropertyValue("ReturnValue").ToString()));
            }
            return(99);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Kill a process by ProcessName
        /// </summary>
        /// <param name="ProcessName"></param>
        /// <returns></returns>
        public int KillProcess(string ProcessName)
        {
            ManagementObjectCollection MOC;
            int         Res   = 0;
            WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());

            oProv.mScope.Path.NamespacePath       = @"root\cimv2";
            oProv.mScope.Options.EnablePrivileges = true;
            MOC = oProv.ExecuteQuery("SELECT * FROM Win32_Process WHERE Name='" + ProcessName + "'");

            foreach (ManagementObject MO in MOC)
            {
                ManagementBaseObject inParams = MO.GetMethodParameters("Terminate");
                Res = int.Parse((MO.InvokeMethod("Terminate", inParams, null)).GetPropertyValue("ReturnValue").ToString());
            }
            return(Res);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Check if Directory Exists
 /// </summary>
 /// <param name="Path"></param>
 /// <returns>True = Directory exists</returns>
 public Boolean DirExist(string Path)
 {
     if (!string.IsNullOrEmpty(Path))
     {
         try
         {
             WMIProvider oProv              = new WMIProvider(oWMIProvider.mScope.Clone());
             string      FolderPath         = Path.Replace(@"\", @"\\");
             ManagementObjectCollection MOC = oProv.ExecuteQuery("SELECT * FROM Win32_Directory WHERE Name = '" + FolderPath + "'");
             foreach (ManagementObject MO in MOC)
             {
                 return(true);
             }
         }
         catch { }
     }
     return(false);
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Check if File Exists
 /// </summary>
 /// <param name="FilePath"></param>
 /// <returns>True = File exists</returns>
 public Boolean FileExist(string FilePath)
 {
     if (!string.IsNullOrEmpty(FilePath))
     {
         try
         {
             WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());
             FilePath = FilePath.Replace(@"\", @"\\");
             ManagementObjectCollection MOC = oProv.ExecuteQuery("SELECT * FROM CIM_Datafile WHERE Name = '" + FilePath + "'");
             foreach (ManagementObject MO in MOC)
             {
                 return(true);
             }
         }
         catch { }
     }
     return(false);
 }
Ejemplo n.º 13
0
 /// <summary>
 /// The cached CCM_SoftwareDistributionClientConfig Class.
 /// </summary>
 /// <returns>root\ccm\policy\machine\requestedconfig:CCM_SoftwareDistributionClientConfig</returns>
 /// <seealso cref="M:smsclictr.automation.SMSComponents.CCM_SoftwareDistributionClientConfig(System.Boolean)"/>
 public ManagementObject CCM_SoftwareDistributionClientConfig()
 {
     if (oCCM_SoftwareDistributionClientConfig == null)
     {
         WMIProvider oProv = new WMIProvider(oWMIProvider.mScope.Clone());
         oProv.mScope.Path.NamespacePath = @"root\ccm\policy\machine\requestedconfig";
         ManagementObjectCollection MOC = oProv.ExecuteQuery("SELECT * FROM CCM_SoftwareDistributionClientConfig");
         foreach (ManagementObject MO in MOC)
         {
             oCCM_SoftwareDistributionClientConfig = MO;
             return(MO);
         }
         return(null);
     }
     else
     {
         return(oCCM_SoftwareDistributionClientConfig);
     }
 }