Ejemplo n.º 1
0
        public static void BackupAndRemove(string[] servicesToRemove,
                                           IUserInterface ui,
                                           ServiceRemovalMode removalMode = ServiceRemovalMode.ServiceControl)
        {
            var serviceRemover = new ServiceRemover(servicesToRemove, ui);

            string[] actualBackuppedServices = serviceRemover.PerformBackup();
            serviceRemover.PerformRemoval(actualBackuppedServices, removalMode);
        }
Ejemplo n.º 2
0
 /*
  *  Performs the removal of the services by using either sc or reg command, according to the passed parameter
  *  (default is sc).
  *  reg command allows to remove unstoppable system services, like Windows Defender ones.
  */
 private void PerformRemoval(string[] backuppedServices, ServiceRemovalMode removalMode)
 {
     if (removalMode == ServiceRemovalMode.ServiceControl)
     {
         RemoveServicesUsingSC(backuppedServices);
     }
     else if (removalMode == ServiceRemovalMode.Registry)
     {
         RemoveServicesByDeletingRegistryKeys(backuppedServices);
     }
 }
Ejemplo n.º 3
0
        /*
         *  Performs the removal of the services by using either sc or reg command, according to the passed parameter
         *  (default is sc).
         *  reg command allows to remove unstoppable system services, like Windows Defender ones.
         */
        public void PerformRemoval(ServiceRemovalMode removalMode = ServiceRemovalMode.ServiceControl)
        {
            if (!backupPerformed)
            {
                throw new InvalidOperationException("Backup services before removing them!");
            }

            string[] existingServicesNames = GetAllServicesNames();
            foreach (string serviceToRemove in servicesToRemove)
            {
                var actualServicesToRemove = existingServicesNames.Where(name => name.StartsWith(serviceToRemove));
                if (removalMode == ServiceRemovalMode.ServiceControl)
                {
                    RemoveServicesUsingSC(actualServicesToRemove);
                }
                else if (removalMode == ServiceRemovalMode.Registry)
                {
                    RemoveServicesByDeletingRegistryKeys(actualServicesToRemove);
                }
            }
        }