Virtual PC and Virtual Server verison numbers as well as additions

Have you ever tried to figure out if you had the latest VM additions installed on all your Virtual Guests?

This week I was at a customer site reviewing a Virtual Server 2005 R2 Deployment. At the customer site they had a mix of VM additions installed across the estate and no easy way of determining what the correct version numbers were. The first thing I needed was a list of VM addition numbers. This was provide to me by Brian Randell https://mcwtech.com/CS/blogs/brianr/archive/2008/10/10/virtual-pc-and-virtual-server-verison-numbers-as-well-as-additions.aspx

Virtual PC and Virtual Server verison numbers as well as additions.

Someone asked today so I thought I'd share it here too.

Virtual PC 2004 5.3.0.582 13.040
Virtual Server 2005 1.1.465.0 13.206
Virtual PC 2004 SP1 5.3.582.27 13.306
Virtual PC 2004 SP1 5.3.582.32 13.306
Virtual Server 2005 SP1 Beta 13.518
Additions Download Only Windows Server 2003 SP1 Support 13.531
Virtual Server 2005 R2 1.1.465.292 EE R2 13.552
Additions Download Only Vista Beta 2 Support 13.709
Virtual Server 2005 R2 SP1 1.1.531.0 EE R2 SP1 13.715
Virtual PC 2007 6.0.122.0 13.724
Virtual PC 2007 6.0.137.0 13.800
Virtual Server 2005 R2 SP1 1.1.603.0 EE R2 SP1 13.813
Virtual Server 2005 R2 SP1 Update 1.1.653.0 EE R2 SP1 13.820
Virtual PC 2007 SP1 6.0.192.0 13.820

Next thing I needed to do was create a vbs script to query the virual server and output to an HTML table. I have posted the script here. I have tested this on Windows 2003 and Virtual Server 2005 R2 Sp1. This code work on all Virtual Server versions. I have not tested on Hyper-V yet. My plan is to write a PowerShell script for Hyper-v. Enjoy!

<---Code Snipit---->

'=========================================================
' Example Html table code from Name: WriteHTMLBrowser.vbs
' Author: Neal Walters
' https://VBScript-Training.com
'=========================================================

'=========================================================
' Name: getadditions.vbs
' Author: Duane Thomas
' https://blogs.technet.com/virtualworld
'
'This code is provided as is. No support is provided. Use at your own risk.
'
' Thanks Neal Walters for the html table code example.
'=========================================================

On Error Resume Next

dim myfilename, fso, oshell, forReading, forWriting
dim path, program, fullProgName, myTextStream, ynCreate
dim obj
Set objVS = CreateObject("VirtualServer.Application")
set colVMs = objVS.VirtualMachines

Set objGuestOS = objVM.GuestOS
set fso = CreateObject("Scripting.FileSystemObject")
set oshell = CreateObject("Wscript.Shell")

myfilename = "c:\vmaddition.html"

forReading = 1: forWriting = 2: ynCreate = 1
set myTextStream = fso.OpenTextFile(myfilename,forWriting,ynCreate)

myTextStream.Write "<h1>Virtual Machine Additions</H1>"
myTextStream.Write "<table border=1 cellspacing=2 cellpadding=3>" & vbcrlf

myTextStream.Write "<tr>" & vbcrlf

myTextStream.Write "<th>Name</td>" & vbcrlf
myTextStream.Write "<th>Guest OS</td>" & vbcrlf
myTextStream.Write "<th>VM Addition Version</td>" & vbcrlf

myTextStream.Write "</tr>" & vbcrlf

For Each objVM in colVMS

myTextStream.Write "<tr>" & vbcrlf

myTextStream.Write "<td>" & objVM.Name & "</td>" & vbcrlf
myTextStream.Write "<td>" & objvm.GuestOS.OSName & "</td>" & vbcrlf
myTextStream.Write "<td>" & objvm.GuestOS.AdditionsVersion & "</td>" & vbcrlf

myTextStream.Write "</tr>" & vbcrlf

next

myTextStream.Write "</table>" & vbcrlf

myTextStream.Close

'path = "C:\Program Files\Internet Explorer"
program = "IEXPLORE"
'FullProgname = path & "\" & program
'WScript.Echo FullProgname
'OShell.Run (program)
OShell.Run (program & " " & myfilename)

<---Code Snipit---->