导出DNS服务器上的记录
近日遇到一个需求,需要将DNS服务器上的所有记录都导出。
试了一下,如果从DNS管理单元里直接选择导出列表,那么子域的DNS记录是不会被导出的。这样显然不行,需要寻找其它方法。本来想用Export-DnsServerZone,但是发现它只能导出本机上的DNS记录。因为平时的管理都只是在管理机上,轻易不会去登录DNS服务器的,所以最好能找到其它的命令。经过搜索,找到后面这些命令。
https://www.cnblogs.com/qishine/p/12375825.html
这些命令导出的文件会包含条件转发器的区域,但是条件转发器区域对应的文件是空的。
从DNS服务器
$Zones = @(Get-DnsServerZone)
ForEach ($Zone in $Zones) {
Write-Host "`n$($Zone.ZoneName)" -ForegroundColor "Green"
$Zone | Get-DnsServerResourceRecord
}
从其它DNS服务器
$DNSServer = "servernameOrIp"
$Zones = @(Get-DnsServerZone -ComputerName $DNSServer)
ForEach ($Zone in $Zones) {
Write-Host "`n$($Zone.ZoneName)" -ForegroundColor "Green"
$Zone | Get-DnsServerResourceRecord -ComputerName $DNSServer
}
从其它DNS服务器,输出table分隔的文件
$DNSServer = "servernameOrIp"
$Zones = @(Get-DnsServerZone -ComputerName $DNSServer)
ForEach ($Zone in $Zones) {
Write-Host "`n$($Zone.ZoneName)" -ForegroundColor "Green"
$Results = $Zone | Get-DnsServerResourceRecord -ComputerName $DNSServer
echo $Results > "$($Zone.ZoneName).txt"
}
http://sigkillit.com/2015/10/27/list-all-dns-records-with-powershell/