如何导出Windows 服务器上DNS解析记录值

bash 复制代码
# 设置 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.Name
    Write-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 = $zoneName
            DomainName = $record.OwnerName
            RecordType = "A"
            IPAddress = $record.RecordData
            TargetName = $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 = $zoneName
            DomainName = $record.OwnerName
            RecordType = "CNAME"
            IPAddress = $null  # CNAME记录没有 IP 地址,所以用 $null
            TargetName = $record.PrimaryName
        }
        $dnsRecords += $dnsRecord
    }
}

# 导出到 CSV 文件
if ($dnsRecords.Count -gt 0) {
    $dnsRecords | Export-Csv -Path "C:\dns_records.csv" -NoTypeInformation
    Write-Output "DNS 记录已导出到 C:\dns_records.csv"
} else {
    Write-Output "没有 DNS 记录可导出"
}
相关推荐
过往记忆2 小时前
告别 Shuffle!深入探索 Spark 的 SPJ 技术
大数据·前端·分布式·ajax·spark
高兴蛋炒饭3 小时前
RouYi-Vue框架,环境搭建以及使用
前端·javascript·vue.js
m0_748240443 小时前
《通义千问AI落地—中》:前端实现
前端·人工智能·状态模式
ᥬ 小月亮4 小时前
Vue中接入萤石等直播视频(更新中ing)
前端·javascript·vue.js
神雕杨5 小时前
node js 过滤空白行
开发语言·前端·javascript
网络安全-杰克5 小时前
《网络对抗》—— Web基础
前端·网络
m0_748250745 小时前
2020数字中国创新大赛-虎符网络安全赛道丨Web Writeup
前端·安全·web安全
周伯通*5 小时前
策略模式以及优化
java·前端·策略模式
艾斯特_5 小时前
前端代码装饰器的介绍及应用
前端·javascript
Sokachlh5 小时前
【elementplus】中文模式
前端·javascript