Importieren der DNS-Zonen auf einen neuen Server anhand Powershell
Hallo Zusammen,
Ich brauche eure Hilfe. Ich muss einen DNS Server von Windows 2012 auf 2019 updaten. Dies ist ein Primärer DNS.
Da wir bei uns viele DNS-Zonen haben würde ich gerne alle exportieren und beim neuen wieder importieren, anhand Powershell.
Für den Export der Zonen habe ich folgender Skript geschrieben:
Dies funktioniert so auch reibungslos. Alle Zonen werden in System32/DNS Ordner exportiert. Nun habe ich bis jetzt nirgends herausgefunden wie man diese wieder beim neuen Server importieren kann, so dass auch alle selbst erstellten DNS Einträge (Hosteinträge) importiert werden.
Kann mir da jemand helfen?
Vielen Dank und liebe Grüsse
ITnerd02
Ich brauche eure Hilfe. Ich muss einen DNS Server von Windows 2012 auf 2019 updaten. Dies ist ein Primärer DNS.
Da wir bei uns viele DNS-Zonen haben würde ich gerne alle exportieren und beim neuen wieder importieren, anhand Powershell.
Für den Export der Zonen habe ich folgender Skript geschrieben:
$Zones = (Get-DnsServerZone | Where-Object IsReverseLookupZone -eq $False).ZoneName
$Date = "20220307"
foreach ($line in $Zones)
{
Export-DnsServerZone -Name $Line -FileName "$Date-${line}.dns"
}
Dies funktioniert so auch reibungslos. Alle Zonen werden in System32/DNS Ordner exportiert. Nun habe ich bis jetzt nirgends herausgefunden wie man diese wieder beim neuen Server importieren kann, so dass auch alle selbst erstellten DNS Einträge (Hosteinträge) importiert werden.
Kann mir da jemand helfen?
Vielen Dank und liebe Grüsse
ITnerd02
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2147945722
Url: https://administrator.de/contentid/2147945722
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar
Hi,
angenommen, deine DNS-Zone-Dateien haben Namen wie diese:
Dann erstelle ein PowerShell-Skript in dem Ordner, wo die ganzen DNS-Zone-Dateien liegen mit folgendem Inhalt:
Ich erkläre dir noch kurz, was es genau macht:
Das wars eigentlich. Bitte bei Problemen zurückmelden.
angenommen, deine DNS-Zone-Dateien haben Namen wie diese:
1293813-zone.com.dns
20220307-intern-test.firma.de.dns
Dann erstelle ein PowerShell-Skript in dem Ordner, wo die ganzen DNS-Zone-Dateien liegen mit folgendem Inhalt:
$DnsZonesFiles = Get-ChildItem $PSScriptRoot -Filter '*.dns'
foreach ($DnsZoneFile in $DnsZonesFiles) {
$DnsZoneName = $DnsZoneFile.Name -replace '\d+-(.*?)\.dns', '$1'
Write-Host "Processing $DnsZoneName"
Copy-Item -Path $DnsZoneFile -Destination "$env:SystemRoot\system32\dns" -Force
Start-Process -FilePath "$env:SystemRoot\system32\dnscmd.exe" -ArgumentList "/zoneadd $DnsZoneName /primary /file $DnsZoneFile /load"
}
Ich erkläre dir noch kurz, was es genau macht:
- Zeile 1: Alle Dateien aus dem Ordner suchen, wo das PowerShell-Skript liegt und welche die Dateiendung '.dns' haben.
- Zeile 3+8: Für jede DNS-Zone-Datei...
- Zeile 4: Man muss später, um die DNS-Zone wieder hinzuzufügen, den Namen der Zone wissen. Den nehmen wir hier vom Dateinamen, und weil du den ein wenig verunstaltet hast mit Zahlen, kommt noch ein bisschen Regex ins Spiel, damit wir am Ende den Namen der DNS-Zone haben.
- Zeile 5: Kurze Ausgabe
- Zeile 6: Die DNS-Zone-Datei wird ins Verzeichnis "C:\Windows\System32\dns" kopiert. Die muss da halt sein. (Quelle: https://serverfault.com/questions/642426/adding-a-zone-from-a-file-via-d ..)
- Zeile 7: Hier wird die DNS-Zone mit dem richtigen Namen und der richtigen Datei hinzugefügt. Du sagst, es gibt keine integrierten AD-Zonen (und ja zumindest auch keine exportierten Reverse-Lookup-Zonen), also kann man davon ausgehen, dass es alle primäre Zonen sind.
Das wars eigentlich. Bitte bei Problemen zurückmelden.