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

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

作者:精品下载站 日期:2024-12-14 20:10:01 浏览:19 分类:玩电脑

使用 PowerShell 创建和管理 DNS 区域和记录


Windows 管理员可以使用旧的

Dnscmd

用于 PowerShell 管理 DNS 区域和记录的 cli 工具或 DNSServer 模块。在本文中,我们将介绍使用 PowerShell 批量创建、修改和删除不同 DNS 记录或区域的基本操作。

DNS服务器PowerShell模块

PowerShell 的 DNSServer 模块是 RSAT 的一部分。在 Windows 10 上,您必须单独安装 RSAT,在 Windows Server 上,您可以使用服务器管理器 GUI(角色管理工具 -> DNS 服务器工具)启用该模块。

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

确保您的计算机上安装了 DNSServer PowerShell 模块:

Get-Module DNSServer -ListAvailable

您可以在其中显示命令列表(Windows Server 2016 的模块版本有 134 个 cmdlet):

Get-Module DNSServer

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

使用 PowerShell 管理 DNS 区域

显示服务器上的 DNS 区域列表(在我们的例子中,它是域控制器):

Get-DnsServerZone -ComputerName dc01

要添加名为 a-d.site 的新主 DNS 区域,请运行以下命令:

Add-DnsServerPrimaryZone -Name a-d.site -ReplicationScope "Forest" -PassThru

如您所见,集成到 Active Directory 中的主 DNS 区域已创建 (isDsIntegrated=True)。

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

您可以创建反向查找区域:

Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope Domain

要将新区域与域中的其他 DC 同步,请运行以下命令:

Sync-DnsServerZone -passthru

显示新 DNS 区域中的记录列表(为空):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

要删除 DNS 区域,请使用以下命令:

Remove-DnsServerZone -Name a-d.site -ComputerName dc01

它还将删除该区域中所有现有的 DNS 记录。

使用 DNSServer PowerShell 模块管理 DNS 记录

要为指定 DNS 区域中的主机创建新的 A 记录,请使用以下命令:

Add-DnsServerResourceRecordA -Name ber-rds1 -IPv4Address 192.168.100.33 -ZoneName a-d.site -TimeToLive 01:00:00

要将 PTR 记录添加到反向查找区域,您可以在上一个命令中添加 -CreatePtr 参数,或使用 Add-DNSServerResourceRecordPTR cmdlet 手动创建指针:

Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.a-d.site

要为特定 A 记录添加别名 (CNAME),请运行以下命令:

Add-DnsServerResourceRecordCName -ZoneName a-d.site -Name Ber-RDSFarm -HostNameAlias ber-rds1.a-d.site

要更改(更新)A 记录中的 IP 地址,您必须应用相当复杂的方法,因为您无法直接更改 DNS 记录的 IP 地址:

$NewADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site -ComputerName dc01
$OldADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site -ComputerName dc01

然后更改 $NewADNS 对象的 IPV4Address 属性:

$NewADNS.RecordData.IPv4Address = [System.Net.IPAddress]::parse('192.168.100.133')

使用 Set-DnsServerResourceRecord cmdlet 更改 A 记录的 IP 地址:

Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName a-d.site -ComputerName dc01

确保A记录的IP地址已更改:

Get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

您可以使用-RRType 参数显示相同类型的DNS记录列表。让我们显示指定 DNS 区域中的 CNAME 记录列表:

Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName a-d.site -RRType CNAME

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

您还可以使用Where-Object按任何DNS记录参数使用过滤器。例如,要显示主机名中包含 rds 短语的 A 记录列表:

Get-DnsServerResourceRecord -ZoneName a-d.site -RRType A | Where-Object HostName -like "*rds*"

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

要删除 DNS 记录,请使用Remove-DnsServerResourceRecord cmdlet。

例如,要删除 CNAME 记录,请运行以下命令:

Remove-DnsServerResourceRecord -ZoneName a-d.local -RRType CName -Name Ber-RDSFarm

删除 A DNS 记录:

Remove-DnsServerResourceRecord -ZoneName a-d.local -RRType A -Name ber-rds1 -Force

要从反向查找区域中删除 PTR 记录:

Remove-DnsServerResourceRecord -ZoneName “100.168.192.in-addr.arpa” -RRType “PTR” -Name “33”

如何从 .CSV 文件创建多个 A 和 PTR DNS 记录?

假设您要在特定 DNS 正向查找区域中一次创建多个 A 记录。您可以使用以下命令将它们一一添加

Add-DnsServerResourceRecordA

cmdlet,但从 .CSV 文件批量添加 A 记录更容易。

使用要添加到 DNS 的名称和 IP 地址创建一个文本文件 NewDnsRecords.txt。 txt文件格式如下:

HostName, IPAddress

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

要根据 TXT/CSV 文件中的数据在 a-d.site 区域中创建 A 记录,请使用以下 PowerShell 脚本:

Import-CSV "C:\PS\NewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName a-d.site -Name $_."HostName" -IPv4Address $_."IPAddress"
}

如果您想同时向反向查找区域添加记录,请将 -CreatePtr 参数添加到您的

Add-DNSServerResourceRecordA

命令。

然后使用 DNS 管理器控制台 (

dnsmgmt.msc

) 或者

Get-DnsServerResourceRecord -ZoneName a-d.local

确保所有 DNS 记录已成功创建。

[玩转系统] 使用 PowerShell 创建和管理 DNS 区域和记录

如果要将 PTR 记录批量添加到反向查找区域,请创建具有以下结构的文本或 CSV 文件:

octet,hostName,zoneName
102,ber-rds2.a-d.site,100.168.192.in-addr.arpa
103,ber-rds3.a-d.site,100.168.192.in-addr.arpa
104,ber-rds4.a-d.site,100.168.192.in-addr.arpa
105,ber-rds5.a-d.site,100.168.192.in-addr.arpa

然后运行脚本:

Import-CSV "C:\PS\NewDnsPTRRecords.txt" | %{
Add-DNSServerResourceRecordPTR -ZoneName $_."zoneName" -Name $_."octet" -PTRDomainName $_."hostName"
}

确保您的 PTR 记录出现在 DNS 反向查找区域中。

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

取消回复欢迎 发表评论:

关灯