Here is a script for checking the version number of your VM integration components created by Microsoft software developer Stefan Wernli.


 # Test if the IC version is up to date

    [string]$vmName = $(throw "Must specify virtual machine name")

$vm = gwmi -namespace root\virtualization Msvm_ComputerSystem -filter "ElementName='$vmName'"

# Get the associated KVP Exchange component
$kvp = gwmi -namespace root\virtualization `
    -query "Associators of {$vm} where ResultClass=Msvm_KvpExchangeComponent"

# Pull the Guest Intrinsic Exchange Items from XML into a hash
$kvpHash = @{}
    $xmlContents = ([xml]("<xml>"+$kvp.GuestIntrinsicExchangeItems+"</xml>"))
    foreach($instance in $xmlContents.xml.INSTANCE)
        $name = $instance.PROPERTY | where {$_.NAME -eq "Name"}
        $data = $instance.PROPERTY | where {$_.NAME -eq "Data"}

# Save the guest's version
$icVersionGuest = $kvpHash.IntegrationServicesVersion

# Save the host's version
$icVersionHost = (ls 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\GuestInstaller').`

return -not ([version]$icVersionGuest -lt [version]$icVersionHost)

Not Detected

NOTE: If VMM displays ‘not detected’ then the VM additions are not current.

If VM’s are shutdown you can use the VMM GUI to install guest additions:


Community Resources