Controlling the Order that Services start

The other day I had a problem where a new service was starting, but it seemed to delay the start of another service which I needed to be available early in the boot (Say at the GINA).

A quick google found that Services can be a part of Service Groups. The Service Groups can be ordered by using the registry editor. The Order is listed at

HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrdering

The list is in the form of a multi-string value. Services are started from top to bottom. To delay a service you can just move the Service Group it belongs to down. A little thought is required since you are moving the order that services are started. You don't want to start a service before its dependent services have all started.

To find out which group a service belongs to you can go to

HKLM\SYSTEM\CurrentControlSet\Services

Find your service and look for the Group value name. It looks like it is possible for a service to not have a group.

5 comments:

Podde said...

Do you know any easy way to install and uninstall services from a cmd? I have the need for stop/start install/uninstall services from a script or from a cmd-line, or, perhaps some third-party application.

Rob Haupt said...

starting and stopping you can use the 'NET STOP' command.

Installing Services could possibly use the InstallService.exe

I've only used it for installing and uninstalling .NET services, but it may work for other apps as well.

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.