Большинство сервисов (если не все) можно контролировать с помощью значения Start
разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>
Обратите внимание, что CurrentControlSet
в вышеупомянутом разделе реестра является ссылкой либо на ControlSet001
либо на ControlSet002
как описано здесь.
Теперь значение "Старт" может иметь значения от 0 до 4 (sc config для справки):
- 0 - boot - указывает драйвер устройства, который загружается загрузчиком.
- 1 - система - указывает драйвер устройства, который запускается во время инициализации ядра.
- 2 - авто - указывает службу, которая автоматически запускается при каждом перезапуске компьютера и запускается, даже если никто не входит в систему.
- 3 - спрос (вручную) - указывает службу, которую необходимо запустить вручную. Это значение по умолчанию, если start = не указано.
- 4 - отключено - указывает службу, которая не может быть запущена. Чтобы запустить отключенную службу, измените тип запуска на другое значение.
При переходе к этому безумному сервису, отключающему веселье, сначала проверьте начальное значение сервиса и отметьте его, подготовьте себя с альтернативными загрузочными носителями (подойдет любой установочный носитель Windows) на случай, если система не загрузится из-за отключения необходимой службы.
Если это дерьмо, загрузитесь с внешнего носителя, переключитесь на консоль (shift+F10 IIRC)> regedit>, укажите на HKEY_LOCAL_MACHINE и "загрузите куст"> <systemdrive>:\Windows\System32\config\SYSTEM
. Теперь найдите под загруженным кустом ControlSet001\Services
и вы можете отменить предыдущие ошибки, установив в качестве Start
значений значения по умолчанию.
Вот небольшой пакетный скрипт для перечисления всех служб "по умолчанию" (по умолчанию до тех пор, пока пользователь не изменит их, а затем станет "по умолчанию") в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
:
@echo off
setlocal enabledelayedexpansion
set KEY=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
for /f "tokens=5 delims=\" %%a in ('reg query !KEY! /s /v "start"') do (
set SERVICE=%%a
for /f "tokens=3" %%b in ('reg query !KEY!\!SERVICE! /v "start" ^| findstr /i "start"') do (
echo !KEY!\!SERVICE! - "Start" %%d
)
)
endlocal
Вставьте приведенный выше код в defaultservices.bat
и запустите его как defaultservices.bat > defaultservices.txt
чтобы сгенерировать текстовый файл, который можно использовать позже, чтобы просмотреть значения по умолчанию для службы.