Как получить права на удаление системных служб

Обновлено: 20.05.2024

Предлагаю познакомимся с довольно простым способом, который позволяет удалить любую ненужную службу в Windows 7 с использованием средств самой операционной системы без применения сторонних программ.


Перед тем, как начать, следует учесть несколько моментов:

Внимание: После удаления службы ее невозможно будет восстановить никакими способами, кроме переустановки системы.
·-> После удаления определенной службы, система может стать неработоспособной или отказ в работе некоторых программ. Из этого следует, что не нужно удалять службу, если вы не уверены на 100% или не знаете, за что эта служба отвечает.
·-> Ни в коем случае не удаляйте системные службы, это может стать следствием полной неработоспособности системы.

Также стоит разобраться, в каких случаях может возникнуть необходимость в удалении той или иной службы Windows 7.
· Очень часто, после удаления какой-либо программы из системы службы программы остаются нетронутыми, и при каждой новой загрузке компьютера система пытается запустить эти службы, но из-за отсутствия библиотечных или исполняемых файлов ничего не может сделать, отнимая этим время запуска и выдавая ошибку.
· Некоторые разновидности вирусов, для своей маскировки и маскировки своих диверсионных действий могут создавать новые службы в системе. Если даже, ваш бдительный антивирус избавит систему от вируса, служба все же может остаться, и удалять ее придется вручную.
· Возможна и такая ситуация, когда уменьшается производительность системы из-за наличия слишком большого количества запущенных процессов, исполняемых в виде служб, и вы решили избавиться, а не просто отключить, ряд более уже ненужных служб в Windows.

Для того, чтобы удалить службу из системы, для начала нужно узнать ее имя. Для этого откройте окно панели управления службами:

Пуск -> Панель управления -> Система и безопасность -> Администрирование -> Службы

В открывшемся окне найдите службу, которую вы собираетесь удалить (в примере показана "StarWindServiceAE”)

services

services-1

Удаление службы с помощью командной строки

Откройте окно командной строки:

Пуск -> Все программы -> Стандартные -> Командная строка

Для того, чтобы удалить любую службу в Windows 7, проще будет воспользоваться системной командой "sc". Системная команда sc.exe – это утилита, которая используется в ситемах Windows 7, Vista и XP для редактирования, создания и удаления системных служб.

Синтаксис для команды удаления службы будет выглядеть так:

sc delete ServiceName - где вместо "ServiceName" указывается имя удаляемой службы.

Если в имени службы присутствуют пробелы, то его нужно заключить в кавычки:

sc delete "StarWindService AE”

services-2

services-3

Теперь, снова откройте окно управления службами, вы увидите, что удаленная служба в списке отсутствует.

services-4

Удаление службы через редактор реестра

Альтернативный метод удаления службы в Windows 7 использует системный редактора реестра.

Откройте редактор реестра (Win+R), введите regedit и перейдите в ветку

Там содержится полный список служб установленных в системе.

Найдите ветку реестра соответствующую имени службы, которую вы хотите удалить

Убедитесь, что в значениях службы DisplayName и ImagePath присутствует имя и путь к исполняемому файлу удаляемой службы.

services-5

Если что-то вам не понятно или вы опасаетесь ошибки в действиях - обратитесь к специалисту.

Сначала необходимо открыть список служб и скопировать точное название службы, которую требуется удалить.

Открываем службы — services.msc (универсальный способ)

Копируем имя службы / Службы

После нужно запустить командную строку от имени администратора. Для этого:


Запускаем командную строку от имени администратора


Windows 10 — запуск командной строки

Далее нужно ввести команду:


Удаляем службу в командной строке

После перезагрузки компьютера, удаленной службы уже не будет…

Удалить службу также можно через редактор реестра (но я бы рекомендовал этот способ, если у вас почему-то не сработал первый).

Чтобы открыть редактор реестра (на всякий случай напомню):

regedit — открыть редактор реестра

Далее нужно открыть ветку:

После, в ней нужно найти раздел с названием службы, и удалить оный.


Редактор реестра — удаление службы

Есть спец. утилиты, которые могут помочь навести порядок в Windows. Одна из таких — Process Hacker. Бесплатная, мощная утилита для мониторинга за состоянием ОС Windows. Годится и для решения нашей задачи: позволяет просмотреть полный список служб и удалить любую из них*.

Process Hacker — удаление службы

После перезагрузите компьютер. Вот, собственно, и все…

Запускать Process Hacker необходимо от имени администратора. Для этого просто щелкните на исполняемом файле правой кнопкой мышки и в контекстном меню выберите оное.

Запуск от имени администратора

Как удалить службу в Windows 7

В этой статье мы познакомимся с простым способом, позволяющим удалить любую службу в Windows 7 средствами самой операционной системы без использования сторонних программ.

Прежде чем начать, необходимо уяснить несколько моментов:

  • При удалении службы она навсегда исчезнет из системы, и восстановить ее непросто, а в ряде случаем просто невозможно
  • Удаление определенных служб может вызвать неработоспособность тех или иных программ. Поэтому не стоит удалять службу, если вы на 100% не уверены за что она отвечает.
  • Не удаляйте системные службы Windows 7, т.к. это может привести к неработоспособности всей системы

Также попытаемся понять, в каких случаях возникает необходимость в удалении службы Windows.

  • Зачастую программы при удалении из системы оставляют свои службы нетронутыми, и каждый раз при загрузке компьютера система пытается запустить такую службу, однако из-за отсутствия исполняемых или библиотечных файлов сделать этого не может, генерируя ошибку.
  • Некоторые вирусы и трояны для маскировки своих деструктивных действий могут создать в системе новую службу. И даже если, ваш антивирус удалит тело вируса, служба может остаться, и ее придется удалять вручную.
  • Возможно также ситуация, когда производительность системы снижается вследствие наличия большого количества процессов, работающих в виде служб, и вы решили удалить (а не просто остановить) ряд ненужных более служб в Windows 7.

Чтобы удалить службу в Windows 7, нужно знать ее имя. Для чего откройте окно управления службами Start -> Settings -> Control Panel-> Systems and Maintenance->Administrative Tools->Services.
В появившемся окне служб найдите ту службу, которую вы планируете удалить (в моем примере это “Adobe Lm Service”)



Удаляем службу в Windows из командной строки

Синтаксис команды удаления службы выглядит так:

sc delete ServiceName

Если имя службы содержит пробелы (как в нашем случае), его нужно взять в кавычки:

sc delete “Adobe LM Service”


Теперь, если в консоли управления службами нажать F5, вы увидите, что служа удалена и в списке не значится.


Редактирование параметров запуска служб в Windows

0. Оглавление

  1. Изменение свойств запуска службы
  2. Изменение параметров запуска исполняемого файла службы

1. Изменение настроек запуска службы




Далее в открывшейся оснастке, в списке служб находим службу, параметры запуска которой необходимо отредактировать.


Кликаем два раза по имени службы, чтобы открыть ее свойства. В окне свойств службы можно отредактировать нижеперечисленные параметры запуска службы.



2. Изменение параметров запуска исполняемого файла службы

Однако эта информация доступна только для чтения. Изменить строку запуска исполняемого файла службы можно с помощью системного реестра Windows.

В первую очередь при работе с реестром Windows необходимо сделать бэкап, выполнив экспорт всего реестра.

После этого в дереве папок слева переходим по пути:

Затем в списке выделим группу с именем службы, свойства которой необходимо отредактировать. При этом, в окне справа увидим все параметры данной службы.

Кликаем 2 раза по имени параметра, который необходимо изменить и вводим новое значение.

На этом все. Изменения вступили в силу, соответственно агент сервера запущен в режиме отладки.

Помогла ли Вам данная статья?

Для работы операционной системы и программного обеспечения используются так называемые службы. Служба — это небольшая программка, которая выполняется в фоновом режиме (незаметно от вас) и выполняет определенные действия. Например, существуют службы, позволяющие выводить документы на печать, подключаться к сети, загружать обновления, и так далее. Каждая служба занимает определенное количество системных ресурсов, поэтому для оптимизации работы компьютера ненужные объекты лучше отключать. В данной статье описано, как удалить определенную службу в Windows 7.

Давайте начнем с того, что просто получим статус всех служб, запущенных на локальном компьютере. Используем для этого командлет Get-Service.

PowerShell, как правило, не чувствителен к регистру. Вывод приведен на скриншоте ниже.


Каждая строка представляет собой объект службы (service object).Каждый сервисный объект, как правило, имеет свои свойства. Вы можете открыть их, просто передав эти объекты в другую команду, Get-Member.

Результаты приведены на скриншоте ниже.


Параметр Typename сверху говорит о том, что за объект перед нами; в данном случае это System.ServiceProcess.ServiceController. На скриншоте также обведены свойства объекта. Это атрибуты, которые описывают этот тип объекта. Хотя большинство из них не используются при отображении по умолчанию, вы можете использовать их, если вы их знаете.
Например, нам интересно посмотреть информацию только о Windows Update. Через Get-Service получим информацию только о некоторых ее свойствах.

Как я узнал, что могу напечатать имя службы? Посмотрел с помощью Get-Service.
PS C:\> help get-service


Вы можете получить полную справочную информацию, напечатав:

Информацию о службе можно получить по ее имени или даже начальным буквам имени.

Или если вам удобнее работать с отображаемыми именами, используйте параметр –Displayname.

Я должен использовать имя параметра, чтобы PowerShell воспринимал значения в качестве отображаемого имени, а не фактического имени службы. Команда будет выглядеть так:

Параметр –Name можно не печатать.

ПОЛУЧАЕМ СТАТУС СЛУЖБЫ НА УДАЛЕННЫХ КОМПЬЮТЕРАХ

До этого нас интересовало получение информации о статусе служб на локальном компьютере. Однако управление службами осуществляется на удаленных компьютерах. Если посмотреть справку по Get-Service, то можно увидеть наличие у этого командлета параметра –Computername. В данном случае подключение к удаленным компьютерам осуществляется без включения функции удаленного управления PowerShell. Если вы можете управлять службами, используя инструменты командной строки (sc.exe или консоль управления Service Manager), вы можете использовать PowerShell. Давайте взглянем на пример:

Любая команда, которую я демонстрировал, можно использовать для передачи удаленному компьютеру. Даже нескольким компьютерам, если у вас есть соответствующие права на удаленном компьютере. Если вы используете PowerShell v3, то можно легко выбрать одну службу на множестве компьютеров.

Для наглядности представления отформатируем вывод.

Тот же самый результат, но в PowerShell v2.

ОСУЩЕСТВЛЯЕМ ФИЛЬТРАЦИЮ (ИСПОЛЬЗУЯ WHERE-OBJECT)

Фильтрация служб осуществляется с помощью командлета Where-Object (where – сокращение для командлета). Все, что нам нужно от PowerShell в этом случае, так это получить только те службы, у которых статус равен “stopped”.

PowerShell получает информацию обо всех службах и передает их (с помощью “|”) в следующую команду, которая осуществляет просмотр каждого объекта. Если свойство статуса объекта равно “stopped”, она остается в конвейере (pipeline), в противном случае она из него исключается. В конце выражение PowerShell отображает те объекты, которые остались в конвейере.
Результаты приведены ниже.


Теперь давайте попробуем найти одну службу на нескольких машинах. Вывод отформатируем в таблицу.

Мы даже можем комбинировать запрос отдельных служб с их фильтрацией.

Эта команда находит все службы на компьютере CHI-DC03, которые начинаются с ‘WIN’, но отображает только те, которые запущены.
Также можно сгруппировать объекты по свойству статуса (status property).

Переменная $dc03 является объектом GroupInfo.

Свойство Group представляет собой коллекцию связанных служб.

Написанное выше проще понять, если взглянуть на скриншот.


Что касается меня, то я бы предпочел использовать хеш-таблицу.

Теперь каждое имя представляет собой свойство в хеш-таблице. Если у вас имеется опыт работы с PoweShell, вы, возможно, подумываете сделать сделующее:

В чем суть параметра –AsString, на мой взгляд, достаточно очевидно. Теперь работать с хеш-таблицей стало проще.

Следующей задачей на повестке дня является проверка зависимостей сервера (server dependencies).

Требуемые службы

PowerShell позволяет просто получить статус всех служб, которые требуется для данной службы, даже на удаленном компьютере.

Параметр –RequiredServices передаст объект в конвейер для каждой требуемой службы. Вы можете даже пойти дальше и проверить требуемые службы для работы данной службы.

Параметр –Computername командлета Get-Service возьмет вывод, но только для тех объектов, у которых есть объект свойство Computername – именно поэтому я использую хеш-таблицу с Select-Object. Как мы видим проблем со службой DNS на компьютере CHI-DC03 нет.

ЗАВИСИМЫЕ СЛУЖБЫ

Мы можем сделать то же самое с зависимыми службами. Если таковых не имеется, в конвейер ничего передано не будет.

Требуемые и зависимые службы также являются частью каждого объекта службы.

А пока Вы можете получить все зависимости для всех служб, следующая команда

Это не даст вам особо полезную информацию, поэтому я рекомендую осуществлять запрос по конкретным службам. Команда работает гораздо лучше PowerShell v3.

Результаты видны на скриншоте ниже.


Чтобы получить подобные результаты в PowerShell v2, вам придется передать имена компьютеров (computernames) в Get-Service.


В следующей статье будет рассмотрен запуск, остановка и перезапуск служб.
Конец перевода.

мой текущий проект включает развертывание обновленного .exe-файл, который работает как служба Windows. Для того, чтобы перезаписать существующее .exe с новой версией, мне в настоящее время нужно:

  1. остановить службу
  2. удалить службу
  3. перезагрузите систему (так что Windows выпускает его на удержание файла)
  4. развернуть новую .exe
  5. переустановить службу
  6. запустите обновленную службу.

Я как избежать перезагрузки, так что это может быть полностью сценарий/автоматическое обновление.

есть ли способ избежать перезагрузки? Возможно, инструмент командной строки, который заставит Windows отказаться от мертвой хватки на старом .exe?

удалит службу. Я нахожу, что утилита sc гораздо проще найти, чем копать вокруг для installutil. Не забудьте остановить службу, если вы еще не сделали этого.

вы не можете остановить службу до обновления (и перезапустить после обновления), используя приведенные ниже команды?

всякий раз, когда я тестирую/развертываю службу, я могу загружать файлы без переустановки, пока служба остановлена. Я не уверен, что у вас другая проблема.

некоторые вещи, которые не работают:

  • использование "sc delete": у него были те же проблемы, что и у меня.вызов вернет ok, но служба на самом деле не ушла и все еще находится в реестре с DeleteFlag = 1.
  • удаление ключа в реестре. Диспетчер служб, похоже, хранит базу данных в памяти, а реестр-это просто копию для следующей загрузки.
  • добавлять петли ждать, ждать .исполняемые файлы должны быть готовы к перезаписи, убить процесс и т. д.
  • закрывающие ручки для службы. Какие именно??

но вот что получилось:

Я заметил в некоторых статьях здесь, в stackoverflow, что net.exe также имеет функции запуска/остановки (я знал только sc.утилиты EXE-файл). И как ни странно," net stop svcname "плюс" sc delete svcname " работали! Так чисто.исполняемый должен делать то, чего не делаю.

таким образом, это никогда не было проблемой удаления, но остановки службы должным образом. И NetServiceControl () делает трюк. Извините за длинный пост, но я подумал, что это может помочь кому-то с подобными проблемами. (Просто для справки, я использую Win7 SP1 x64.)

  • остановить службу (возможно, поэтому у вас возникли проблемы.)
  • InstallUtil-u [имя исполняемого файла]
  • Installutil-i [имя исполняемого файла]
  • запустить службу снова.

Если я не изменяю открытый интерфейс службы, я часто развертываю обновленные версии своих служб без даже unistalling / переустановки. Все, что я делаю, это останавливаю . service, замените файлы и снова перезапустите службу.

Как отметили StingyJack и mcbala, и в отношении комментариев, сделанных Майком L, мой опыт заключается в том, что на машине Windows 2000 при удалении / переустановке служб .Net "installutil /u" тут требует перезагрузки, даже если служба была остановлена. "sc / delete", с другой стороны, не требует перезагрузки - он удаляет службу сразу (пока она остановлена).

Я часто задавался вопросом, на самом деле, есть ли веская причина "installutil /u" требует перезагрузки. Действительно ли" sc /delete " делает что-то неправильно / оставляет что-то висеть?

я упомяну об осторожности, усвоенной на горьком опыте-Windows 2000 Server (возможно, и клиентская ОС) потребует перезагрузки перед переустановкой, несмотря ни на что. Должен быть раздел реестра, который не полностью очищается до перезагрузки коробки. Windows Server 2003, Windows XP и более поздние версии ОС не страдают от этой боли.

(таким образом, Windows выпускает его файл)

вместо этого сделайте Ctrl+Alt+Del сразу после остановки службы и убейте .exe сервиса. Чем, вы можете удалить службу без перезагрузки. Это случилось со мной в прошлом, и это решает часть, которую вам нужно перезагрузить.

Если необходимо вручную удалить службу:

  1. запустите Regedit или regedt32.
  2. найдите запись раздела реестра для вашей службы под следующим ключом: Раздел HKEY_LOCAL_MACHINE/системы/CurrentControlSet на/услуги
  3. удалить раздел реестра

вам придется перезагрузиться, прежде чем список будет обновлен в services

использование для удаления: InstallUtil '\path\to\assembly\with\the\installer\classes ' / u так, например: installutil MyService.HostService.exe /u

на /u переключатель означает uninstall, без него util выполняет обычную установку службы. Утилита останавливает службу, если она запущена, и у меня никогда не было проблем с блокировкой файлов службы Windows. Вы можете прочитать о других вариантах InstallUtil на MSDN.

Привет админ, читал твою статью как вернуть бойцовскую рыбку на экран загрузки Windows 8.1 и стало интересно, почему я не могу в работающей Windows 8.1 заменить системный файл bootres.dll в папке C:\Windows\Boot\Resources и нужно обязательно загружаться в среду восстановления?


Запросите разрешение от TrustedInstaller или как получить права на изменение системных файлов и папок в Windows 7, 8.1, 10

Привет друзья! Ещё в Windows XP разработчики внесли механизм защиты важных системных файлов и папок от неосторожных действий пользователя, называлась данная технология - Windows File Protection (Защита файлов Windows). Уже в дальнейшем разработка перекочевала в операционную систему Vista и Windows 7, 8.1, но уже по другим названием - Windows Resource Protection (Защита ресурсов Windows). Как работает данный механизм защиты?

Простыми словами, в операционной системе постоянно работает специальная служба Windows Modules Installer (Установщик модулей Windows) или TrustedInstaller.exe, которая не позволяет любому пользователю (даже с правами администратора) удалять или изменять критически важные для работы операционной системы папки файлы и драйвера.

Надо сказать, что для неопытного пользователя это является даже благом, так как многие начинающие пользователи меня часто спрашивают, а что находится в папке C:\Windows\System32, там столько файлов с различными расширениями: .dll, .msc, .exe, а не вирусы это случайно и не нужно ли всё это удалить? Если бы операционная система позволила бы запросто удалить свои важные компоненты, то переустанавливать её пришлось бы несколько раз на дню.

Но для продвинутого пользователя, который знает, что делает, данная служба TrustedInstaller.exe часто заставляет проделывать в своей работе лишние телодвижения. Например, у системных администраторов часто бывает потребность изменить или удалить какой-либо системный файл, естественно сразу это не получится и выйдет ошибка "Запросите разрешение от TrustedInstaller на изменение этого файла", поэтому сначала придётся получить права на изменение системных файлов у операционной системы, тоже самое относится к папке C:\Windows\Boot\Resources, ведь эта папка и находящиеся в ней фалы являются неотъемлемой частью Windows и встаёт вопрос.

Давайте поможем нашему читателю и изменим права на папку Resources, которая является для операционной системы важной системной папкой содержащей серьёзные системные файлы, среди которых имеется файл bootres.dll отвечающий за анимацию загрузочного экрана Windows 8.1. Именно этот файл мы заменили в прошлой статье на другой и в результате при загрузке Windows 8.1 нас теперь встречает красивая рыбка, правда для этого нам пришлось загрузиться в среду восстановления операционной системы. А как сделать всё проще и прямо в работающей Windows 8.1?

Способ №1 . Применить бесплатную и очень простую программу TakeOwnershipEx разработанную специально для смены владельца и получения прав полного доступа к файлам.

Способ №2 . Использовать для получения полных прав доступа к системным файлам средства самой операционной системы.

В результате первого и второго способа мы сможем удалять, изменять и переименовывать важные системные файлы.

Официального сайта у программы нет, поэтому предлагаю скачать её по ссылке на моём облачном хранилище - TakeOwnershipEx


После установки запускаем программу и в появившемся окне выбираем Получить права доступа.


Появляется окно проводника, находим в нём папку, на которую хотим отнять права у операционной системы, в нашем случае C:\Windows\Boot\ Resources , выделяем её левой мышью и жмём ОК.


Обработано успешно, а значит мы с вами получили полные права на данную папку и можем заменять или удалять находящиеся в ней файлы.


Заходим в папку Resources и переименовываем системный файл bootres.dll в bootres2.dll или Вы даже можете удалить этот файл, но делать этого я Вам не рекомендую, так как возможно он Вам понадобится в будущем.



Получив полные права на папку Resources, мы получили возможность копировать в неё файлы.

Как я уже говорил, файл bootres.dll отвечает за анимацию загрузочного экрана Windows 8.1. По умолчанию экран загрузки Windows 8.1 выглядит вот таким образом


и мы можем его заменить на более симпатичный, присутствовавший в предварительной версии Windows 8.1 Preview.


Для этого возьмите файл bootres.dll у меня в архиве

и поместите в папку C:\Windows\Boot\Resources, файл спокойно скопируется в папку, ведь у нас есть на неё права.


Восстановление прав доступа на папку операционной системе

Друзья, при необходимости, вы можете вернуть права на папку обратно операционной системе. Запускаем программу TakeOwnershipEx и выбираем - Восстановить права доступа


Отмечаем галочкой нашу папку Resources и жмём на кнопку Восстановить права.


Готово. Права возвращены операционной системе.


При попытке переименовать или удалить в папке любой файл выйдет уже знакомое нам предупреждение "Запросите разрешение от TrustedInstaller на изменение этого файла"


Используем для получения полных прав доступа к системным файлам средства самой операционной системы

Щёлкаем на папке Resources правой мышью и выбираем Свойства


Безопасность->Дополнительно



Дополнительно



Выделяем левой мышью Администраторы , затем жмём Ок .



Отмечаем галочкой Заменить владельцев подконтейнеров и объектов и ОК


Во вкладке Безопасность жмём кнопку Изменить.


Группе "Администраторы" присваиваем "Полный доступ", ставим галочки в нужных пунктах. Применить и ОК.





Вот и всё, теперь мы сможем делать с файлами в папке Resources что хотим.

Каким способом заиметь права на системные файлы операционной системы решать Вам.


Вместо вывода хотелось бы Вам посоветовать не изменять права на файлы и папки бездумно, так как это сильно ослабит безопасность операционной системы.

Читайте также: