2016-12-06 3 views
0

Ich möchte alle öffentlichen IPv6-Adressen von unserem DNS-Server entfernen, z. 2000: a61: 10e3: 8f01 :: oder 2003: d8: 8bd7: c000 :: aber lasst alle link-lokalen oder site-lokalen Adressen, z. fd00 :: unberührt.Wie man bestimmte AAAA Aufzeichnungen vom DNS mit Powershell löscht?

Ich dachte, wie eine Liste aller AAAA-Einträge zu erhalten:

$DNSServer = "dns.domain.net" 
$ZoneName = "domain.net" 
$NodeDNS = $null 
$NodeDNS = Get-DnsServerResourceRecord -ZoneName $ZoneName -ComputerName $DNSServer -RRType AAAA -ErrorAction SilentlyContinue 

Nun ist die Frage, wie all die „public“ Datensätze zu filtern, bevor die Remove-DNSServerResourceRecord Befehl aufrufen?

Remove-DnsServerResourceRecord -ZoneName $ZoneName -ComputerName $DNSServer -InputObject $NodeDNS -Force 

würde alle AAAA-Datensätze entfernen.

Antwort

0

Sie diese Filter verwenden:

Get-DnsServerResourceRecord -ZoneName $ZoneName -ComputerName $DNSServer -RRType AAAA -ErrorAction SilentlyContinue | 
Where-Object {$_.RecordData.IPv6Address.IPAddressToString -match '2000:a61:10e3:8f01' -or ` 
$_.RecordData.IPv6Address.IPAddressToString -match '2003:d8:8bd7:c000' -and ` 
$_.RecordData.IPv6Address.IPAddressToString -notmatch '^fd00' 
} | Remove-DnsServerResourceRecord -ZoneName $ZoneName -WhatIf 

Das Beispiel verwendet Where-Object zu Filterdaten mit bestimmten Zeichenfolge zurückgegeben -match-and und -notmatch für weitere Erläuterungen siehe Get-Help about_Comparison_Operators

ich die -WhatIf Parameter hinzugefügt habe die zeigen, was es hat, bevor sie tatsächlich die Änderung vorzunehmen, nur um sicherzustellen, dass Sie die richtigen Ergebnisse erhalten, vor dem löschen, ob es in Ordnung ist, entfernen Sie die -WhatIf

+0

Vielen Dank für Ihre Eingabe! Das funktioniert, aber ich kann das gefilterte Ergebnis nicht an Remove-DnsServerResourceRecord übergeben. Wenn ich es tun, wie vorgeschlagen, erhalte ich eine Ausnahme: '+ Remove-DnsServerResourceRecord -WhatIf + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ + CategoryInfo: InvalidArgument: (DnsServerResourceRecord: PSObject) [Remove-DnsServerResourceRecord], ParameterBindingException + FullyQualifiedErrorId: InputObjectMissingMandatory, Remove-DnsServerResourceRecord' – Roland

+0

nur die '$ ZoneName' hinzufügen, aktualisiert die Antwort und wenn es dein Problem löst, stimme/akzeptiere die Antwort – Avshalom

+0

Ich musste auch -ComputerName $ DNSServer hinzufügen. Jetzt funktioniert es! – Roland

Verwandte Themen