批量修改DNS記錄的TTL值

最近有個需求,需要修改Windows DNS服務器上區域下所有A記錄的TTL值。原先默認的TTL是1小時。也就是說,其它DNS服務器會緩存查詢到的記錄1個小時。對於近期需要大量修改記錄的情況來說這樣生效時間會比較長。所以最好將TTL先改短,然後再更新記錄。

查看記錄的TTL值需要打開DNS管理單元的高級功能視圖。對於區域裏的後續記錄可以修改區域屬性裏的TTL值,這樣以後創建出來的記錄就都是新的TTL了。如果看不到圖,請點我
批量修改DNS記錄的TTL值

如果修改了Minimum TTL,以後所有的新建記錄也會一起變。
批量修改DNS記錄的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"
批量修改DNS記錄的TTL值
然後使用以下腳本來修改所有的記錄。

$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
}
批量修改DNS記錄的TTL值
腳本會逐條修改TTL值,如果記錄比較多的話耐心等待完成就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章