Speed Up Windows Boot Times By Delaying Startup Of Services In XP And Vista

8

winlogo.jpgIn the never ending quest for speed, as in faster Windows computer start up times, many solutions exist for disabling programs that are set to auto start after logging on to your PC.

But that's only half of the solution.

During the boot up process, Windows also needs to start up a series of services. The more services that need to be started, the longer it will take for your PC to finally display the login screen (unless Windows is set to auto login).

One solution is to disable services that are not needed. Another, is to start up services that need to be running, after Windows has started, Here's how…

Solution 1 – Delay Service Start Up in Vista

Unlike previous versions of Windows, Vista now includes an option to delay the startup of services.

Services that are designated as delayed auto-start still start automatically when the system is started up. However, they are not started during the boot sequence. Instead, they are started shortly after the system has booted. This improves boot performance while still providing these services with an unattended start.

To set it for a particular service, open up the Services console by clicking on Start \ Administrative Tools \ Services (or by typing services into the start menu search box and clicking on Services in the search results).

autoservice1.png

NOTE: Now before you go and mess around with how Services start up, make sure you understand the purpose of each service. A good source to check is BlackVipers Windows Vista SP1 Service Configurations.

Once you have the Services console open, double click on a service that you want to delay starting, and in the properties window, click on the drop down arrow next to Startup type:.

autoservice2.png

Select Automatic (Delayed Start) and click OK.

Repeat for any addition services that you want delayed during Windows boot, making sure you're careful with the service selection. Stay away from any internal Windows functions or Networking related services. Stick with application service types (such as my example with VMWare).


Solution 2 – Delay Service Start Up in XP And Vista using Batch Files

Unlike Vista, XP has no built in functionality to delay service start up. Some utilities exist to accomplish this, but the best method I found is to use a batch file that will auto start services after you have logged on.

This method has the benefit of faster boot times, but will also speed up Windows logon time (when most auto start programs are started). Additionally, you can control when a service will start, unlike Vista's delayed auto start feature, which cannot be controlled as to exactly when the service will start.

Note: For Windows XP service definitions and default settings check out Windows Service Pack 2 Service Configurations.

In the batch file example below, the VMWare services on my computer will startup two minutes after I log on.

ECHO Starting Delayed Services After Wait Time Has Ended
@ping -n 120 127.0.0.1>nul
net start "VMware Authorization Service"
net start "VMware DHCP Service"
net start "VMware NAT Service"
net start "VMware Registration Service"
net start "VMware Virtual Mount Manager Extended"
exit

where:

  • @ping -n 120 127.0.0.1>nul = forces Windows to wait 120 seconds (-n 120) before proceeding to the next line in the batch file. (If you have the Windows 2003 Resource Kit installed ,you can also use the sleep.exe command).
  • net start "service name" = net start is the command that starts up the name of service in quotes.
  • exit = ends and closes the batch file.

To create your batch file:

1 - Right click on your Desktop and select New \ Text Document and name the file servicedelay.cmd

2 - Right click on servicedelay.cmd and select Edit to open the file, then copy and paste the batch file example (above).

3 - Identify the service or services. To do this, open up the Services console and double click on the service (you want delayed) to open it's property page.

  • Change the Startup type to Manual and click the Apply button.
  • Copy the service name (see arrow in below screen shot).

autoservice4.png

4 - Paste the service name in between the quotes of the first net start command.

5 - Repeat steps 3 and 4 for any additional services. If no other services will be started, delete the remaining lines that contain net start.

6 - Modify the sleep command to the time you want (in seconds)

7 - Copy servicedelay.cmd to your user profile startup folder.

  • In XP – C:\Documents and Settings\yourusername\Start Menu\Programs\Startup
  • In Vista -C:\Users\yourusername\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

NOTE: When the batch file runs, you will see the black command prompt window. If needed, you can minimize it (do not close it).

Your all finished! Next time you boot up and log on to your Computer, take notice of the difference in how fast your PC starts up.

Comments on Speed Up Windows Boot Times By Delaying Startup Of Services In XP And Vista Leave a Comment

August 15, 2008

Jan-Willem @ 10:20 am #

please think with me about the following which is in the same line as the articele.

instead of loading all kinds of exe's and services i want my computer to run a batch file during startup asking me what services and exe's to start at the end of the boot cyclus so i'm able to load just these services and exe's that i actually need.

the questioning and timing part in my batchfiel is solved is solved the challange i face now is to start all required exe's from 1 batch file.

for example when i'm offline i want fisrt my vodafone application to load and afterwards to load a secure client, further i want to be able to do or not start an application to mount a webbased drive and perform some other mapping on my actual needs and beings at that moment.

I found the ' start' command instead of the 'call' command but this causes that the services/ exe is opening a new windows and that is what not should happen. The service/exe should start, no opening of nwe windows and continue to the next option.

Here is my draft batch file so far. (some remarks in Dutch but the command are all in compu language of course)

@echo off
rem pause for X seconds
echo.
echo Dag Jan-Willem,
echo even wachten om de standaard services te laden
set X=10
call telaf.bat
rem pause

rem vodafone
:1000
echo wil je Vodafone Connect laden?
set choice=
set /p choice= j(a) of n(ee)?
echo.
rem if '%choice%'="goto 1000
echo '%choice%'
if '%choice%'=='j' goto 1100
if '%choice%'=='n' goto 2000
goto 9000
:1100
start "C:\Program Files\Vodafone\Vodafone Mobile Connect\VMConnect.exe"
rem end vodefone

rem XS4ALL webdrive
:2000
echo wil je de XS4ALL webdrive laden als W:\ ?
set choice=
set /p choice= j(a) of n(ee)?
echo.
if '%choice%'=='j' goto 2100
if '%choice%'=='n' goto 3000
:2100
start /b "C:\Program Files\XS4ALL-webdisk\wdfsctl.exe"
rem end XS4ALL webdrive

rem drive
:3000
echo wil je de NL root directory laden als I:\ ?
set choice=
set /p choice= j(a) of n(ee)?
echo.
if '%choice%'=='j' goto 3100
if '%choice%'=='n' goto 4000
:3100
start /b xyz.bat
rem end drive

rem SecureRemnote
:4000
echo wil je de SecureRemote client laden ?
set choice=
set /p choice= j(a) of n(ee)?
echo.
if '%choice%'=='j' goto 4100
if '%choice%'=='n' goto 5000
:4100
start /b "C:\Program Files\CheckPoint\SecuRemote\bin\SR_GUI.exe"
rem end SecureRemote

August 21, 2008

Adam @ 8:12 pm #

What do I do if I get a "Services – Access is denied" when I try to change the start-up type to manual?
This is what I am trying to do:-
1. Get ccleaner to delete the tvDebug.log file (part of Zonealarm)on start-up (this file just grows and grows).
2. It won't because the "TrueVector Internet Monitor" service (part of Zonealarm) is holding the file open.
3. Batch files won't work because I get the "access denied" error.

Any ideas?
Kind regards.

August 22, 2008

Jan-Willem @ 11:02 am #

3)
that's probably an right issue. You try this as user or as local admin?
try local admin

2)
I don't know Zonealarm, but once the service is started the file is locked. That makes sense. TRy to delay the boot of Zonealarm.

1)
Is there not a setting in Zonealarm that limits the file size. Normally you would expect such an option

I found this one: http://forum.zonealarm.com/zonelabs/board/message?board.id=gen&message.id=51575

August 25, 2008

Jan-Willem @ 6:35 am #

Hi, to whom it concerns:

I discoverd my own mistake in using the START command.

Due to long file names I encapsulated the desired command line in "".
Start takes this as a title for the windows screens that opens.
I should have used the 8.3DOS method and it would have worked right from the start.

So:
wrong context >start "C:\Program Files\Vodafone\Vodafone Mobile Connect\VMConnect.exe"
right context > start /I C:\Progra~1\Vodafone\Vodafo~1\VMConnect.exe

End result:
When my computer boots there is a small batchfile actived which asks me what extra programs and services should be start (also mapping and synchronisation is processed here).
This works nice and I have no unused services running that take memory and reflect on the performance.
I created the final batch in such a way that I also can run it on a already booted system and can start extra programs and services might I need them.

Good luck Jan-Willem

October 31, 2008

sir

we have a reguest the note a window xp and vista please transfer Doumentes my Email id manish@impl.in

June 7, 2009

Anoymous @ 10:15 pm #

Awsome tut. Speed my boot time to 10 secs. XD

August 29, 2009

Rick @ 3:15 am #

@Adam,

to delete a file that is being held open, you can often rename it. On reboot the renamed file will be accessible (and may be deleted).

February 5, 2010

michael @ 8:24 am #

Not sure this will actuall work in all cases. For example: I have 8 services marked as Manual but they are all running once Windows is finished launching. So, just setting something to Manual doesn't always mean it won't start on Windows boot.

Leave a Comment

Fields marked by an asterisk (*) are required.

Subscribe without commenting