PowerShell – Export/Import des Zones DNS

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.


...BofBienTrès BienTop ! (Soit le premier à voter)
Loading...

Mathieu

Je suis actuellement ingénieur spécialisé dans le design d'environnements cloud virtualisés. Adepte des technologies de VMware, Nutanix, Citrix et Microsoft je propose à travers ce blog diverses astuces de troubleshooting.

S’abonner
Notification pour
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires