Sometimes Windows servers take forever to shutdown. I’ve known several people who’ve caused problems for themself by geting impatient and shutting off the server via the power button, rather than waiting for a graceful shutdown.
According to KB827610, the culprit is the WaitToKillServiceTimeout registry key, which by default waits up to 10 minutes to before notifying the user that a service is unresponsive, and asks the user to continue waiting or shutdown anyway. Apparently this only occurs if you installed or reinstalled Exchange 2003 directly from the SBS 2003 CD 2 instead of using the SBS 2003 Setup program.
To change this setting to a more tolerable two minutes, change
to 120000, which is the number of miliseconds to wait for a graceful shutdown.
You’ll need to reboot for the change to take effect.
KB555205 says this problem can be found on a Windows 2003 server that runs Exchange 2000 or 2003, especially if it runs on a domain controller. The default time to wait is 60000, which equals ten minutes.
The Windows 2000 Resource Kit states that the default WaitToKillServiceTimeout is 20000 (20 seconds). According to KB416092, the time to wait in NT 3.5, and NT 4.0, and ISA server is 20 seconds as well.
Interestingly enough, KB839262 mentions that the SBS 2003 setup problem occasionaly misinprets the WaitToKillServiceTimeout value as a REG_DWORD value rather than the REG_SZ value, which kills the process immediately, and shuts down the system too quickly. This can cause data loss if the services cannot shut down correctly.
Obviously the amount of time needed for a system to shutdown is dependent on the services it runs, so you may need to tweak these values a bit. Always make sure you have a good registry backup before changing any settings.