Accueil > Hyper-V > Vérifier la version des Integration Services des VMs sous Hyper-V
Mar/113

Lors d’une mise à jour des serveurs Hyper-V, il faut mettre à jour les « Integration Services » dans toutes les VMs.

Vu sur le blog Virtualize the Enterprise de Peter Noorderijk, il a fait un script PowerShell pour récupérer la version des « Integration Services » des VMs sur un ensemble de serveurs Hyper-V.

Pour cela, il faut créer un fichier « servers.txt » et renseigner le nom d’un serveur Hyper-V par ligne.

Puis créer le fichier « CheckIS.ps1 » qui doit contenir le code PowerShell suivant:

1
2
3
4
5
6
7
8
9
10
11
function Get-IntegrationServicesVersion ($HVhost = $(throw “HVHost required”))
{
$kvps = Get-WmiObject -Namespace rootvirtualization -ComputerName $HVHost -QuerySelect GuestIntrinsicExchangeItems From Msvm_KvpExchangeComponent”
foreach ($kvp in $kvps)
    {
        $vmkvp = $Kvp.GuestIntrinsicExchangeItems
        $vmkvp | select-object @{Label=”VMHost”;Expression={$hvhost}},@{Label=”VMName”;Expression={([xml]$vmkvp[0]).instance.property[1].value}},@{Label=”ICVersion”;Expression={([xml]$vmkvp[14]).instance.property[1].value}} -first 1
    }
}
 
foreach ($hvhost in get-content servers.txt) {Get-IntegrationServicesVersion $hvhost}

Dans la fenêtre PowerShell, aller dans le répertoire contenant les 2 fichiers  et lancer la commande: .CheckIS.ps1

On récupère alors la liste des Hosts, des VMs et leur version d’Integration Services

PS: sur la capture d’écran, les Integration Services sont en version Hyper-V R2 (avant le SP1)

  1. RonanLG
    24/12/2012 à 02:06 | #1

    Bonjour,

    Merci pour le script, bien pratique!

    Sur un 2012 Server j’ai été obligé de changer le NameSpace de rootvirtualization à root\virtualization pour qu’il fonctionne.

    Ronan.

  1. Pas encore de trackbacks