Scripting starting a network under Virtual Server

I have had quite a number of people asking me how you script a start up order for virtual machines under Virtual Server 2005. A good example of this is to make sure your DC is online before your Exchange Server starts up. There are a few ways you can do this...

Ben Armstrong has provided a couple of solutions on his blog: https://blogs.msdn.com/virtual_pc_guy/archive/2005/09/29/473898.aspx

I have re-written this one to work with the scripts I have been posting recently...

In this solution we will us the heartbeat function to see when the machine is online:

'script starts

On Error Resume Next

'This script is designed to start up the first Virtual Machine (vmname1) and wait until we get a heartbeat (i.e. it is online) before starting the second machine.
'There are 3 parameters: vmName1, vmName2 and vmHost

' Get / Set arguments
vmName1=WScript.Arguments(0)
vmname2=WScript.Arguments(1)
'vsHost = WScript.Arguments(2)
vsHost = "localhost"

' Connect to Virtual Server
Set virtualServer = CreateObject("VirtualServer.Application",vsHost)

' Create virtual machine objects
Set vm1 = virtualServer.FindVirtualMachine(vmName1)
Set vm2 = virtualServer.FindVirtualMachine(vmName2)

'Start first virtual machine
vm1.startup

'Ignore errors 
On Error Resume Next

'Loop until vm1 returns a heartbeat
while not vm1.GuestOS.IsHeartbeating
 wscript.sleep 500
wend

'Listen to error messages again
On Error GoTo 0

'Start second virtual machine
vm2.startup

'Script ends