Kim Gräsman, 2003
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.
Running svcdep without arguments shows a brief usage description:
| svcdep.exe [-add | -remove | -list] <target service> [<dependency service>] | |
| -list | List all dependencies for a service |
| -add | Add a dependency to a service |
| -remove | Remove a dependency from a service |
| <target service> | Short name of the target service |
| <dependency service> | Short name of the dependency service |
Examples:
| svcdep serviceX | Lists all dependencies for the serviceX service |
| svcdep -list serviceX | Same as above |
| svcdep -add serviceX serviceY | Makes service X dependent upon service Y |
| svcdep -remove serviceX serviceY | Removes 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.
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.
2003-04-28
First public release
I'd really like to hear about any bugs or missing features.
svcdep.zip (25k)