将dynamicDNSlogging转换为静态

在准备启用DNS Aging / Scavenging时,我们提出的一个问题就是我们的打印机(有一千多个),DNS无法更新。 所有区域都是Active Directory集成的。 我正试图找出将这些设置为静态logging的最佳方法。 所有打印机都以DNS(xxx … 102,xxx … 103,xxx … 104)中名称的前缀开头。 我正在思考两个select。

A :)将所有打印机logging转换为静态logging,而无需手动编辑每条logging。 有没有办法,我可以做一个打印机前缀filter,并将其转换为DNSCMD的静态logging?

B :)将所有匹配filter的打印机logging与打印机前缀导出,然后将其导入为静态logging?

对于这些选项中的任何一个或其他可行的备选scheme,都应该赞赏指导。 任何其他的build议,使大型企业DNS老化/清理,当然会受到欢迎。

谢谢。

@Massimo是部分正确的,因为你可以使用Set-DnsServerResourceRecord ,但是你不能直接设置时间戳,因为这个属性被认为是只读的。 相反,您所做的任何更改都会导致logging变为静态。

这里有一个你如何去做的例子:

 $dnsServer = 'MyDC01' $zone = 'contoso.com' $records = Get-DnsServerResourceRecord -ComputerName $dnsServer -ZoneName $zone -RRType A | Where-Object { $_.HostName -like 'printer*' } $records | ForEach-Object { Set-DnsServerResourceRecord -OldInputObject $_ -NewInputObject $_ -ComputerName $dnsServer -ZoneName $zone } 

这应该是非破坏性的,因为input和输出对象是相同的,但要小心,有备份!

关于清理

如果您的打印机logging已经是dynamic的(可能是因为它们是通过DHCPconfiguration的,而DHCP正在刷新它们),那么您可能不应该使它们成为静态的。 如果DHCP和dynamicDNS工作正常,那么date会更新,清理不会伤害他们。

如果打印机是DHCP但时间戳没有更新,那么您应该找出原因并在启用清理之前解决问题。

如果您必须将这些设置为静态,则应为这些范围configurationDHCP,或者针对那些不需要dynamic更新DNS的个别保留。

关于时间戳的注意事项

必须在时间戳复制之前启用AD集成区域的清理。 如果看起来date都是错误的和不一致的,你可能会遇到这种情况。 在区域上启用清理不会清除logging(该设置位于服务器上)。 我已经清理了两个月的区域,然后才开始清理运行,所以我可以确定时间戳是一致的并且正在更新。

在Windows DNS中,如果logging没有时间戳记 ,则定义为静态logging; 因此,您正在寻找的答案是“获取所有这些logging并将其时间戳设置为0”。

Windows Server 2012上的PowerShell可以轻松完成此操作,该操作系统引入了一系列用于使用DNS的PowerShell cmdlet ; 你正在寻找的是Get-DnsServerResourceRecord和Set-DnsServerResourceRecord ,它应该让你build立一个像这样的脚本:

 - Get all records of type A for your DNS zone - Filter them to select the ones starting with the prefix you want - For each record: - Set the timestamp to 0 - Save the record 

请注意,您不需要使用您的DNS服务器来运行Windows Server 2012就可以运行; 您只需要在WS2012或WS2012R2机器上运行脚本。 即使是运行Windows 8或Windows 8.1的计算机也可以正常工作,但是您需要安装远程服务器pipe理工​​具。