Zum Inhalt

Aktualisierung der VMware Tools

VMware by Broadcom stellt in regelmäßigen Abständen aktualisierte Versionen der VMware Tools bereit. Diese Updates enthalten in der Regel sicherheitsrelevante Korrekturen (z. B. im Rahmen eines VMSA-Sicherheitsbulletins) sowie Fehlerbehebungen zur Verbesserung der Stabilität. Ein aktueller Versionsstand der VMware Tools ist eine der zentralen Voraussetzungen für einen sicheren und stabilen Betrieb der virtuellen Maschinen.

Eine Übersicht der aktuell verfügbaren VMware Tools-Versionen ist hier verfügbar.

Manuelle Installation über das Hosting Portal

Über unser Hosting-Portal besteht die Möglichkeit, die VMware Tools manuell zu aktualisieren, indem der entsprechende Installer mit der virtuellen Maschine verbunden wird. Die Verbindung des Installationsmediums kann über das Aktionsmenü der jeweiligen VM initiiert werden.

VM -> Action Menü (drei Punkte) -> VMware Tools installieren -> Mount

Nach erfolgreicher Verbindung des Installers mit der virtuellen Maschine kann der Updateprozess über das eingebundene CD/DVD-Laufwerk im Dateisystem (z. B. im Windows-Explorer) manuell gestartet werden. Wenn die bestehende Installationskonfiguration beibehalten werden soll, ist im Installationsassistenten die Option „Benutzerdefinierte Installation“ auszuwählen, da nur so das Update ohne Änderungen an den bisherigen Einstellungen möglich ist.

alt text

Automatische Aktualisierung mittels des GuestStores

Seit der VMware Tools Version 11.2.5 besteht die Möglichkeit, Gastbetriebsystem gesteuert, die VMware Tools unter Windows beim Reboot automatisiert zu aktualisieren.
Voraussetzung hierfür ist die Aktivierung des entsprechenden Features über die Konfigurationsdatei "tools.conf", die sich standardmäßig unter dem folgenden Pfad befindet:

C:\ProgramData\VMware\VMware Tools\tools.conf

Sollte die Konfigurationsdatei nicht vorhanden sein, kann diese durch das kopieren der Datei "tools.conf.example", im gleichen Pfad, erstellt werden.

  1. Öffne die Datei "tools.conf" als Administrator mit einem geeigneten Texteditor (z.B. Editor oder Notepad++)
  2. Suche in der Datei nach der Sektion [gueststoreupgrade]
  3. Innerhalb der Sektion befindet sich die Option "policy="
  4. Entferne ggf. das Kommentarzeichen (#) am Zeilenanfang und setze den Wert wie folgt: "policy=powercycle"
# The guestStoreUpgrade plugin is only available for Windows.

# The policy value is one of the settings listed below.
# off         = no VMware Tools upgrade from GuestStore. Feature is
#               deactivated.
# manual      = (Default) VMware Tools upgrade from GuestStore is
#               manually started.
# powercycle  = VMware Tools upgrade from GuestStore on system
#               power on.

policy=powercycle

Nach dem Speichern der Datei werden die Änderungen sofort wirksam. Die Aktualisierung der VMware Tools erfolgt beim nächsten Neustart des Gastbetriebssystems automatisch, sofern ein neues Installationspaket verfügbar ist.

Hinweis: In Einzelfällen kann die Aktualisierung erst nach einem zweiten Reboot durchgeführt werden, da bestimmte Installationsvoraussetzungen zunächst einen eigenen Neustart erfordern.

Anpassung der "tools.conf" per PowerShell

Das folgende PowerShell-Skript zeigt beispielhaft, wie die "tools.conf" automatisiert bearbeitet werden kann. Für die Ausführung sind administrative Berechtigungen erforderlich.

PowerShell Script zum automatisierten ändern der 'tools.conf'
function Get-ConfigFileLine {
    param(
        [string]$configFilePath = "C:\ProgramData\VMware\VMware Tools\tools.conf",
        [switch]$returnConfigValue
    )

    $guestStoreUpdatePattern = '^(#?policy=(off|manual|powercycle))'
    $inSection = $false

    Get-Content $configFilePath | ForEach-Object -Begin { $i = 1 } -Process {
        if ($_ -match '^\[gueststoreupgrade\]') { $inSection = $true; return }
        if ($inSection -and $_ -match '^\[.*\]') { $inSection = $false; return }
        if ($inSection -and $_ -match $guestStoreUpdatePattern) {            
            if ($returnConfigValue) {
                return $Matches[1]
            }
            else {
                return $i
            }
        }
        $i++
    }
}
#Relevant content of file "\[gueststoreupgrade\](?:.*\n)*(?<gueststoreUpgradePolicy>#?policy=(?:off|manual|powercycle))"
$vmwareToolsConfPath = "C:\ProgramData\VMware\VMware Tools\tools.conf"
$vmwareToolsConfTemplatePath = "C:\ProgramData\VMware\VMware Tools\tools.conf.example"

if (Test-Path -Path $vmwareToolsConfPath -PathType Leaf) {
    $configLine = Get-ConfigFileLine -configFilePath $vmwareToolsConfPath
    $currentConfigString = Get-ConfigFileLine -returnConfigValue

    if ($ConfigLine) {
        $vmwareToolsConf = Get-Content $vmwareToolsConfPath
        $vmwareToolsConf[$ConfigLine] = $vmwareToolsConf[$ConfigLine] -replace $currentConfigString, "policy=powercycle" 
        Set-Content $vmwareToolsConfPath $vmwareToolsConf
    }
    else {
        Write-Host "Configuration option not found!"
    }
}
else {
    if (Test-Path -Path $vmwareToolsConfTemplatePath -PathType Leaf) {
        Copy-Item -Path $vmwareToolsConfTemplatePath -Destination $vmwareToolsConfPath

        if (Test-Path -Path $vmwareToolsConfPath -PathType Leaf) {
            $configLine = Get-ConfigFileLine
            $currentConfigString = Get-ConfigFileLine -returnConfigValue

            if ($ConfigLine) {
                $vmwareToolsConf = Get-Content $vmwareToolsConfPath
                $vmwareToolsConf[$ConfigLine] = $vmwareToolsConf[$ConfigLine] -replace $currentConfigString, "policy=powercycle" 
                Set-Content $vmwareToolsConfPath $vmwareToolsConf
            }
            else {
                Write-Host "Configuration option not found!"
            }
        }
        else {
            Write-Host "Configuration copy failed! Check source file and permissions"
        }
    }
}