配置 DNS 清理以清理 AD 中過時的 DNS 記錄
可以使用兩個特殊的 Windows Server DNS 功能來自動清理 Active Directory 中的舊 DNS 記錄:
- DNS老化– 允許確定動態註冊 DNS 記錄的年齡(最後時間戳與當前時間之間的差異)
- DNS 清理– 自動刪除一段時間未更新(使用)的陳舊動態 DNS
Windows Server DNS 有兩種類型的記錄 –動態的和靜止的。動態記錄有一個時間戳參數(最後更新 DNS 記錄的時間)。活動 Windows 客戶端會在啟動時或每 24 小時更新其 DNS 記錄中的時間戳。該參數允許 DNS 服務器識別長時間未更新且未使用的記錄。
打開AD域控制器上的DNS服務器管理控制台(dnsmgmt.msc)並檢查先進的選項中的看法菜單。
建議閱讀:MX 記錄問題:修復啟用 Cloudflare 後的電子郵件問題

區域DNS記錄中有靜態記錄和動態記錄(時間戳中包含時間)。


靜態 DNS 記錄不會自動刪除。此類 DNS 記錄由管理員創建,或者如果刪除這條記錄,它們就會變得陳舊選項在其設置中被禁用。
仔細查看 DNS 區域中的動態條目。在任何不應自動刪除的 DNS 記錄的屬性中禁用此選項。此類 DNS 記錄的類型將更改為靜止的。
確保為所有服務器、網絡設備、打印機、掃描儀和其他網絡服務配置靜態記錄。


清理過程僅自動刪除動態 DNS 記錄。
默認情況下,Windows Server 中禁用自動清除過時 DNS 記錄。
打開您的 DNS 區域屬性並單擊老化按鈕上的一般的選項卡。
- 檢查選項清除陳舊的資源記錄。
- 這無刷新間隔參數設置 DNS 記錄的時間戳不會更新的時間間隔(減少 DNS 服務器負載和 AD 複製)。但是,如果計算機的主機名已更改,則 DNS 記錄將成功更新。
- 刷新間隔– 這是可以更新 DNS 記錄時間戳的時間。
的值無刷新間隔應設置為 DHCP 服務器上設置的 IP 地址租用時間的一半。例如,如果DHCP服務器上的IP地址租用時間為12天,則此處輸入6。在這種情況下,動態 DNS 記錄將被視為已過時,並且將在 12 天不活動後被清理作業清除。


單擊 DNS 服務器並選擇為所有區域設置老化/清除,老化設置可以應用於域控制器上的所有主 DNS 區域。


目前,您僅為區域配置了 DNS 記錄期限選項。除非您在 DNS 服務器設置中啟用了自動清理功能,否則 DNS 記錄不會被刪除。
在首次開始清理 DNS 區域之前,我們建議您將 DNS 區域中的所有資源記錄導出到 CSV 文件。這將允許您在必要時手動重新創建關鍵 DNS 記錄:
Get-DnsServerResourceRecord -ZoneName 'contoso.com' | Select-Object hostname, timestamp, recordtype, @{Name="RecordData";Expression={$_.RecordData.ipv4address}}| Export-CSV -Csv "C:tempBackupDNSZoneContoso.csv" -NoTypeInformation
前往先進的DNS 服務器屬性中的選項卡。
啟用啟用狀態記錄的自動清理選項並指定 DNS 記錄被老化機制標記為過時後多少天應將其刪除(默認為 7 天)。此後,Scavenging 機制將每天自動刪除一次舊的 DNS 記錄。


右鍵單擊 DNS 服務器並選擇清理陳舊的資源記錄立即進行清理。或者運行命令:
Start-DnsServerScavenging -Verbose


可以使用 PowerShell 獲取當前 DNS 服務器清理設置和上次清理時間:
Get-DnsServerScavenging
NoRefreshInterval : 7.00:00:00 RefreshInterval : 7.00:00:00 ScavengingInterval : 7.00:00:00 ScavengingState : False LastScavengeTime : 4/2/2024 6:02:37 AM


大多數 AD 安裝使用內置 DNS 區域,這些區域會在域控制器之間自動複製(此類區域沒有經典的 PRIMARY DNS 服務器)。因此,您只需在其中一台域控制器(RODC 除外)上配置清理。如果刪除或停用此類 DC,則必須在另一個域控制器上重複相同的配置。
