如何导出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 记录可导出"
}
相关推荐
Justin3go16 分钟前
HUNT0 上线了——尽早发布,尽早发现
前端·后端·程序员
怕浪猫1 小时前
第一章 JSX 增强特性与函数组件入门
前端·javascript·react.js
铅笔侠_小龙虾1 小时前
Emmet 常用用法指南
前端·vue
钦拆大仁1 小时前
跨站脚本攻击XSS
前端·xss
2501_946242931 小时前
MPV-EASY Player (MPV播放器) v0.41.0.1
数据库·经验分享·云计算·计算机外设·github·电脑·csdn开发云
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 日榜(2025-12-30)
git·ai·开源·llm·github
VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue校园社团管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·课程设计
ChangYan.3 小时前
直接下载源码但是执行npm run compile后报错
前端·npm·node.js
skywalk81634 小时前
在 FreeBSD 上可以使用的虚拟主机(Web‑Hosting)面板
前端·主机·webmin
夜流冰4 小时前
Git - github-git-cheat-sheet
git·github