Hallo in die Runde,
leider gibt es das Problem, dass Windows Systeme bei der Migration zu Proxmox Ihre Netzwerksettings verlieren. Proxmox kann hier nichts für, da es sich um eine Eigenart von Windows handelt.
Wer den Gamechanger von Falk kennt, kann Windows VM's bereits sehr schnell und ohne viel Handarbeit zu Proxmox migrieren. Die Problematik mit den Netzwerksettings besteht hier aber noch immer.
Ich habe einen Weg gefunden, auch dieses zu vereinfachen. Die Idee ist die folgende:
Vorbereitung:
Während die VM noch auf dem alten Hypervisor läuft, installiert mit den Guest-Agent und die VirtIO Tools nach Falk seiner Anleitung. Anschließend exportiert man die Netzwerksettings (siehe Export Script unten).
Migration:
Anschließend migriert man die VM zu Proxmox, direkt mit SCSi Laufwerken und aktivierten Guest-Agent. Anschließend können über das import Script (siehe unten) die Settings wieder importiert werden. Das Script matched dabei die Macadressen, es ist also kein Problem, dass die Netzwerkadapter unter Proxmox anders heißen.
Die Steps der Vorbereitung sollten sich über Gruppenrichtlinien/EndpointManagement automatisieren lassen. Der Import der Netzwerksettings kann über den GuestAgent geschehen zB
Somit muss sich zu keinem Zeitpunkt im Windows eingeloggt werden.
In meinen Tests hat dieses sehr zuverlässig funktioniert, trotzdem bin ich auf euer Feedback gespannt, da ich dieses noch nicht in einem großen Setup testen konnte. Somit wie immer: Nutzung auf eigene Gefahr
Export Script:
Import Script:
leider gibt es das Problem, dass Windows Systeme bei der Migration zu Proxmox Ihre Netzwerksettings verlieren. Proxmox kann hier nichts für, da es sich um eine Eigenart von Windows handelt.
Wer den Gamechanger von Falk kennt, kann Windows VM's bereits sehr schnell und ohne viel Handarbeit zu Proxmox migrieren. Die Problematik mit den Netzwerksettings besteht hier aber noch immer.
Ich habe einen Weg gefunden, auch dieses zu vereinfachen. Die Idee ist die folgende:
Vorbereitung:
Während die VM noch auf dem alten Hypervisor läuft, installiert mit den Guest-Agent und die VirtIO Tools nach Falk seiner Anleitung. Anschließend exportiert man die Netzwerksettings (siehe Export Script unten).
Migration:
Anschließend migriert man die VM zu Proxmox, direkt mit SCSi Laufwerken und aktivierten Guest-Agent. Anschließend können über das import Script (siehe unten) die Settings wieder importiert werden. Das Script matched dabei die Macadressen, es ist also kein Problem, dass die Netzwerkadapter unter Proxmox anders heißen.
Die Steps der Vorbereitung sollten sich über Gruppenrichtlinien/EndpointManagement automatisieren lassen. Der Import der Netzwerksettings kann über den GuestAgent geschehen zB
Code:
qm guest exec 'vmID' -- powershell C:/net-import.ps1
Somit muss sich zu keinem Zeitpunkt im Windows eingeloggt werden.
In meinen Tests hat dieses sehr zuverlässig funktioniert, trotzdem bin ich auf euer Feedback gespannt, da ich dieses noch nicht in einem großen Setup testen konnte. Somit wie immer: Nutzung auf eigene Gefahr
Export Script:
Code:
<#
.SYNOPSIS
Exportiert alle Netzwerkadaptereinstellungen basierend auf der MAC-Adresse.
#>
$exportPath = "C:\Temp\network_config.json"
$networkConfigs = @()
# Nur Adapter mit gültiger IPv4-Adresse berücksichtigen
$adapters = Get-NetIPConfiguration | Where-Object { $_.IPv4Address -ne $null }
foreach ($adapter in $adapters) {
# Hole Adapterobjekt anhand des InterfaceIndex
$netAdapter = Get-NetAdapter | Where-Object { $_.InterfaceIndex -eq $adapter.InterfaceIndex }
if ($null -eq $netAdapter) {
Write-Warning "Kein passender Adapter für InterfaceIndex $($adapter.InterfaceIndex) gefunden."
continue
}
$mac = $netAdapter.MacAddress
$config = [PSCustomObject]@{
MACAddress = $mac
InterfaceAlias = $adapter.InterfaceAlias
IPv4Address = $adapter.IPv4Address.IPAddress
PrefixLength = $adapter.IPv4Address.PrefixLength
DefaultGateway = $adapter.IPv4DefaultGateway.NextHop
DNSServers = ($adapter.DnsServer.ServerAddresses -join ",")
}
$networkConfigs += $config
}
$networkConfigs | ConvertTo-Json -Depth 5 | Out-File -Encoding UTF8 $exportPath
Write-Host "Netzwerkkonfiguration exportiert nach $exportPath"
Import Script:
Code:
$importPath = "C:\Temp\network_config.json"
if (-Not (Test-Path $importPath)) {
Write-Error "Datei $importPath wurde nicht gefunden."
exit
}
$configs = Get-Content $importPath | ConvertFrom-Json
foreach ($config in $configs) {
$mac = $config.MACAddress
$adapter = Get-NetAdapter | Where-Object { $_.MacAddress -eq $mac }
if ($null -eq $adapter) {
Write-Warning "Kein Adapter mit MAC $mac gefunden – wird übersprungen."
continue
}
$alias = $adapter.Name
Write-Host "Wende Konfiguration auf $alias (MAC $mac) an..."
# Alte Einstellungen löschen (optional)
try {
Remove-NetIPAddress -InterfaceAlias $alias -Confirm:$false -ErrorAction SilentlyContinue
Remove-NetRoute -InterfaceAlias $alias -Confirm:$false -ErrorAction SilentlyContinue
} catch {}
# Neue IP setzen
New-NetIPAddress -InterfaceAlias $alias -IPAddress $config.IPv4Address -PrefixLength $config.PrefixLength -DefaultGateway $config.DefaultGateway
# DNS setzen
Set-DnsClientServerAddress -InterfaceAlias $alias -ServerAddresses ($config.DNSServers -split ",")
}
Write-Host "Import abgeschlossen."
Last edited: