使用 PowerShell 批量导出 Windows DNS 正向解析及条件转发器记录

前述

这是 Windows DNS 迁移到 CoreDNS 过程中的一个子任务,主要目的是解决手动逐条迁移正向查找区域 A 记录和条件转发器的繁琐问题。最近,木子公司计划将 Windows DNS 上的正向查找区域 A 记录以及条件转发器中的所有域名记录迁移到 CoreDNS。为此,木子特别编写了一个 PowerShell 脚本来实现这一功能。

批量导出 Windows 正向查找区域中的 A 记录

要求:批量导出 Windows 正向查找区域中所有域名的 A 记录,并排除以 *.cc.com 结尾的域名(因为本身 AD 域所使用的域名正向解析仍在域服务器上管理)。

# 获取所有的 DNS 区域
$zones = Get-DnsServerZone | Where-Object { $_.IsAutoCreated -eq $false }  

# 创建一个空的数组来存储结果
$results = @()  

foreach ($zone in $zones) {  
    # 获取每个区域的 A 记录  
    $records = Get-DnsServerResourceRecord -ZoneName $zone.ZoneName -RRType "A"  

    foreach ($record in $records) {  
        # 获取完整的域名
        $domain = "$($record.HostName).$($zone.ZoneName)"  

        # 跳过以 "*.cc.com" 结尾的域名
        if ($domain -like "*.cc.com") {  
            continue  
        }  

        # 创建一个自定义的对象来存储域名和 IP 地址
        $result = New-Object PSObject -Property @{  
            "Domain" = $domain.Replace("@."," ")  
            "IP_Address" = $record.RecordData.IPv4Address.IPAddressToString  
        }  

        # 将结果添加到数组中
        $results += $result  
    }  
}  

# 将结果导出到一个 CSV 文件  
$results | Export-Csv -Path "c:\A_record.csv" -NoTypeInformation  

导出的 CSV 文件格式如下,只需要通过脚本再导入 CoreDNS Hosts 文件即可。

IP_Address Domain
192.168.22.1 a.rockylinux.cn
192.168.22.2 b.rockylinux.cn
192.168.22.3 c.rockylinux.cn

批量导出 Windows 条件转发器所有域名及 IP

# 获取所有条件转发器
$forwarders = Get-DnsServerZone | Where-Object {$_.ZoneType -eq 'Forwarder'}  

# 创建一个空数组来存储结果
$results = @()  

foreach ($forwarder in $forwarders) {  
    # 获取每个条件转发器的域名和 IP 地址
    $result = New-Object PSObject -Property @{  
        "Domain" = $forwarder.ZoneName  
        "MasterServers" = $forwarder.MasterServers -join "; "  
    }  

    # 将结果添加到数组中
    $results += $result  
}  

# 将结果导出到一个 CSV 文件
$results | Export-Csv -Path "c:\forward.csv" -NoTypeInformation  

导出的 CSV 文件格式如下,只需要通过脚本再导入 CoreDNS Corefile 文件即可。

IP_Address Domain
8.8.8.8 google.com
8.8.4.4 youtube.com
Avatar photo

关于 木子

Founder of the Rocky Linux Chinese community, MVP、VMware vExpert、TVP, advocate for cloud native technologies, with over ten years of experience in site reliability engineering (SRE) and the DevOps field. Passionate about Cloud Computing、Microservices、CI&CD、DevOps、Kubernetes, currently dedicated to promoting and implementing Rocky Linux in Chinese-speaking regions.
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇