当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell DNS Cmdlet 自动执行无聊的任务

作者:精品下载站 日期:2024-12-14 12:49:06 浏览:14 分类:玩电脑

使用 PowerShell DNS Cmdlet 自动执行无聊的任务


DNS 记录通常由 DNS 服务器动态管理。但是,有时您可能会发现需要手动创建、编辑或删除各种类型的 DNS 记录。或者甚至将各种 DNS 任务添加到自动化脚本中。有时,使用 PowerShell DNS cmdlet 是最佳选择。

这篇博文有一个由 TechSnips 贡献者 David Lamb 创建的配套视频。请随时佩戴手表,或者,如果您喜欢文字,请继续阅读!

使用 PowerShell DNS Cmdlet 查看 DNS 记录

您只需使用 PowerShell DNS cmdlet Get-DnsServerResourceRecord 即可查看给定 DNS 区域的所有资源记录。使用此 cmdlet,您可以指定 ZoneName 参数,该参数将列出该区域中的所有 DNS 记录。

如下所示,这会生成相当长的记录列表。

PS51> Get-DnsServerResourceRecord -ZoneName corp.ad

此行为凸显了此特定 cmdlet 相对于图形 DNS 控制台的优势之一。该视图为您提供了该区域的所有记录,无论它们位于哪个文件夹中。在图形控制台中,需要相当长的时间才能将这些信息拼凑在一起。

现在稍微精简一下这个列表。使用相同的 cmdlet,但添加 RRType 参数来搜索 A 记录(IPv4 主机)并过滤生存时间 (TTL) 大于 15 分钟的记录为我们提供了一个更易于管理的列表。您可以使用 Where-Object cmdlet 来过滤许多不同的 DNS 记录属性。

PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType A | Where-Object TimeToLive -GE "00:15:00"

更进一步,您还可以在不同的 DNS 区域甚至不同的 DNS 服务器上搜索记录。

在下面的示例中,我们将在 DNS 服务器 DC03 上的 canada.corp.ad 区域中搜索 A 记录

PS51> Get-DnsServerResourceRecord -ComputerName DC03 -ZoneName canada.corp.ad -RRType A

添加和删除主机记录

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

PS51> Add-DnsServerResourceRecordA -Name reddeerprint01 -ZoneName corp.ad -IPv4Address 192.168.2.56
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType A

如果事实证明您需要删除一条记录,可能打印机已经停用,您可以使用以下代码删除我们刚刚创建的主机记录:

PS51> Remove-DnsServerResourceRecord -ZoneName corp.ad -Name reddeerprint01 -RRType A

添加和删除 AAAA 主机记录

添加 IPv6 主机记录也同样容易。当然,这些记录略有不同,因为它们被列为 AAAA 记录。您可能会注意到,我们现在使用 PowerShell DNS cmdlet Add-DnsServerResourceRecordAAAA。这是一个微妙的变化,但却是一个重要的变化。

将记录添加到位于 fc00:0128 的新 IT Intranet 服务器的 corp.ad 区域,然后使用以下命令快速验证是否已创建。

PS51> Add-DnsServerResourceRecordAAAA -Name it-intranet -ZoneName corp.ad -IPv6Address "fc00::0128"
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType AAAA

添加反向查找记录 (PTR)

使用 PowerShell DNS cmdlet,您还可以添加 PTR 记录。反向查找记录允许客户端查询 DNS 服务器以请求所提供的 IP 地址的主机名。

创建 PTR 记录是一个相对简单的过程,但在开始添加 PTR 记录之前,您需要了解一点重要的信息。默认情况下不创建反向查找区域。在添加记录之前,您需要设置反向查找区域。幸运的是,这相对容易做到。

创建 DNS 区域

使用 PowerShell DNS cmdlet Add-DnsServerPrimaryZone 创建新的 DNS 区域。在本例中,由于您要创建反向查找区域,因此请为其提供网络 ID。

在此示例中,我还选择将复制范围设置为整个 AD 林,并且我专门将 DC03 作为首选 DNS 服务器:

PS51> Add-DnsServerPrimaryZone -ComputerName DC03 -NetworkId "192.168.2.0/24" -ReplicationScope Forest
PS51> Get-DnsServerZone -ComputerName DC03

现在反向查找区域已就位,您可以为名为 CYQF-Printer-01.canada.corp.ad 且 IP 地址为 192.168.2.56 的新打印机添加 PTR 记录。由于此记录适用于 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),名称56

获得这些信息后,创建 PTR 记录所需的代码相对简单(虽然有点长):

PS51> Add-DnsServerResourceRecordPtr `
    -Name "56" `
    -PtrDomainName "CYQF-Printer-01.canada.corp.ad" `
    -ZoneName "2.168.192.in-addr.arpa" `
    -computerName DC03

PS51> Get-DnsServerResourceRecord -ComputerName DC03 -ZoneName "2.168.192.in-addr.arpa"

添加别名记录 (CNAME)

要完成本教程,请使用 Add-DnsServerResourceRecordCName cmdlet 创建主机别名记录或 CNAME 记录。

这些记录允许您为区域中的现有主机记录指定别名。例如,如果您想向财务用户提供其支持网络的财务应用程序的地址,这将变得特别有用。

您可以创建一个名为 finance 的别名,并将其指向网络服务器 webapp25.corp.ad。将应用迁移到具有新主机名的新网络服务器后,您可以将 CNAME 记录更改为指向新主机的finance。这样,用户就不必更新他们的书签。他们可以继续使用地址 finance.corp.ad 访问其应用程序。

PS51> Add-DnsServerResourceRecordCName -ZoneName corp.ad -HostNameAlias "webapp25.corp.ad" -Name "finance"
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType CName

如果您想更深入地了解 DNS 并了解一些更高级的功能,请务必查看此处的所有其他 DNS 帖子。

概括

关于使用 PowerShell 处理 DNS 记录的教程到此结束。凭借您在这里积累的知识,如果您下定决心,您现在应该能够交互式管理甚至自动化大量 DNS 记录!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯