itnerd02
Goto Top

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:

$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

Content-ID: 2147945722

Url: https://administrator.de/contentid/2147945722

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

runthegaunz
Lösung runthegaunz 13.03.2022 aktualisiert um 21:39:42 Uhr
Goto Top
Hi,

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.
ITnerd02
ITnerd02 19.03.2022 um 15:06:22 Uhr
Goto Top
Hallo Runthegaunz

Ich danke dir vielmals, es hat so geklappt. face-smile

Liebe Grüsse
ITnerd02