# 设置 DNS 服务器
$DNSServer = "localhost" # 替换为实际的 DNS 服务器名称# 获取所有 DNS 区域
$zones = Get-WmiObject -Namespace "root\MicrosoftDNS" -Query "SELECT * FROM MicrosoftDNS_Zone" -ComputerName $DNSServer# 初始化一个空的数组来存储 DNS 记录
$dnsRecords = @()foreach ($zone in $zones) {$zoneName = $zone.NameWrite-Output "处理区域: $zoneName"# 获取每个区域的所有 A 记录$aQuery = "SELECT * FROM MicrosoftDNS_AType WHERE ContainerName = '$zoneName'"try {$aRecords = Get-WmiObject -Namespace "root\MicrosoftDNS" -Query $aQuery -ComputerName $DNSServer} catch {Write-Error "无法获取 A 记录: $_"continue}foreach ($record in $aRecords) {$dnsRecord = [PSCustomObject]@{ZoneName = $zoneNameDomainName = $record.OwnerNameRecordType = "A"IPAddress = $record.RecordDataTargetName = $null # CNAME记录没有 IP 地址,所以用 $null}$dnsRecords += $dnsRecord}# 获取每个区域的所有 CNAME 记录$cnameQuery = "SELECT * FROM MicrosoftDNS_CNAMEType WHERE ContainerName = '$zoneName'"try {$cnameRecords = Get-WmiObject -Namespace "root\MicrosoftDNS" -Query $cnameQuery -ComputerName $DNSServer} catch {Write-Error "无法获取 CNAME 记录: $_"continue}foreach ($record in $cnameRecords) {$dnsRecord = [PSCustomObject]@{ZoneName = $zoneNameDomainName = $record.OwnerNameRecordType = "CNAME"IPAddress = $null # CNAME记录没有 IP 地址,所以用 $nullTargetName = $record.PrimaryName}$dnsRecords += $dnsRecord}
}# 导出到 CSV 文件
if ($dnsRecords.Count -gt 0) {$dnsRecords | Export-Csv -Path "C:\dns_records.csv" -NoTypeInformationWrite-Output "DNS 记录已导出到 C:\dns_records.csv"
} else {Write-Output "没有 DNS 记录可导出"
}
如何导出Windows 服务器上DNS解析记录值
2025/11/1 14:46:02
来源:https://blog.csdn.net/hackermmm/article/details/140817191
浏览:
次
关键词:如何导出Windows 服务器上DNS解析记录值
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
