cat-scvmm

Welche Version der Hyper-V Integration Services ist installiert?

VIRTUAL MACHINE MANAGER

Eigentlich eine einfache Frage, doch bei vielen Virtual Machines kann die Antwort unter Umstände doch noch einige “Schwierigkeiten” bereiten. Dass es entscheidend ist aktuelle Treiber, oder eben Integration Services einzusetzen sollte jedem einleuchten. Gerade seit der Einführung von Dynamic Memory in Windows Server 2008 R2 Service Pack1 ist die Version der Integration Services entscheidend.

Doch mit System Center Virtual Machine Manager kann die Version sehr schnell ausgelesen werden. Dazu muss lediglich die Spalte “VM Additions” in der VMM Admin Console eingeblendet werden:

Doch noch einfacher und vor allem weiterverwendbar geht dies mittels PowerShell:

$SCVMMServer = Read-Host "Please enter VMM Server name"
Get-SCVirtualMachine -VMMServer $SCVMMServer -All | ft Name, OperatingSystem, VMAddition -AutoSize

Mit einer kleinen Erweiterung lässt sich auch eine Liste erstellen, welche nur Virtual Machines anzeigt welche von der vorgegebenen IS Version abweicht:

$SCVMMServer = Read-Host "Please enter VMM Server name"
Get-SCVirtualMachine -VMMServer $SCVMMServer -All | Where-Object {$_.VMAddition -ne "6.1.7601.17514"} | ft Name, OperatingSystem, VMAddition -AutoSize

Für diejenige welche keine Softwareverteilung (z.B. SCCM) haben um Treiber und Integration Services zu aktualisieren, könnten dies auch mittels eines simplen PowerShell Script vornehmen. Dabei wir die Version der Integration Services sämtlicher Virtual Machines geprüft und bei Bedarf ein Upgrade durchgeführt. Da die VM für diesen Vorgang PoweredOff sein muss, würden VMs welche noch im Betrieb wären für den Upgrade “kurz” heruntergefahren.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$SCVMMServer = Read-Host "Please enter VMM Server name"
$ISVersion = "6.1.7601.17514"
 
# Check if VMM PowerShell are loaded
if (-Not (Get-Module "virtualmachinemanager" -ErrorAction SilentlyContinue)) {
  Write-Host "Loading Virtual Machine Manager PowerShell Modules, please wait..." -f Green
  Import-Module "C:\Program Files\Microsoft System Center 2012\Virtual Machine Manager\bin\psModules\virtualmachinemanager\virtualmachinemanager.psd1";
}
 
$VMs = Get-SCVirtualMachine -VMMServer $SCVMMServer
ForEach ($VM in $VMs) {
  if ($VM.Status -eq "PowerOff" -and $VM.VMAddition -ne $ISVersion) {
  Write-Host "Upgrading $VM, please wait..." -f Green
  Set-SCVirtualMachine $VM -InstallVirtualizationGuestServices $True
  } elseif ($VM.VMAddition -ne $ISVersion) {
  Write-Host "Shutdown $VM..." -f Green
  Stop-SCVirtualMachine $VM
  Write-Host "Upgrading $VM, please wait..." -f Green
  Set-SCVirtualMachine $VM -InstallVirtualizationGuestServices
  Write-Host "Starting $VM..." -f Green
  Start-SCVirtualMachine $VM
  }
}

Wichtig, dieses Script eignet sich in dieser Version nicht für Production-Use da Virtual Machines ohne Prüfung heruntergefahren werden.

SCVMM

, , , , ,

About the Author

Michel Luescher is a solution architect in the worldwide Datacenter & Cloud Infrastructure Center of Excellence (CoE) at Microsoft Corporation based out of Zurich, Switzerland. Primarily, Michel is focused on hybrid cloud solutions (Hyper-V, System Center and Microsoft Azure). In addition Michel is speaker, blogger and author of several books.

Leave a Reply.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Error “The system cannot find the file specified” wenn in VMM ein Cluster ... Veeam Weihnachtsgeschenk, Backup & Replication v6 NFR Lizenz