본문 바로가기

원도우

DNS 서버의 설정을 백업하는 PowerShell 스크립트

반응형

DNS 서버의 설정을 백업하는 PowerShell 스크립트

DNS 서버 설정을 Export-DnsServerZone 명령어를 사용하여 백업하고 지정된 디렉토리에 백업 파일을 저장합니다.

# PowerShell 스크립트 시작

# 백업 파일을 저장할 디렉토리 경로 설정
$backupDir = "C:\DNS_Backup"

# 현재 날짜 및 시간을 포함한 백업 파일 이름 생성
$timestamp = Get-Date -Format "yyyyMMddHHmmss"
$backupFileName = "DNS_Backup_$timestamp.dns"

# 백업 파일을 저장할 디렉토리가 없으면 생성
if (-not (Test-Path -Path $backupDir -PathType Container)) {
    New-Item -Path $backupDir -ItemType Directory -Force
}

# DNS 서버 설정을 백업 파일로 내보내기
Export-DnsServerZone -DirectoryPath $backupDir -Name "*" -FileName $backupFileName

# 스크립트 종료
Write-Host "DNS 서버 설정을 백업하였습니다. 백업 파일 경로: $backupDir\$backupFileName"

# PowerShell 스크립트 종료

위 스크립트에서 $backupDir 변수에는 백업 파일을 저장할 디렉토리 경로를 지정합니다. 디렉토리가 존재하지 않으면 자동으로 생성됩니다. 백업 파일 이름에는 현재 날짜와 시간이 포함되어 중복을 방지합니다.

스크립트를 저장하고 실행하면 DNS 서버 설정이 백업 파일로 저장됩니다. 백업 파일은 $backupDir 변수에 지정한 디렉토리에 저장됩니다. 설정을 복원해야 할 때 이 파일을 사용할 수 있습니다.

# 시간 변수 설정
SET _NOWDATE=%date:-=%%time:~3,2%%time:~9,11%

cd C:\WINDOWS\system32\dns

# 디렉토리 생성
mkdir C:\sangchul\dns1_%_NOWDATE%
mkdir C:\sangchul\dns1_%_NOWDATE%\REG

# 서비스 STOP
net stop "DNS Server"

copy *.dns C:\sangchul\dns1_%_NOWDATE%

### DNS 시스템 백업
REG EXPORT "HKLM\SYSTEM\CurrentControlSet\Services\DNS" "C:\sangchul\dns1_%_NOWDATE%\REG\dnssys.reg"

### DNS zones 백업
REG EXPORT "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones" "C:\sangchul\dns1_%_NOWDATE%\REG\dnszones.reg"

# 서비스 START
net start "DNS Server"

참고: 스크립트를 실행하기 위해 PowerShell을 관리자 권한으로 실행해야 합니다. 또한 스크립트를 주기적으로 실행하여 정기적인 백업을 수행할 수 있습니다.

 

728x90
반응형