Introduction
L’exportation et l’importation des zones DNS peuvent être essentielles pour la sauvegarde, la migration ou la restauration des configurations DNS sur un serveur Windows. Ce guide PowerShell vous montre comment effectuer ces deux opérations de manière simple et rapide.
Prérequis
- Droit administratif sur le serveur DNS.
- Le module DNS Server doit être installé.
Étapes
1. Ouvrir PowerShell en mode administrateur
- Clic droit sur le menu Démarrer > Windows PowerShell (Admin).
2. Exporter une zone DNS spécifique
Pour exporter une zone DNS vers un fichier, utilisez la commande suivante :
# Retrieve all DNS zones $zones = Get-DNSServerZone # Loop through each zone and export it foreach ($zone in $zones) { $zoneName = $zone.ZoneName $sourceFileName = "C:\Windows\System32\dns\$zoneName.bak" $destinationFileName = "C:\Temp\DNS\$zoneName.bak" # Export the DNS zone to a backup file Export-DNSServerZone -Name $zoneName -FileName "$zoneName.bak" Write-Host Write-Host "Backup of the zone '$zoneName' completed to '$sourceFileName'" -ForegroundColor Green # Check if the file was created before copying if (Test-Path $sourceFileName) { # Check if the destination file already exists if (Test-Path $destinationFileName) { Write-Host "The backup zone '$zoneName' already exists. Deleting the existing file." -ForegroundColor Yellow Remove-Item $destinationFileName -Force } # Move the backup file to C:\Temp Move-Item -Path $sourceFileName -Destination $destinationFileName Write-Host "Zone '$zoneName' copied to '$destinationFileName'" -ForegroundColor Cyan Write-Host } else { Write-Host "The backup file for the zone '$zoneName' was not found." -ForegroundColor Red Write-Host } }
3. Importer une zone DNS
Pour importer une zone DNS à partir d’un fichier de sauvegarde, utilisez ce script :
# Specify the backup file path $zoneName = "example.com" $backupFile = "C:\Temp\DNS\$zoneName.bak" # Check if the backup file exists before importing if (Test-Path $backupFile) { Import-DnsServerZone -FileName $backupFile -Name $zoneName Write-Host "Zone '$zoneName' successfully imported from '$backupFile'" -ForegroundColor Green } else { Write-Host "Backup file for '$zoneName' does not exist." -ForegroundColor Red }
4. Importer toutes les zones DNS depuis un répertoire
Si vous avez plusieurs fichiers de sauvegarde et souhaitez importer toutes les zones DNS, utilisez ce script :
# Import all DNS zones from a directory Get-ChildItem "C:\Temp\DNS" -Filter "*.bak" | ForEach-Object { $zoneName = $_.BaseName $backupFile = $_.FullName if (Test-Path $backupFile) { Import-DnsServerZone -FileName $backupFile -Name $zoneName Write-Host "Zone '$zoneName' successfully imported from '$backupFile'" -ForegroundColor Green } else { Write-Host "Backup file for '$zoneName' does not exist." -ForegroundColor Red } }
Conclusion
Ce script PowerShell vous permet d’exporter facilement les zones DNS, de les sauvegarder dans un répertoire spécifique, et de gérer les fichiers de sauvegarde. Vous pouvez aussi importer ces zones DNS quand nécessaire. Ce processus garantit la sécurité et la flexibilité de vos configurations DNS.