VMware Workstation Update löscht virtuelle Netzwerke

Moin zusammen,

uns ist aufgefallen, dass nach einem Update von VMware Workstation die selbst erstellten virtuellen Netzwerke nicht mehr da sind.
Auf unseren Wunsch hat neo42 ein Backup in die Deploy-Application.ps1 eingbaut. Vielen Dank dafür.
Da sich neo42 gegen eine automatische Wiederherstellung entschieden hat, haben wir selbst ein paar Anpassungen an der ps1 vorgenommen.

Dass nicht jeder das Rad neu erfinden muss, hier unsere Anpassungen:

#region CustomInstallAndReinstallAndSoftMigrationEnd content

## restore network settings from latest backup
$vnetlibPath = "$($global:packageconfig.InstallLocation)\vnetlib.exe"
$backupFolder = Split-Path -Path $global:AppLogFolder -Parent
$tempFolder = "C:\Temp"

Write-Log -Message "$backupFolder set as source for network import." -Source $deployAppScriptFriendlyName

if ($true -eq (Test-Path -Path $vnetlibPath)) {
	Write-Log -Message "$vnetlibPath is available." -Source $deployAppScriptFriendlyName
	
	if (-not (Test-Path -Path $tempFolder)) {
		New-Item -Path $tempFolder -ItemType Directory -Force | Out-Null
		Write-Log -Message "Created temp folder $tempFolder." -Source $deployAppScriptFriendlyName
	}
	
	$backupFiles = Get-ChildItem -Path $backupFolder -Filter "VMWareVirtualNetworkSettings_*" -File -Recurse | Sort-Object LastWriteTime -Descending
	Write-Log -Message "Found $($backupFiles.Count) backups in '$backupFolder' + subfolders." -Source $deployAppScriptFriendlyName
	
	if ($backupFiles.Count -gt 0) {
		$sourceFile = $backupFiles[0].FullName
		$tempFile = Join-Path -Path $tempFolder -ChildPath $backupFiles[0].Name
		
		Copy-Item -Path $sourceFile -Destination $tempFile -Force
		Write-Log -Message "Copied to temp: $tempFile" -Source $deployAppScriptFriendlyName
		
		Execute-Process -Path $vnetlibPath -Parameters "-- import $tempFile" -IgnoreExitCodes '1' -ExitOnProcessFailure $false
		Start-Sleep -Seconds 5
		
		Remove-Item -Path $tempFile -Force -ErrorAction SilentlyContinue
		Write-Log -Message "Deleted temp file $tempFile." -Source $deployAppScriptFriendlyName
	}
	else {
		Write-Log -Message "No backup file available." -Source $deployAppScriptFriendlyName
	}
}
else {
	Write-Log -Message "VMware Virtual Network Editor not available." -Source $deployAppScriptFriendlyName
}

#endregion CustomInstallAndReinstallAndSoftMigrationEnd content

Wir durchsuchen den gesamten VMware Log-Ordner nach der neuesten Backupdatei und lesen diese dann ein. Der Umweg über den Temp-Ordner ist leider nötig, da die vnetlib exe keine „“ verarbeiten kann und somit ein Pfad ohne Leerzeichen gebraucht wird. Warum auch immer…

Die Anpassung ist für die Version 26.0.0. Für die Versionen darunter muss die vnetlib64.exe aufgerufen werden.

Für den Fall einer Reparatur (Deinstallation + Installation) haben wir das Backup bei CustomUninstallBegin nochmal eingefügt:

#region CustomUninstallBegin content

## export network settings for backup purpose
if ($true -eq (Test-Path -Path "$($global:packageconfig.InstallLocation)\vnetlib.exe")) {
	Execute-Process -Path "$($global:packageconfig.InstallLocation)\vnetlib.exe" -Parameters "-- export $($global:AppLogFolder)\VMWareVirtualNetworkSettings_$DeploymentTimestamp.txt" -IgnoreExitCodes '1' -ExitOnProcessFailure $false
}		

#endregion CustomUninstallBegin content

Auch hier wieder die vnetlib64.exe aufrufen, für Versionen <26.0.0.

Hoffe es hilft. Falls jemand einen besseren Weg kennt, gerne kommentieren.

Gruß
Benjamin

Hi Benjamin,

wir haben exakt das gleiche Problem, sprich vom Standard abweichende virtuelle Netzwerk-Settings.

Unsere Steuerungstechniker haben unterschiedliche virtuelle Netze definiert um die Schnittstellen gezielt/sauber den VMs zuweisen zu können, damit die Pakete auch sicher da ankommen, wo sie hin sollen. Unsere Steuerungstechniker haben lokal allerdings keine Admin-Rechte und um die virtuellen Netzwerk-Settings zu bearbeiten (die VMware Sicherheitsgruppe hat bei uns nicht ausgereicht, falls jemand hierfür eine Lösung hat… :innocent: ) von daher schlägt das immer bei unserem Helpdesk auf. Ich komme aktuell zeitlich auch nicht dazu mich damit genauer zu beschäftigen.

Als wir früher VMware Workstation manuell installiert bzw. upgedatet haben, hatten wir diese Probleme nicht. Daher gehe ich davon aus, dass die Settings beim Reinstall (Deinstallation) entfernt werden und bei der anschließenden Installation eben wieder Standard-Settings aktiv sind.

Im Endeffekt müsste man (nach meinem aktuellen Wissensstand) bei diesem Produkt den Reinstall-Modus „Reinstall“ = Uninstall + Install überdenken, oder?

Alternativ wäre in der Setup.cfg ein Schalter à la „Recover network Settings“ sinnvoll, so könnten wir Kunden selbst entscheiden, ob wir das Backup automatisch wieder zurückgespielt bekommen wollen oder nicht.

Ich hoffe, das kann „offiziell“ sauber gelöst werden, bis dahin werde ich beim nächsten Update deinen PowerShell-Code einbauen - Vielen Dank fürs Teilen!

Beste Grüße
Lucas

Freut mich, dass es euch hilft.

Aber eigentlich ist das schon so, dass das Update direkt durchgeführt wird, ohne Deinstallation.
Zumindest, wenn man der Zeile 36 in der neo42PackageConfig.json glauben darf: „UninstallOld“: false,
Ich würds einfach mal kollektiv auf Broadcom schieben. Unter EMC und Dell war der Support auch noch besser.

Die Idee mit dem Schalter in der Setup.cfg würde ich auch unterstützen. Vielleicht lässt sich neo42 ja dazu überreden :wink:

Mein Fehler, meine Aussage trifft ja nur für die REINSTALLATION zu und da will man vielleicht Fehler beseitigen und dass es „resettet“ wird.

Dann bleibt die Frage, wieso es überhaupt ein Problem ist. Ich müsste mal wirklich von Hand einfach drüber-installieren und schauen, ob da tatsächlich auch die Netzwerk-Settings zurückgesetzt werden. Wie gesagt ist meine Praxiserfahrung schon etwas her, aber kann mich nicht erinnern, dass wir bei jedem Update manuell nochmal an die Settings ran mussten.