Here is a script for checking the version number of the 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 use the VMM GUI to install guest additions:


Community Resources