批量修改DNS记录的TTL值

最近有个需求,需要修改Windows DNS服务器上区域下所有A记录的TTL值。原先默认的TTL是1小时。也就是说,其它DNS服务器会缓存查询到的记录1个小时。对于近期需要大量修改记录的情况来说这样生效时间会比较长。所以最好将TTL先改短,然后再更新记录。

查看记录的TTL值需要打开DNS管理单元的高级功能视图。对于区域里的后续记录可以修改区域属性里的TTL值,这样以后创建出来的记录就都是新的TTL了。如果看不到图,请点我

如果修改了Minimum TTL,以后所有的新建记录也会一起变。

对于由Netlogon服务注册的DNS记录,也就是SRV记录。可以通过修改这个注册表键值来改变默认的TTL

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DefaultRegistrationTTL

这个对于目前我遇到的问题没有用。所以,必须使用命令来批量修改记录。在此,选用powershell来完成。先用这条命令来看看当前区域中A记录的信息。

Get-DnsServerResourceRecord -ComputerName DC-232 -ZoneName "contoso.lab" -RRType "A"

然后使用以下脚本来修改所有的记录。

$OldObj=Get-DnsServerResourceRecord -ComputerName DC-232 -ZoneName "contoso.lab" -RRType "A"
foreach ($record in $OldObj)
{
$NewObj = $record.Clone()
$NewObj.TimeToLive = [System.TimeSpan]::FromMinutes(20)
Set-DnsServerResourceRecord -ComputerName DC-232 -NewInputObject $NewObj -OldInputObject $record -ZoneName "contoso.lab" -PassThru
$NewObj=$Null
$record=$Null
}

脚本会逐条修改TTL值,如果记录比较多的话耐心等待完成就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值