VMware Launcher

Purpose:

Automatically start and stop VMware's background services when you run VMware, so that they don't waste resources and slow your boot time when VMware is not in use.

VMware is a great tool but, sadly, it runs several services at Windows startup when those services are not needed while VMware is not in use and, depending on configuration, may not be needed at all. These extra services needlessly slow down your machine's boot and at least one of them is constantly polling the filesystem and/or registry (instead of waiting on a change notification event and going to sleep like better-written code would do). That constant activity means that Windows cannot page the process to disk.

(There is also the vmware-tray.exe process which constantly polls an ini file, even if you are not running VMware and have disabled its tray icon. Stopping that is easy and can be done using a tool like AutoRuns. Nothing at all depends on that stupid process so get rid of it if you don't use it.)

The script you can download below allows you to automatically start the required VMware service(s) when you launch VMware and stop the service(s) when you exit VMware. In other words, this script does what VMware itself should do and what people have been complaining about since at least 2007. :-)

Caveats:

  • The script is not multi-user friendly! The VMware services are shared by every user on the machine. If you have multiple accounts using VMware simultaneously on one machine then you will run into problems as the shared services are started and stopping by individual users as they launch and exit VMware. In such an environment you're better off leaving things as they are (unless you add machine-global reference counting to the script).

  • Setting up the script & permissions requires someone confident & competent at doing admin/permissions changes in Windows. If that isn't you then ask a knowledgeable friend for help!

View the script for details:

Open the script itself in a text editor to configure it and for detailed instructions on the stuff mentioned below.

Stop the services from auto-starting:

It's up to you to manually configure the four VMware services to "Manual" start (instead of "Automatic") so that they don't run at startup. You can do that using the Services control panel, under Administrator Tools in the Start Menu or Control Panel. (Where it is depends on your Start Menu configuration.)

Give yourself permission:

You may need to give your account permission to start and stop the VMware services. See the PERMISSIONS section of the script for instructions on how to do that.

(If you are using Windows Vista or Windows 7 with UAC enabled then you'll need to add those permissions even if you have access to the Services control panel. You need to be able to start and stop the VMware services without elevating to full admin rights. ...Well, you could run the script elevated but that would, in turn, run VMware elevated which would remove your ability to copy files into VMs using drag & drop.)

Configure the script:

Having configured the services not to auto-start, you should then follow the instructions in the PERMISSIONS section of the script. You may also need to look at the CONFIG section of the script, especially if you're using 32-bit Windows or if you require the VMware NAT or DHCP services.

Use the script:

After doing everything above you should, from then on, launch VMware using the script instead of directly. The script will start the required services and launch VMware; then it waits for VMware to finish and stops the same services.

Downloads:

SubInAcl works fine with Windows Vista and Windows 7 even though the page doesn't explicitly say so. I used it myself on Windows 7.

History:

v1.00 for VMware 6 (12/Aug/2009)

  • Initial release.
  • Tested on Windows 7 RTM x64 with VMware Workstation 6.5.2

v1.00 for VMware 7 (05/Feb/2010)

  • Initial release.
  • Tested on Windows 7 RTM x64 with VMware Workstation 7.0.0 (requires a new service; updated script is above)

See Also:

  • Erwin Ried's VMware Launcher. Erwin has taken the concept of my script and turned it into a C# application with user-friendly UI and configuration. You'll need to understand Spanish (or use a web translation service) to read his page, although the UI itself looks to be in English. I have not personally used it but it looks good.