如何导出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 记录可导出"
}
相关推荐
Mintopia3 分钟前
🚀 Next.js 全栈 E2E 测试:Playwright vs Cypress
前端·javascript·next.js
原生高钙3 分钟前
JS设计模式指南
前端·javascript
拳打南山敬老院6 分钟前
漫谈 MCP 构建之Resources篇
前端·后端·ai编程
golang学习记8 分钟前
从0死磕全栈第九天:Trae AI IDE一把梭,使用react-query快速打通前后端接口调试
前端
超人9219 分钟前
我用纯前端技术打造了一个开发者工具箱,10+实用工具助力提效!
前端
bug_kada10 分钟前
详解 React useCallback & useMemo
前端·react.js
Mintopia10 分钟前
⚡ WebAssembly 如何加速 AIGC 模型在浏览器中的运行效率?
前端·javascript·aigc
AAA_Tj11 分钟前
前端动画技术全景指南:四大动画技术介绍
前端
断竿散人16 分钟前
乾坤微前端框架的沙箱技术实现原理深度解析
前端·javascript·前端框架
进阶的鱼17 分钟前
(4种场景)单行、多行文本超出省略号隐藏
前端·css·面试