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

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

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

使用 PowerShell 管理标准和 DNS 条件转发器


Windows DNS 转发器和 DNS 条件转发器是 DNS 基础结构的重要组成部分。在本教程中,我们将介绍 AD DNS 转发器以及如何在您的环境中管理它们。

您会发现有时您需要添加或管理这些转发器地址。其中一些更改需要在企业中的多个 DNS 服务器上进行。值得庆幸的是,使用 PowerShell 的 Set-DnsServerForwarder cmdlet 等命令可以让您轻松管理这两种 DNS 服务。

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

更换 DNS 转发器

DNS 服务器使用 DNS 转发器来查找不包含在服务器授权的任何区域中的地址的查询。这为您的 DNS 服务器提供了一种有效的名称解析方法。如果没有适当的转发器,您的 DNS 服务器将必须查询根提示服务器才能开始解析未知地址。

虽然这些转发器地址是在每个 DNS 服务器上单独配置的,但使用 PowerShell 允许我们使用 Set-DnsServerForwarder cmdlet,从而使管理它们变得更加容易。

首先查看本地 DNS 服务器当前配置的转发器。我们将使用 Get-DnsServerForwarder cmdlet 来完成此操作。我们首先使用 Get-* cmdlet,因为您首先需要查找所有现有转发器。

如下所示,有两个转发器配置的 IP 地址为 8.8.8.8 和 8.8.4.4。

PS> Get-DnsServerForwarder

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

现在添加一个额外的转发器。该转发器可能是您在我们的 DMZ 中配置的新 DNS 服务器,或者可能使用我们的 ISP 提供的转发地址。在这种情况下,您将使用 Set-DnsServerForwarder cmdlet 设置新地址,然后使用 Get-DnsServerForwarder 确认地址设置正确。

Set-DnsServerForwarder -IPAddress 192.168.1.1
Get-DnsServerForwarder

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

不幸的是,这并没有达到预期的结果。正如您在上面所看到的,使用 Set-DnsServerForwarder cmdlet 实际上会替换转发器列表,而不是添加到其中。要将地址添加到列表中,而不是替换整个列表,您需要使用Add-DnsServerForwarder

要纠正此问题,请将列表替换为原来的两个转发器,添加新地址,然后检查是否成功。

Set-DnsServerForwarder -IPAddress 8.8.8.8, 8.8.4.4
Add-DnsServerForwarder -IPAddress 192.168.1.1
Get-DnsServerForwarder

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

现在您已添加所有三个转发器。

删除 DNS 转发器

假设您想要删除转发器地址,您可以使用 Remove-DnsServerForwarder cmdlet,如下所示。然后,您需要检查该地址是否已被删除。

如果 Set-DnsServerForwarder 替换 DNS 转发器,Remove-DnsServerForwarder 会将其完全删除。

Remove-DnsServerForwarder -IPAddress 192.168.1.1
Get-DnsServerForwarder

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

扩展到多个 DNS 服务器

有时,您需要能够在多个 DNS 服务器上添加或删除转发器地址。在这种情况下,Set-DnsServerForwarder 将不起作用。值得庆幸的是,PowerShell 使将此任务扩展到多个 DNS 服务器相对容易。如果您使用Invoke-Command,包含我们所有DNS服务器的列表,然后将Add-DnsServerForwarder放入脚本块参数值中,您可以修改所有DNS服务器只需一个命令。然后使用类似的命令,查看我们更改的结果。

Invoke-Command -ComputerName DC01, DC02, DC03 -ScriptBlock {
    Add-DnsServerForwarder -IPAddress 192.168.1.1
}
Invoke-Command -ComputerName DC01, DC02, DC03 -ScriptBlock { Get-DnsServerForwarder }

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

DNS 条件转发器

一种特殊类型的转发器(称为条件转发器)无法使用 Set-DnsServerForwarder cmdlet 进行修改。当您获得已知 DNS 域名的 DNS 服务器的 IP 地址时,可以使用此类转发器。

DNS 条件转发器由 DNS 服务器在使用本文前面列出的服务器转发器之前使用。

例如,如果您为 tailspintoys.com 配置了条件转发器,则您的 DNS 服务器将在检查它不是其权威域后,检查条件转发器并发现条目存在。此时,您的 DNS 服务器将查询列出的 DNS 服务器以获取 tailspintoys.com 域中所需的地址。

DNS 条件转发器的一项出色功能是,它们可以像任何 Active Directory 集成 DNS 区域一样复制到其他 DNS 服务器。

首先检查您是否使用 Get-DnsServerZone cmdlet 配置了条件转发器。

PS> Get-DnsServerZone

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

条件转发器显示在此列表中,ZoneType转发器。在这种情况下,我们没有配置。因此,您将使用 Add-DnsServerConditionalForwarderZone 创建条件转发器,将其设置为复制到整个 Active Directory 林,然后确认已创建它。

PS> Add-DnsServerConditionalForwarderZone `
    -Name tailspintoys.com `
    -MasterServers 10.10.14.240,10.10.14.241 `
    -ReplicationScope Forest

PS> Get-DnsServerZone

[玩转系统] 使用 PowerShell 管理标准和 DNS 条件转发器

输出显示您已配置条件转发器,并且已准备就绪。

概括

PowerShell 确实让管理 DNS 转发器变得轻而易举!您现在应该能够使用 PowerShell 以多种不同方式管理和自动化 AD DNS 转发器。我们几乎从各个角度介绍了这些转发器。

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

取消回复欢迎 发表评论:

关灯