Delay Services in Windows 2000/XP/2003

How can I delay services when Windows starts?

In some computers, especially older systems and those with slower peripherals, it may be necessary to delay the loading of a specific Windows NT/W2K service for the computer to boot properly. Or you may want to ensure that one service has started and is available for use before another for troubleshooting purposes. This can impact such issues as a domain controller, which cannot access the network where a protocol, or a service such as DHCP, attempts to load BEFORE the network card has had a chance to be bound.
You will first need to verify that the dependency you want to create does not already exist. The following are some of the most common dependencies that already exist in a default configuration:

Service Depends on
Alerter LanmanWorkstation
Browser LanmanWorkstation, LanmanServer, LmHosts
ClipSrv NetDDE
DHCP Afd, NetBT, TCP/IP
Messenger LanmanWorkstation, NetBIOS
NetBT TCP/IP
NetDDE NetDDEDSDM
NetLogon LanmanWorkstation, LmHosts
Parallel Parport
Replicator LanmanServer, LanmanWorkstation

The Registry subkeys for services are located in the following path and can control how services are loaded.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

In Windows 2000 and Windows XP you can also use the Services Snap-in to view the service’s dependencies:
 
Right click a service and choose Properties.
 
Go to the Dependencies tab and see the related services.
Warning: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
To create a new dependency, select the subkey representing the service you want to delay, click Edit, and then click Add Value. Create a new value name “DependOnService” (without the quotation marks) with a data type of REG_MULTI_SZ, and then click OK. When the Data dialog box appears, type the name or names of the services that you prefer to start before this service with one entry for each line, and then click OK.


The name of the service you would enter in the Data dialog box is the exact name of the service as it appears in the registry under the Services key.
When the computer starts, it uses this entry to verify that the service or services listed in this value are started before attempting to start the dependent service.
For example, you may want to ensure that your Server service loads before the Windows Internet Name Service (WINS). If you select the WINS key in the registry, you will notice that the DependOnService value already exists in the WINS key. In a default installation, WINS is already dependent on both RPCSS (Remote Procedure Call) and NTLMSSP (Windows NT LanMan Security Support Provider) services. To add the Server service to this list, double-click the DependOnService value. In the Multi-String Editor, on the line below NTMLSSP, add the entry “LANMANSERVER” (without quotation marks), and then click OK.
In addition, Windows 2000 Active Directory needs to find and use the DNS Server service. The Netlogon service can be delayed to ensure that the DNS Server service is up and running for Dynamic DNS registration and query for existing Active Directory domain controllers that are in the DNS server database. Use the DependOnService in the Netlogon and add DNS to the list of LanmanWorkstation and LanmanServer. This delays Netlogon from starting until the DNS Server service on that same computer is started and ready.
Note: Only delay the Netlogon service for DNS on a Windows 2000 Server when the DNS service is on the same Windows 2000-based server.
Note: Entries in this field are NOT case-sensitive.
Warning: Adding this entry manually may prevent the system from starting properly if you establish a “circular dependency.” In its simplest form, such a problem would occur when you make two differing services dependent on one another. Neither service would be able to start as they would both require the other to be started first.
Note: If you have a service that needs to start late in the boot cycle but you do not have a specific service dependency, as explained above, then choose one of the services which startup last as the data value for the value “Depends on Service”. Services commonly selected are Spooler and Messenger.

Links

How to Delay Loading of Specific Services – 193888