Subscribe to Windows IT Pro

 

Get Newsletters

  • Get the Latest News
  • Product Updates
  • Helpful Tricks
  • Productivity Tips

Subscribe Now!

May 27, 2004 12:00 AM

VMware—At Your Service!

Run VMware Workstation VMs as services
Windows IT Pro
InstantDoc ID #42607
Rating: (5)

If you're a VMware enthusiast, you've probably on more than one occasion wanted to log off from your computer while leaving your virtual machines (VMs) running. Or, maybe you've wanted selected VMs to start as soon as your system boots so that your host system can log on to a domain controller (DC) running inside one of the host machine's VMs. Sound too good to be true? That's what I thought. I assumed that logging off of my computer and having my VMs remain running was an unattainable dream. But I discovered that getting VMs to run as services is possible and very easy to configure.

Tools for Service
VMware doesn't natively support running its software as a service, but configuring VMware Workstation 4.0 VMs to run as services is almost as easy as tying your shoes. All you need to get started are two tried-and-true Windows resource kit tools: instsrv.exe and srvany.exe. Both tools are available as free downloads. Go to http://www.microsoft.com/downloads, enter Windows 2003 Resource Kit Tools in the Keywords field, and click Go. Then, click the Windows Server 2003 Resource Kit Tools Download button at the Windows Server 2003 Resource Kit Tools Web page to download rktools.exe—which contains the most recent versions of Instsrv and Srvany—and run the executable to install the tools on your system.

Note that you can install the Windows 2003 resource kit tools on a Windows 2003 or Windows XP system. If your host system runs Windows 2000 or Windows NT, you can acquire Instsrv and Srvany from the Win2K or NT resource kit CD-ROMs or you can install the Windows 2003 resource kit tools on an XP system and just copy Instsrv and Srvany from the XP system to the %windir% folder on your Win2K or NT host system. The Windows 2003 versions of Instsrv and Srvany run on the earlier OSs without any problems.

Getting Started
Installing the resource kit tools updates the system path to include the resource kit installation folder. Updating the path requires a reboot, so be sure to reboot your system after installing the resource kit. Alternatively, you can copy Instsrv and Srvany to a folder already in the path, such as the folder C:\windows\system32.

With the resource kit files in place, your next task is to determine the location of the VMware application's vmware.exe file. I used the default settings when installing VMware, so the path I needed was C:\program files\vmware\vmware workstation\vmware.exe.

The last bit of information that you need before you configure the new service is the path to the configuration file of the VM that you want to turn into a service. This file is in the folder in which the VM was created and has a .vmx extension. All my VMs are stored on my system's E drive, so the path to the .vmx file of the VM that I want to run as a service is E:\vms\w2k1\w2k1.vmx. When you have the vmware.exe path and a VM's .vmx path information, you're ready to create the service.

Creating the Service
First, decide on a name for the service. I prefer to preface the name of the VM with VM_ to form the service name. For example, I would give my VM named W2K1 the service name VM_W2K1. After you decide on the service name, you can use the following syntax to set up the service:

instsrv <VM service name>
  <Srvany path>

So a sample command might be

instsrv VM_W2K1
  c:\windows\srvany.exe

Now you need to modify the service's parameters by using a registry editor and the Microsoft Management Console (MMC) Windows Services snap-in. In the registry editor, navigate to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<VM service name> subkey. Right-click the VM service name, select New, then click Key. Name the new subkey Parameters.

Right-click the Parameters subkey, select New, then click String Value. Name the new value Application. Double-click the Application value and enter the path to the vmware.exe file on your host system (put the pathname in double quotation marks), followed by -x, followed by the path to the VM's .vmx file (put the pathname in double quotation marks). For my configuration, I used the string value "C:\program files\vmware\vmware workstation\vmware.exe" -x "e:\vms\w2k1\w2k1.vmx". Close the registry editor.

Open the Windows Services snap-in. Locate and right-click the newly created VM service and select Properties. In the service's Properties dialog box, click the Log On tab. Ensure that Local System account is selected, and select the Allow service to interact with desktop check box, which Figure 1 shows. Click OK to close the service Properties dialog box. You can now use the Windows Services snap-in to start your VM service. By default, the service is configured as automatic, so the VM will start when your system starts. Each VM that you configure to run as a service will appear in its own window on the desktop. Because the VM is running as a service, you'll now be able to log off of your system, and the VM will continue to run.

Tuning VMware
The configuration steps you've performed thus far will let any number of VMs run as services without problems. However, you might find that some built-in VMware features will get in the way. For example, when multiple VMs attempt to start and share the same floppy drive, VMware displays a message that the floppy drive will start as disconnected on all VMs except for the one that was powered on first. You must click OK to acknowledge the message before the VM boot processes will continue. To prevent the need for manual intervention at boot time, you might want to configure the settings of each VM on the host so that their floppy drives don't connect at power on.

To configure a VM's floppy drive to start as disconnected, open the VM in VMware, double-click the floppy drive icon, then clear the Connect at Power On check box and click OK in the floppy drive's Settings dialog box. One other method for preventing the floppy drive from connecting at power on is to open the VM's .vmx configuration file in Notepad and set the floppy0.startConnected parameter to "false".

VMware hints might also interrupt a VM's startup process. You can prevent all hints from appearing for any particular VM by opening and editing the VM's .vmx file in Notepad. To disable all hints, add the line

hints.hideAll = "true"

to the file, as Figure 2 shows.

Take It to the Max
Now your VMs can run in ways you've never imagined. For example, you can configure a VM to run as a DC that your host OS can log on to. When you've attained the "unattainable dream" of running VMware as a service, the possibilities are endless.

Resources
WEB SITES
VMware
http://vmware.com

Windows Server 2003 Resource Kit Tools
http://www.microsoft.com/downloads



Related Content:

ARTICLE TOOLS

Comments
  • ROBERT
    7 years ago
    Jan 24, 2005

    I could not get MS Virtual PC to work with the -singlepc -pc TerminalServerVM -launch
    but it does work with the -startvm switch. I suppose because this will install the vmc into the system account.

    "C:\\Program Files\\Microsoft Virtual PC\\virtual pc.exe" -startvm "q:\\vm\\TerminalServerVM.vmc"

  • WILLIAM
    8 years ago
    Sep 21, 2004

    I am new to this and using MS Virtual PC.
    Nothing I try seems to work. Also ... what should be in the "ServiceName"\\ImagePath\\ string ? is this the same as the Parameters\\Application\\string ? Thanks

  • BRYAN
    8 years ago
    Jul 14, 2004

    For those of you using Microsoft Virtual PC instead of VMWare, you can also do this by changing the Application Line to read "C:\\Program Files\\Microsoft Virtual PC\\virtual pc.exe -singlepc -pc DC2K3 -launch" WITHOUT the quotes. where DC2K3 is the name of the virtual PC.

  • BRYAN
    8 years ago
    Jul 14, 2004

    What exactly is the -x for that is listed in the command "c:\\program files\\vmware\\vmware workstation\\vmware.exe" -x "e:\\ms\\w2k1w2k1.vmx"

  • dulaw
    8 years ago
    Jul 14, 2004

    If you have more than one virtual machine, you can add them all into the command line in the registry. If one machine depends on another (such as an Exchange server depending on a DC), you could create two services with one dependant on another and maybe a timer to slow the second from starting until the first was totally up.

You must log on before posting a comment.

Are you a new visitor? Register Here

advertisement

advertisement

White Papers

Get your Windows 7 deployment off to the right start by implementing PC lockdown. A locked-down environment is easier and cheaper to support since users are less likely to make unnecessary changes to the core system configuration - read more here!

Essential Guides

Is your iSCSI "lossy"? The reality is that most off-the-shelf Ethernet hardware deployed for iSCSI can lose packets, resulting in slow performance or application downtime. Learn how to assess your current iSCSI infrastructure and engineer an advanced iSCSI SAN infrastructure.

Web Seminars

What's the best way to keep your network safe from malware? In this web seminar, security expert Greg Shields suggests an alternative method to the traditional blacklisting approach that is common with anti-virus and anti-malware solutions.

eLearning Series

We bring the experts direct to you to share their real-world perspective and expertise. During each event, three sessions stream in real time, so you can learn, ask questions, and get solutions.
Upcoming event: Getting the Most with Exchange 2010 with Paul Robichaux

Subscribe to Windows IT Pro!

Windows is a trademark of the Microsoft group of companies. Windows IT Pro is used by Penton Media Inc. under license from owner.