Az elavult DNS-rekordok megtisztítása a PowerShell segítségével

Amikor eltávolítja az AD számítógépobjektumokat, a DNS-rekordok a Windows Server DNS-ben maradnak. A legjobb módszer a DNS-öregedés és -tisztítás beállítása. De ha ezek a rekordok statikusak, akkor nem távolítják el őket automatikusan. És mi van akkor, ha nem tud várni, és azonnal el akarja távolítani az elavult rekordokat? Ekkor jön a PowerShell a megmentésre. Ebből a cikkből megtudhatja, hogyan tisztíthatja meg az elavult DNS-rekordokat a PowerShell segítségével.

Mik azok a DNS rekordok

A DNS-erőforrásrekordok a zóna által a zónában lévő erőforrásokról (például gazdagépekről) tárolt információkat tartalmazzák. Egy tipikus erőforrásrekord a következőkből áll:

  • Az erőforrásrekord neve (gazdagépe).
  • Információ arról, hogy mennyi ideig maradhat az erőforrásrekord a gyorsítótárban.
  • Erőforrásrekord típusa, például gazdagép (A) erőforrásrekord.
  • A rekordtípusra jellemző adatok, például a gazdagép IPv4-címe.

Az erőforrásrekordokat közvetlenül, vagy automatikusan is hozzáadhatja, amikor a Windows-alapú, Dynamic Host Configuration Protocol (DHCP) funkcióval rendelkező ügyfelek dinamikus frissítéssel csatlakoznak a hálózathoz.

További információ:Konfigurálja a DNS-tisztítást az elavult DNS-rekordok megtisztításához az AD-ben

A következő típusú erőforrásrekordtípusok jól ismertek:

  • Gazda (A, AAAA) rekordok
  • Alias ​​(CNAME) rekordok
  • Levélcserélő (MX) rekordok
  • Mutató (PTR) rekordok
  • Szolgáltatási hely (SRV) rekordok
  • Névszerver (NS) rekordok
  • Szöveges (TXT) rekord
  • Delegációnév (DNAME) rekord
  • A jogosultság (SOA) rekord kezdete

Ellenőrizze a régi rekordokat a DNS-kezelőben

IndulDNS-kezelőés ellenőrizze a régi DNS-rekordot, amely tartalmazza agazdagépnév,FQDN, ésIP-cím.

Példánkban szeretnénk megtalálni azt a tartományvezérlőt, amelyet lefokoztunk:

  • Gazdanév:DC01-2019
  • FQDN:DC01-2019.exoip.local.
  • IP cím:192.168.1.51

Kattintson a jobb gombbal egy zónára, majd kattintsonTulajdonságok.

KattintsonNévszerverek.

A listában megjelenik a régi kiszolgáló, amely a Name Server (NS) rekord.

A Host (A) rekord jelen van.

A Service Location (SRV) rekord jelen van.

Ha több zónán megyünk keresztül, megtaláljuk az adott AD számítógépes objektum összes elavult DNS rekordját.

Az összes zóna áthaladása és a régi DNS-rekordok eltávolítása időt vesz igénybe. Az is előfordulhat, hogy nem lát egy rekordot, és ott is marad.

Ahelyett, hogy végigmennénk az összes DNS-kiszolgálózónán, és manuálisan eltávolítanánk az AD-számítógép-objektum DNS-rekordjait, automatizáljuk a folyamatot a PowerShell segítségével, és megtisztítjuk az összes elavult rekordot.

Jegyzet:Az Active Directoryban be kell állítania a DNS-öregedést és -tisztítást, így az eltávolítja az elavult dinamikus DNS-rekordokat. Ez ugyan megtisztítja az elavult DNS-rekordokat, de nem távolítja el a régi statikus DNS-rekordokat, és ezt teszi az alábbi PowerShell-szkript.

Távolítsa el az elavult DNS-bejegyzéseket PowerShell-szkripttel

A régi DNS-rekordok eltávolításának kiváló módja a Remove-DNSRecords.ps1 PowerShell-szkript, amely a következő három parancsmagot használja:

  1. Get-DnsServerZoneparancsmagot az elsődleges zónák lekéréséhez.
  2. Get-DnsServerResourceRecordparancsmagot, hogy megtalálja az összes erőforrásrekordot, amely megegyezik az FQDN-nel, a gazdagépnévvel és az IP-címmel.
  3. Remove-DnsServerResourceRecorda visszakeresett DNS-rekordok eltávolításához.

1. lépés: Töltse le a Remove-DNSRecords PowerShell szkriptet

Töltse le és helyezze el a Remove-DNSRecords.ps1 PowerShell-szkriptet a tartományvezérlőnC:scriptsmappát. Ha nem rendelkezik aforgatókönyvekmappát, hozzon létre egyet.

Győződjön meg arról, hogy a fájl blokkolása fel van oldva, hogy elkerülje a hibákat a szkript futtatásakor. További információ a cikkben: Nem digitálisan aláírt hiba a PowerShell-szkript futtatásakor.

Egy másik lehetőség az alábbi kód másolása és beillesztése a Jegyzettömbbe. Adja meg a nevetRemove-DNSRecords.ps1és helyezze be aC:scriptsmappát.

<#
    .SYNOPSIS
    Remove-DNSRecords.ps1

    .DESCRIPTION
    Clean up stale DNS records with PowerShell.

    .LINK
    www.alitajran.com/clean-up-dns-records-powershell/

    .NOTES
    Written by: ALI TAJRAN
    Website:    www.alitajran.com
    LinkedIn:   linkedin.com/in/alitajran

    .CHANGELOG
    V1.00, 01/20/2024 - Initial version
#>

$ServerFQDN = "dc01-2019.exoip.local." #Keep the dot (.) at the end
$ServerHostname = "dc01-2019"
$IPAddress = "192.168.1.51"

$Zones = Get-DnsServerZone | Where-Object { $_.ZoneType -eq "Primary" } |
Select-Object -ExpandProperty ZoneName

foreach ($Zone in $Zones) {
    Get-DnsServerResourceRecord -ZoneName $Zone | Where-Object { 
        $_.RecordData.IPv4Address -eq $IPAddress -or
        $_.RecordData.NameServer -eq $ServerFQDN -or
        $_.RecordData.DomainName -eq $ServerFQDN -or
        $_.RecordData.HostnameAlias -eq $ServerFQDN -or
        $_.RecordData.MailExchange -eq $ServerFQDN -or
        $_.HostName -eq $ServerHostname
    } | Remove-DnsServerResourceRecord -ZoneName $Zone -Force -WhatIf
}
  • 20., 21., 22. sor:Módosítsa a ServerFQDN, ServerHostname és IPAddress értékeket arra az AD számítógép-objektumra, amelyről el szeretné távolítani az elavult DNS-rekordokat.

2. lépés: Futtassa a Remove-DNSRecords PowerShell parancsfájlt

Indítsa el a Windows PowerShellt, és futtassa aRemove-DNSRecords.ps1forgatókönyv.

Jegyzet:A szkript futtatásakor semmi sem fog történni a környezettel, mert a -WhatIf paraméter hozzáadódik a szkripthez. Miután azonosította és megerősítette az elavult rekordokat, távolítsa el a -WhatIf paramétert, és futtassa újra a szkriptet.

C:scripts.Remove-DNSRecords.ps1

Példánkban így néz ki.

What if: Removing DNS resource record @ of type NS from zone _msdcs.exoip.local on DC01-2022 server.
What if: Removing DNS resource record @ of type NS from zone autodiscover.exoip.com on DC01-2022 server.
What if: Removing DNS resource record dc01-2019 of type A from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record @ of type NS from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record DomainDnsZones of type A from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record _ldap._tcp.Default-First-Site-Name._sites.DomainDnsZones of type SRV from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record _ldap._tcp.Default-First-Site-Name._sites.ForestDnsZones of type SRV from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record _ldap._tcp.DomainDnsZones of type SRV from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record ForestDnsZones of type A from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record _ldap._tcp.ForestDnsZones of type SRV from zone exoip.local on DC01-2022 server.
What if: Removing DNS resource record @ of type NS from zone TrustAnchors on DC01-2022 server.

Miután ellenőrizte az adott AD-számítógép-objektum régi DNS-rekordjait, távolítsa el a- Mi lenne, haparamétert, és futtassa újra a szkriptet.

C:scripts.Remove-DNSRecords.ps1

Az összes DNS-rekord sikeresen törlődött az adott AD-számítógép-objektumhoz a Windows Server DNS-ből.

Ennyi!

Következtetés

Megtanulta, hogyan tisztíthatja meg az elavult DNS-rekordokat a PowerShell segítségével. Amikor legközelebb el szeretne távolítani egy DNS-rekordot a DNS-ből, használja a PowerShell-parancsfájlt a DNS-rekordok törléséhez, és ezzel időt takarít meg.

Tetszett ez a cikk? Tetszhet az Office-bővítmények telepítéséhez való hozzáférés letiltása is. Ne felejtsen el követni minket és megosztani ezt a cikket.

Related Posts