Run only one program on Windows at startup without any other services
Modify the following registry value to start a program other than Windows Explorer.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\shell
As for the services, use the services.msc
.
Warning: You may run into various issues without many of the services running.
You cannot disable all services. Many services are critical to the basic functions of your system, including Explorer.
The good news is that the services that CAN be disabled are easy to disable.
Open Services and go to each one in turn and attempt to set its startup state to Disabled.
Restart your computer frequently to make sure the computer loads OK with the new batch of disabled services.
Repeat until you've cleaned everything out that can be cleaned out.
A good resource for determined services that CAN be disabled is BlackViper: http://www.blackviper.com/service-configurations/black-vipers-windows-7-service-pack-1-service-configurations/
A lot of careful research and feedback goes into BlackViper, and the advice there can save you lots of effort and pain.
Most of the services (if not all) can be controlled via value Start
under registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>
Please note that CurrentControlSet
in aforementioned registry key is link to either ControlSet001
or ControlSet002
as described here.
Now the value "Start" can have values from 0 to 4 (sc config for reference):
- 0 - boot - Specifies a device driver that is loaded by the boot loader.
- 1 - system - Specifies a device driver that is started during kernel initialization.
- 2 - auto - Specifies a service that automatically starts each time the computer is restarted and runs even if no one logs on to the computer.
- 3 - demand (manual) - Specifies a service that must be started manually. This is the default value if start= is not specified.
- 4 - disabled - Specifies a service that cannot be started. To start a disabled service, change the start type to some other value.
While going to that mad service disabling spree, first check service start value and mark it down, prepare yourself with alternative booting media (any Windows installation media will do) in case system becomes unbootable due to necessary service disabled.
If shit happens, boot from external media, switch to console (shift+F10 IIRC) > regedit > point to HKEY_LOCAL_MACHINE and "load hive" > <systemdrive>:\Windows\System32\config\SYSTEM
. Now locate under loaded hive ControlSet001\Services
and you can undo previous mistakes with setting Start
values to defaults.
Here is a little batch script to list all services "default" (default until modified by user, which then becomes "default") values under 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
Paste the above code to defaultservices.bat
and run it as defaultservices.bat > defaultservices.txt
to generate text file, which can be utilized later to see service default values.