You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell批量添加DNS子域A记录提示区域未找到问题咨询

问题原因

AD集成DNS中,在主域(如mycompany.com)下新建的子域(如test)默认不是独立的DNS查找区域,而是父区域下的子节点。原脚本直接将-ZoneName参数设为test时,DNS服务会查找名为test的独立根级正向区域,自然会返回「区域未找到」的报错。
之前在主域下执行脚本正常,是因为mycompany.com本身就是独立的正向查找区域,参数能匹配到实际存在的区域对象。

解决方案

根据子域实际部署类型选择对应脚本即可:

场景1:子域为父区域下的内嵌子节点(当前匹配场景)

这种场景下test.mycompany.com没有被创建为独立区域,需要将-ZoneName指定为父域名称,同时在-Name参数中拼接子域前缀。
修正后的脚本如下:

# 请将ZoneName替换为实际的主AD域名
Import-Csv "C:\path\to\file" | ForEach-Object {
    Add-DnsServerResourceRecordA `
        -Name "$($_.hostname).test" `
        -ZoneName "mycompany.com" `
        -IPv4Address $_.ipaddress
    # 需要同步创建PTR反向解析记录的话,在上一行参数末尾追加 -CreatePtr 即可
}

执行后生成的记录格式为server1.test.mycompany.com,完全匹配在test子域下添加记录的需求。

场景2:子域本身为独立AD集成区域

如果在DNS管理器中能看到test作为独立正向查找区域存在(和mycompany.com平级),报区域找不到的原因是脚本默认连接的DNS服务器没有加载该区域,只需添加-ComputerName参数指定持有该区域的DNS服务器/域控地址即可:

Import-Csv "C:\path\to\file" | ForEach-Object {
    Add-DnsServerResourceRecordA `
        -Name $_.hostname `
        -ZoneName "test" `
        -IPv4Address $_.ipaddress `
        -ComputerName "你的DNS服务器主机名或IP"
}
结果验证

执行完脚本后,可以运行以下命令确认记录是否成功添加:

# 场景1验证命令:查询父区域下test子节点的所有A记录
Get-DnsServerResourceRecord -ZoneName "mycompany.com" -RRType A | Where-Object {$_.HostName -like "*.test"}

内容的提问来源于stack exchange,提问作者pod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:27:26