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 http://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
' http://VBScript-Training.com
'=========================================================
'=========================================================
' Name: getadditions.vbs
' Author: Duane Thomas
' http://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---->