DNS-Einträge werden in der Regel dynamisch von Ihrem DNS-Server verwaltet. Es kann jedoch vorkommen, dass Sie manuell verschiedene Arten von DNS-Einträgen erstellen, bearbeiten oder entfernen müssen. Oder Sie fügen verschiedenen DNS-Aufgaben sogar Automatisierungsskripte hinzu. In solchen Fällen ist die Verwendung von PowerShell-DNS-Cmdlets die beste Lösung.
Zu diesem Blogbeitrag gehört ein Begleitvideo von David Lamb, einem Beitragenden von TechSnips. Sie können es sich gerne ansehen oder, wenn Sie Text bevorzugen, weiterlesen!
DNS-Einträge mit PowerShell-DNS-Cmdlets anzeigen
Sie können alle Ressourceneinträge für eine bestimmte DNS-Zone anzeigen, indem Sie einfach das PowerShell-DNS-Cmdlet Get-DnsServerResourceRecord
verwenden. Mit diesem Cmdlet können Sie den Parameter ZoneName
angeben, der alle DNS-Einträge in dieser Zone auflistet.
Wie Sie unten sehen können, generiert dies eine ziemlich umfangreiche Liste von Einträgen.

Dieses Verhalten verdeutlicht einen der Vorteile dieses bestimmten Cmdlets gegenüber der grafischen DNS-Konsole. Die Ansicht zeigt Ihnen alle Einträge für diese Zone, unabhängig davon, in welchem Ordner sie sich befinden. In der grafischen Konsole würde es einige Zeit dauern, um diese Informationen zusammenzufügen.
Jetzt diese Liste etwas ausdünnen. Mit demselben Befehl, aber unter Verwendung des Parameters RRType
, um nach A-Records (IPv4-Hosts) zu suchen und nach Einträgen zu filtern, bei denen die Time To Live (TTL) größer als 15 Minuten ist, erhalten wir eine etwas handlichere Liste. Sie können den Where-Object
-Befehl verwenden, um nach vielen verschiedenen Eigenschaften von DNS-Einträgen zu filtern.

Einen Schritt weitergehend können Sie auch nach Einträgen in einer anderen DNS-Zone und sogar auf anderen DNS-Servern suchen.
Im folgenden Beispiel suchen wir nach A-Records in der Zone canada.corp.ad auf dem DNS-Server DC03

Hinzufügen und Entfernen von A-Host-Einträgen
Um einen Host-Eintrag hinzuzufügen, müssen Sie den PowerShell DNS-Befehl Add-DnsServerResourceRecordA
verwenden. Im folgenden Beispiel möchten Sie einen Host-Eintrag für einen neuen Drucker hinzufügen, den Sie dem Netzwerk hinzufügen. Er wird zur Zone corp.ad mit dem Namen reddeerprint01 hinzugefügt, und seine IP-Adresse lautet 192.168.2.56.

Wenn sich herausstellt, dass Sie einen Eintrag entfernen müssen, zum Beispiel weil der Drucker außer Betrieb genommen wurde, können Sie den folgenden Code verwenden, um den gerade erstellten Host-Eintrag zu entfernen:
Hinzufügen und Entfernen von AAAA-Host-Einträgen
Es ist genauso einfach, einen IPv6-Host-Eintrag hinzuzufügen. Diese Einträge unterscheiden sich jedoch geringfügig, da sie als AAAA-Einträge aufgeführt sind. Sie werden feststellen, dass wir nun das PowerShell-DNS-Cmdlet Add-DnsServerResourceRecordAAAA
verwenden. Es ist eine subtile Veränderung, aber eine wichtige.
Fügen Sie einen Eintrag zur Zone corp.ad für den neuen IT-Intranet-Server unter fc00:0128 hinzu und überprüfen Sie dann schnell mit dem folgenden Befehl, ob er erstellt wurde.

Hinzufügen von Rückwärtssuche-Einträgen (PTR)
Mit PowerShell-DNS-Cmdlets können Sie auch PTR-Einträge hinzufügen. Ein Rückwärtssuche-Eintrag ermöglicht es dem Client, einen DNS-Server abzufragen, um den Hostnamen für eine angegebene IP-Adresse anzufordern.
Das Erstellen eines PTR-Eintrags ist ein relativ einfacher Vorgang, aber es gibt eine wichtige Information, die Sie kennen müssen, bevor Sie PTR-Einträge hinzufügen. Rückwärtssuche-Zonen werden standardmäßig nicht erstellt. Sie müssen Ihre Rückwärtssuche-Zone einrichten, bevor Sie Einträge hinzufügen. Glücklicherweise ist dies relativ einfach zu erledigen.
Erstellen einer DNS-Zone
Verwenden Sie das PowerShell-DNS-Cmdlet Add-DnsServerPrimaryZone
, um eine neue DNS-Zone zu erstellen. In diesem Fall geben Sie bei Erstellung einer Rückwärtssuche-Zone die Netzwerk-ID an.
In diesem Beispiel habe ich mich auch dafür entschieden, den Replikationsumfang auf die gesamte AD-Gesamtstruktur zu setzen, und ich habe speziell DC03 als bevorzugten DNS-Server festgelegt.

Jetzt, da die Reverse-Lookup-Zone vorhanden ist, können Sie einen PTR-Eintrag für einen neuen Drucker mit dem Namen CYQF-Printer-01.canada.corp.ad und der IP-Adresse 192.168.2.56 hinzufügen. Da dieser Eintrag für die Zone canada.corp.ad bestimmt ist, zielen Sie auf den DNS-Server DC03.
Jetzt, da die Zone erstellt ist, erstellen wir einen PTR-Eintrag mit dem Befehl Add-DnsServerResourceRecordPtr
. Bei der Verwendung dieses Cmdlets ist es wichtig, einige Dinge zu beachten.
- Sie müssen den Zonennamen unter Verwendung der Netzwerk-ID in umgekehrter Reihenfolge angeben und dann .in-addr.arpa hinzufügen. Für unsere Netzwerk-ID 192.168.2.0/24 lautet der Zonenname 2.168.192.in-addr.arpa.
- Der Parameter
Name
ist der Hostteil der IP-Adresse. Für unseren Drucker mit der IP-Adresse 192.168.2.56 ist derName
56.
Sobald Sie diese Informationen haben, ist der Code zur Erstellung des PTR-Eintrags relativ einfach, wenn auch etwas lang:

Alias-Einträge (CNAME) hinzufügen
Um dieses Tutorial abzuschließen, erstellen Sie einen Alias-Host-Eintrag oder CNAME-Eintrag mit dem Befehl Add-DnsServerResourceRecordCName
.
Diese Einträge ermöglichen es Ihnen, einen Alias für einen vorhandenen Host-Eintrag in der Zone anzugeben. Dies ist besonders nützlich, wenn Sie beispielsweise den Finanzbenutzern eine Adresse für ihre webbasierte Finanzanwendung bereitstellen möchten.
Sie könnten ein Alias mit dem Namen finance erstellen und es auf den Webserver webapp25.corp.ad verweisen lassen. Sobald die Anwendung auf den neuen Webserver mit einem neuen Hostnamen migriert wurde, ändern Sie den CNAME-Eintrag so, dass finance auf den neuen Host verweist. Auf diese Weise müssen die Benutzer ihre Lesezeichen nicht aktualisieren. Sie können weiterhin auf ihre Anwendung unter der Adresse finance.corp.ad zugreifen.

Wenn Sie tiefer in die DNS-Thematik eintauchen und weitere fortgeschrittene Funktionen kennenlernen möchten, sollten Sie sich unbedingt alle anderen DNS-Beiträge hier ansehen.
Zusammenfassung
Dies schließt unser Tutorial zur Verwendung von PowerShell mit DNS-Einträgen ab. Mit dem hier gesammelten Wissen sollten Sie nun in der Lage sein, große Teile von DNS-Einträgen interaktiv zu verwalten oder sogar zu automatisieren, wenn Sie es möchten!