UPDATED 6/16/2016 Thanks for the comments!
Here’s a nice quick script to list all DNS records in each zone on the DNS server(includes sub-zones):
From the DNS Server
$Zones = @(Get-DnsServerZone) ForEach ($Zone in $Zones) { Write-Host "`n$($Zone.ZoneName)" -ForegroundColor "Green" $Zone | Get-DnsServerResourceRecord }
From a Remote DNS Server
$DNSServer = "servernameOrIp" $Zones = @(Get-DnsServerZone -ComputerName $DNSServer) ForEach ($Zone in $Zones) { Write-Host "`n$($Zone.ZoneName)" -ForegroundColor "Green" $Zone | Get-DnsServerResourceRecord -ComputerName $DNSServer }
From a Remote DNS Server (Output to Tab Delimited File)
$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" }