DNS记录通常由您的DNS服务器动态管理。但是,有时您可能会发现需要手动创建、编辑或删除各种类型的DNS记录。甚至将各种DNS任务添加到自动化脚本中。在这种时候,使用PowerShell DNS cmdlets是正确的选择。
本博文附带了由
使用PowerShell DNS Cmdlets查看DNS记录
您可以通过简单使用PowerShell DNS cmdlet Get-DnsServerResourceRecord
来查看给定DNS区域的所有资源记录。使用此cmdlet,您可以指定ZoneName
参数,该参数将列出该区域中的所有DNS记录。
如下所示,这将生成一份相当长的记录列表。

这种行为突显了此特定cmdlet相对于图形DNS控制台的优势之一。该视图为您提供了该区域的所有记录,而不管它们位于哪个文件夹中。在图形控制台中,要将这些信息拼凑在一起需要相当长的时间。
现在稍微精简一下这个列表。使用相同的 cmdlet,但添加 RRType
参数来搜索 A 记录(IPv4 主机),并过滤出 Time To Live (TTL) 大于 15 分钟的记录,这样我们就可以得到一个更易管理的列表。您可以使用 Where-Object
cmdlet 来根据许多不同的 DNS 记录属性进行过滤。

更进一步,您还可以在不同的 DNS 区域甚至不同的 DNS 服务器上搜索记录。
在下面的示例中,我们将在 DNS 服务器 DC03 上的 canada.corp.ad 区域中搜索 A 记录。

添加和删除主机记录
要添加主机记录,您需要使用 PowerShell DNS cmdlet Add-DnsServerResourceRecordA
。在下面的示例中,您需要为要添加到网络的新打印机添加主机记录。它将被添加到 corp.ad 区域,名称为 reddeerprint01,其 IP 地址为 192.168.2.56。

如果发现需要删除记录,也许打印机已被废弃,您可以使用以下代码来删除我们刚刚创建的主机记录:
添加和删除 AAAA 主机记录
这也同样容易添加一个IPv6主机记录。当然,这些记录略有不同,因为它们被列为AAAA记录。您可能会注意到,我们现在正在使用PowerShell DNS cmdlet Add-DnsServerResourceRecordAAAA
。这是一个细微的变化,但是非常重要。
在corp.ad区域为新的IT Intranet服务器添加一个记录,位于fc00:0128,然后使用以下命令快速验证是否已创建。

添加反向查找记录(PTR)
使用PowerShell DNS cmdlets,您也可以添加PTR记录。反向查找记录允许客户端查询DNS服务器以请求提供的IP地址的主机名。
创建PTR记录是一个相对简单的过程,但在开始添加PTR记录之前,您需要了解一个重要的信息。反向查找区域不会默认创建。您需要在添加记录之前设置您的反向查找区域。幸运的是,这相对容易完成。
创建DNS区域
使用PowerShell DNS cmdlet Add-DnsServerPrimaryZone
来创建一个新的DNS区域。在这个例子中,因为您正在创建一个反向查找区域,请为其提供网络ID。
在这个例子中,我还选择将复制范围设置为整个AD forest,并且我特别将DC03作为首选DNS服务器:

现在反向查找区域已经就绪,您可以为名为CYQF-Printer-01.canada.corp.ad的新打印机添加一个PTR记录,其IP地址为192.168.2.56。由于此记录是针对canada.corp.ad区域的,您将针对DNS服务器DC03进行操作。
现在区域已经创建,让我们使用Add-DnsServerResourceRecordPtr
命令创建PTR记录。在使用此cmdlet时,有几点需要注意。
- 您需要使用网络ID的反向顺序指定区域名称,然后添加.in-addr.arpa。因此,对于我们的192.168.2.0/24网络ID,区域名称为2.168.192.in-addr.arpa。
Name
参数是IP地址的主机部分。对于我们的打印机,位于192.168.2.56,Name
是56。
一旦您获得了这些信息,创建PTR记录所需的代码就相对简单,尽管有点冗长:

添加别名记录(CNAME)
要完成本教程,使用Add-DnsServerResourceRecordCName
cmdlet创建主机别名记录或CNAME记录。
这些记录允许您为区域中的现有主机记录指定别名。例如,如果您想为财务用户提供其启用Web的财务应用程序的地址,这将特别有用。
你可以创建一个名为finance的别名,并将其指向webserver webapp25.corp.ad。一旦应用程序迁移到新的 webserver 并具有新的主机名,然后你可以更改 CNAME 记录以指向finance,该记录指向新主机。通过这种方式,用户无需更新书签即可继续访问其应用程序,使用地址finance.corp.ad。

如果你想深入了解 DNS 并了解一些更高级的功能,请务必查看这里的其他 DNS 帖子。
总结
这就完成了我们关于使用 PowerShell 管理 DNS 记录的教程。有了你在这里积累的知识,你现在应该能够在互动或甚至自动化大量 DNS 记录的管理。