John Howard - Senior Program Manager in the Hyper-V team at Microsoft

Senior Program Manager, Hyper-V team, Windows Core Operating System Division.

Blogs

Switching Virtual Machines Full screen and back quickly

  • Comments 1
  • Likes

So I can't admit to having written this, but I thought it was worth sharing. It's also a good example of how to use WMI to find out if a process is running, start new processes up and kill of running processes from VBScript.

Save the below as a .VBS file somewhere on your local machine. Then create a shortcut to it on your desktop and setup a keyboard quick-key access to the shortcut through the properties of the shortcut.

Assuming the virtual machine is running, you can do (assuming Z is the keystroke) type Ctrl+Alt+Z to switch between your desktop and a virtual machine. Of course, change the virtual machine name and DNS name accordingly (highlighted in yellow).

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & _
 strComputer & "\root\cimv2")
set sh = CreateObject("wscript.shell")
strCmdLine = "C:\Program Files\Microsoft Virtual Server\VMRC Client\vmrc.exe"
strArgs =  "-fullscreen " & chr(34) & _
     "vmrc://localhost:5900/Contoso Client" & chr(34)
 

'//Determine if VMRC is running?
Set colProcesses = objWMIService.ExecQuery ("SELECT * FROM Win32_Process WHERE Name = " & "'VMRC.exe'")

 
'//If the VMRC Process is running - Launch it, otherwise terminate it.
If colProcesses.Count = 0 Then
    sh.Run chr(34) & strCmdLine & chr(34) & " "  & strArgs,,False
Else
    Set colProcessList = objWMIService.ExecQuery _
      ("Select * from Win32_Process Where Name = 'VMRC.EXE'")
        For Each objProcess in colProcessList
             objProcess.Terminate()
        Next
End If

Comments
  • Good script. Please consider posting it to http://www.microsoft.com/technet/scriptcenter/csc/default.mspx

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment