使用 DNSCMD 和 Powershell 3.0 将 NS 记录添加到主要非 AD DNS 区域

使用 DNSCMD 和 Powershell 3.0 将 NS 记录添加到主要非 AD DNS 区域

我知道已经有一个非常相似的问题发布了,但是提供的解决方案对我来说不起作用,因此我没有劫持他的帖子,而是提出了一个新问题。

我通过 Powershell 和 dnscmd 向某些区域添加了 NS 记录,每个记录的结果都相同——IP 地址旁边有一个星号,这意味着它是“通过 DNS 查询检索到的 IP 地址,可能不代表此服务器上的实际记录”。当星号存在时,区域绝对不会转移。

使用脚本后,我查看了在 DNS2、3 和 4 服务器上创建的辅助区域,它显示“DNS 服务器未加载区域”,如果我返回并从脚本创建的主区域中移除 NS 并手动添加 NS,星号就会消失,刷新后,辅助区域正常并由 DNS 服务器加载。

如果我通过 GUI 中的“名称服务器”选项卡添加相同的服务器,则没有星号,并且区域传输也没有问题。

我这样做是为了将这些区域“黑洞化”

这是我创建的 Powershell 脚本(是的,我知道它可能不是最好的方法或最好的工具,但是我们还没有服务器 2012,我无法将任何模块导入我的 Powershell 并且 DNSCMD 工具是我所必须使用的全部工具,也是我被允许在该网络上使用的全部工具。

我有一个包含网址的文本文件,我将使用以下脚本将其添加到“黑洞”中

$a = Get-Content "D:\filelocation\blackholetest.txt"
$b = "@"
foreach ($a in $a)
{
    dnscmd DNS1 /zoneadd $a /Primary /File $a".dns"
    dnscmd DNS1 /recordadd $a WWW A IP.ADD.RE.SS
    dnscmd DNS1 /recordadd $a $b NS DNS2.fully.qualified.domain.name
    dnscmd DNS1 /recordadd $a $b NS DNS3.fully.qualified.domain.name
    dnscmd DNS1 /recordadd $a $b NS DNS4.fully.qualified.domain.name
    dnscmd DNS2 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
    dnscmd DNS3 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
    dnscmd DNS4 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
}

答案1

所以,Mass Nerder 给我指明了正确的方向。谢谢 Mass。

尽管我在脚本中命名了 NS,并且区域传输设置为传输到 NS 选项卡中的服务器,但这并不是因为 NS 选项卡中服务器 IP 的 *。通过在脚本中添加几行来设置区域传输选项卡中的辅助服务器的 IP,并将区域传输设置为转到列表中的服务器,一切都很正常,并且正在按需要的方式运行。(请参阅下面的最终脚本)

感谢所有人,并再次感谢 Mass 为我指明正确的方向。

$a = Get-Content "D:\filelocation\blackholetest.txt"
$b = "@"
foreach ($a in $a)
{
dnscmd DNS1 /zoneadd $a /Primary /File $a".dns"
dnscmd DNS1 /recordadd $a WWW A IP.ADD.RE.SS
dnscmd DNS1 /recordadd $a $b NS DNS2.fully.qualified.domain.name
dnscmd DNS1 /recordadd $a $b NS DNS3.fully.qualified.domain.name
dnscmd DNS1 /recordadd $a $b NS DNS4.fully.qualified.domain.name
dnscmd DNS1 /zoneresetsecondaries $a /securelist DNS2.IP.ADD.RESS DNS3.IP.ADD.RESS DNS4.IP.ADD.RESS /notify
dnscmd DNS2 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
dnscmd DNS3 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
dnscmd DNS4 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
}

在意识到我可能不是组织中唯一一个使用该脚本的人之后,我决定对其进行修改以使用用户输入而不是获取内容,并决定使其循环。请参阅下面的新代码。

do
 {
 $a = Read-Host "Enter Domain name you want to add to the black hole.  If you are done type Exit"
 if ($a -eq "Exit")
 {break}
 else
 {
$b = "@"
 dnscmd DNS1 /zoneadd $a /Primary /File $a".dns"
  dnscmd DNS1 /recordadd $a WWW A IP.ADD.RE.SS
  dnscmd DNS1 /recordadd $a $b NS DNS2.fully.qualified.domain.name
  dnscmd DNS1 /recordadd $a $b NS DNS3.fully.qualified.domain.name
  dnscmd DNS1 /recordadd $a $b NS DNS4.fully.qualified.domain.name
  dnscmd DNS1 /zoneresetsecondaries $a /securelist DNS2.IP.ADD.RESS DNS3.IP.ADD.RESS DNS4.IP.ADD.RESS /notify
  dnscmd DNS2 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
  dnscmd DNS3 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
  dnscmd DNS4 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
 }
 }
 until ($a -eq "Exit")

相关内容