svcdep v.1.0

Kim Gräsman, 2003

Background

As far as I know, Windows does not have any user interface for modifying NT service dependencies.
In general, that's probably a good thing, since changes can affect OS stability in a not-so-pleasant way.

However, some products have a tendency to set up dependencies for system services toward their own services. If they are uninstalled, and the dependency is not removed, those system services cannot start.

I've previously solved this by going into the registry (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service-name>), and manually removing the entry from the DependOnService value. Unfortunately, this does not reflect in the SCM's cache until the machine is restarted.

svcdep provides a command-line interface for managing service dependencies on the fly, no re-boot necessary.

Usage

Running svcdep without arguments shows a brief usage description:

svcdep.exe [-add | -remove | -list] <target service> [<dependency service>]
 
-listList all dependencies for a service
-addAdd a dependency to a service
-removeRemove a dependency from a service
<target service>Short name of the target service
<dependency service>Short name of the dependency service

Examples:

svcdep serviceXLists all dependencies for the serviceX service
svcdep -list serviceXSame as above
svcdep -add serviceX serviceYMakes service X dependent upon service Y
svcdep -remove serviceX serviceYRemoves service X's dependency upon service Y

Service names are not case sensitive. If you attempt to add a dependency toward a service that does not exist, svcdep will throw an error.

Words of warning

Be very careful when modifying dependencies! Most services really need their dependencies to run properly, so svcdep is really only useful in the case of bad uninstallers or other problems. It is not likely to be necessary on a day-to-day basis.

Version history

Version 1.0

2003-04-28

First public release

Feedback

I'd really like to hear about any bugs or missing features.

Downloads

svcdep.zip (25k)