violak
Goto Top

Powershell DNS neue Domain anlegen

Guten Morgen,

ich möchte gerne auf unserem DNS Server (Windows Server 2016) unter der Primären Zone verschiedene Domains anlegen (rechte Maustaste - New Domain).

Leider finde ich den passenden Powershellbefehl nicht um mir die Domains unter der primären Zone auszulesen, geschweige denn neue Domain anzulegen.

Kann mir da evtl. jemand von Euch einen Tipp geben wie ich das machen kann?

Vielen Dank

Content-Key: 473533

Url: https://administrator.de/contentid/473533

Printed on: April 26, 2024 at 01:04 o'clock

Member: emeriks
emeriks Jul 15, 2019 updated at 10:05:16 (UTC)
Goto Top
Hi,
schau Dir mal DNSCMD an.

dnscmd

Syntax: DnsCmd <Servername> <Befehl> [<Befehlsparameter>]

<Servername>:
  IP-Adresse oder Hostname    -- Remote-DNS-Server oder lokaler DNS-Server
  .                           -- DNS-Server auf lokalem Computer
<Befehl>:
  /Info                      -- Serverinformationen abrufen
  /Config                    -- Server- oder Zonenkonfiguration zurücksetzen
  /EnumZones                 -- Zonen auflisten
  /Statistics                -- Serverstatistikdaten abfragen/löschen
  /ClearCache                -- DNS-Servercache löschen
  /WriteBackFiles            -- Alle Datendateien für Zonen oder Stammhinweise
                                zurückschreiben
  /StartScavenging           -- Initiiert Serveraufräumvorgang
  /IpValidate                -- Remote-DNS-Server überprüfen
  /EnumKSPs                  -- Zählt verfügbare Schlüsselspeicheranbieter auf.
  /ResetListenAddresses      -- Server-IP-Adressen auf Server-DNS-Anforderungen
                                festlegen
  /ResetForwarders           -- Konfigurieren von DNS-Servern für Weiterleitung
                                von rekursiven Abfragen an
  /ZoneInfo                  -- Zoneninformationen anzeigen
  /ZoneAdd                   -- Neue Zone auf dem DNS-Server erstellen
  /ZoneDelete                -- Zone von DNS-Server oder aus Verzeichnisdienst
                                löschen
  /ZonePause                 -- Zone anhalten
  /ZoneResume                -- Zone fortsetzen
  /ZoneReload                -- Zone aus Datenbankdatei (Datei oder
                                Verzeichnisdienst) neu laden
  /ZoneWriteBack             -- Zone in Datei zurückschreiben
  /ZoneRefresh               -- Aktualisierung der sekundären Zone von Master
                                erzwingen
  /ZoneUpdateFromDs          -- Eine in den Verzeichnisdienst integrierte Zone
                                mit Daten aus dem Verzeichnisdienst
                                aktualisieren
  /ZonePrint                 -- Alle Datensätze in der Zone anzeigen
  /ZoneResetType             -- Zonentyp ändern
  /ZoneResetSecondaries      -- Sekundäre
                                Informationen\Benachrichtigungsinformationen
                                für eine Zone zurücksetzen
  /ZoneResetScavengeServers  -- Scavenging-Server für eine Zone zurücksetzen
  /ZoneResetMasters          -- Masterserver der sekundären Zone zurücksetzen
  /ZoneExport                -- Zone in Datei exportieren
  /ZoneChangeDirectoryPartition -- Zone in andere Verzeichnispartition
                                verschieben
  /ZoneSeizeKeymasterRole    -- Schlüsselmasterrolle für eine Zone übernehmen
  /ZoneTransferKeymasterRole -- Schlüsselmasterrolle für eine Zone übertragen
  /ZoneEnumSKDs              -- Zählt die Signaturschlüsseldeskriptoren für
                                eine Zone auf.
  /ZoneAddSKD                -- Erstellt einen neuen Signaturschlüsseldeskriptor
                                für eine Zone.
  /ZoneDeleteSKD             -- Löscht einen Signaturschlüsseldeskriptor für
                                eine Zone.
  /ZoneModifySKD             -- Ändert einen Signaturschlüsseldeskriptor für
                                eine Zone.
  /ZoneValidateSigningParameters -- Überprüft die DNSSEC-Onlinesignaturparameter
                                für eine Zone.
  /ZoneSetSKDState           -- Legt aktive und/oder Standbyschlüssel eines
                                Signaturschlüsseldeskriptors für eine Zone
                                fest.
  /ZoneGetSKDState           -- Ruft den dynamischen Zustand eines
                                Signaturschlüsseldeskriptors für eine Zone ab.
  /ZonePerformKeyRollover    -- Löst einen Schlüsselrollover in einem
                                Signaturschlüsseldeskriptor für eine Zone aus.
  /ZonePokeKeyRollover       -- Löst einen Schlüsselrollover in einem
                                Signaturschlüsseldeskriptor für eine Zone aus.
  /ZoneSign                  -- Signiert die Zone mithilfe von
                                DNSSEC-Onlinesignaturparametern.
  /ZoneUnsign                -- Entfernt DNSSEC-Signaturen aus einer signierten
                                Zone.
  /ZoneResign                -- Erstellt DNSSEC-Signaturen in einer signierten
                                Zone neu.
  /EnumRecords               -- Einem Namen zugeordnete Datensätze auflisten
  /RecordAdd                 -- Datensatz in einer Zone oder Stammhinweisen
                                erstellen
  /RecordDelete              -- Datensatz aus Zone, Stammhinweisen oder Cache
                                löschen
  /NodeDelete                -- Alle einem Namen zugeordneten Datensätze
                                löschen
  /AgeAllRecords             -- Alterung auf Knoten in Zone erzwingen
  /TrustAnchorAdd            -- Neue Vertrauensankerzone auf dem DNS-Server
                                erstellen
  /TrustAnchorDelete         -- Vertrauensankerzone vom DNS-Server oder aus
                                Verzeichnisdienst löschen
  /EnumTrustAnchors          -- Zeigt Statusinformationen für Vertrauensanker
                                an.
  /TrustAnchorsResetType     -- Zonentyp für eine Vertrauensankerzone ändern
  /EnumDirectoryPartitions   -- Verzeichnispartitionen auflisten
  /DirectoryPartitionInfo    -- Informationen zu Verzeichnispartition abrufen
  /CreateDirectoryPartition  -- Verzeichnispartition erstellen
  /DeleteDirectoryPartition  -- Verzeichnispartition löschen
  /EnlistDirectoryPartition  -- DNS-Server zu Partitionsreplizierungsbereich
                                hinzufügen
  /UnenlistDirectoryPartition -- DNS-Server von Replizierungsbereich entfernen
  /CreateBuiltinDirectoryPartitions -- Vordefinierte Partitionen erstellen
  /ExportSettings            -- Einstellungen in DnsSettings.txt im
                                Datenbankverzeichnis des DNS-Servers ausgeben
  /OfflineSign               -- Offlinesignierte Zonendateien, einschließlich
                                Schlüsselgenerierung/-löschung
  /EnumTrustPoints           -- Zeigt Informationen zur aktiven Aktualisierung
                                für alle Vertrauenspunkte an.
  /ActiveRefreshAllTrustPoints -- Führt jetzt eine aktive Aktualisierung für
                                alle Vertrauenspunkte aus.
  /RetrieveRootTrustAnchors  -- Ruft Stammvertrauensanker über HTTPS ab.

<Befehlsparameter>:
  DnsCmd <Befehlsname> /? -- Hilfeinfo zu bestimmtem Befehl

In künftigen Windows-Versionen ist "dnscmd.exe" möglicherweise nicht mehr  
enthalten.

Wenn Sie den DNS-Server derzeit mit "dnscmd.exe" konfigurieren und verwalten,  
sollten Sie auf Windows PowerShell umsteigen.

Geben Sie an der Eingabeaufforderung von Windows PowerShell den Befehl
"Get-Command -Module DnsServer" ein, um eine Liste der Befehle zur  
DNS-Serververwaltung anzuzeigen.
Weitere Information zu Windows PowerShell-Befehlen für DNS finden Sie unter
http://go.microsoft.com/fwlink/?LinkId=217627.

E.
Mitglied: 140447
140447 Jul 15, 2019 updated at 07:35:34 (UTC)
Goto Top
Leider finde ich den passenden Powershellbefehl nicht um mir die Domains unter der primären Zone auszulesen, geschweige denn neue Domain anzulegen.
Dann hast du es überlesen:
Add-DNSServerResourceRecord
Get-DNSServerResourceRecord
DNS Server CMDLets
Member: violak
violak Jul 15, 2019 at 07:45:50 (UTC)
Goto Top
Hallo zusammen,

vielen Dank für Eure Posts.

@ Schneiderlein mit Get-DNSServerResourceRecord bekomme ich alle ARecord und Cname Einträge einer Zone.
Ich möchte doch aber die Domains auslesen.

z.B.

Zone = Contoso.com

Darunter befindet sich dann ja z.B. _sites, _tcp usw.

Da hilft mir dieser Befehl leider nicht weiter.
Member: emeriks
emeriks Jul 15, 2019 updated at 08:19:17 (UTC)
Goto Top
Zitat von @violak:
Ich möchte doch aber die Domains auslesen.
Hast Du Dir überhaupt schon mal die Mühe gemacht, das auszulesen und dann zu sehen, wie die Daten aussehen? Dann hättest Du gesehen, dass das auch nichts weiter als A-Records sind.
Erst wenn Du darunter A-Records mit Namen erstellst, landen diese in der Zonen-Datei. Diese A-Reords lauten dann z.B. so
eins.sub                A	10.10.190.10
Du musst Dir also aus allen vorhandenen A-Records die Sub-Domains selbst zusammensuchen. Also alle A-Records mit "." im Namen.

E.
Member: violak
violak Jul 15, 2019 at 08:37:09 (UTC)
Goto Top
Ok aber wie bekomme ich die denn mit dnscmd angelegt?
Dann muss ich erst nen A Record anlegen mit der er dann die Domain anlegt?

Sorry aber ich verstehe das Vorgehen da nicht so ganz.

Schade, dass man die Domains nicht anders auslesen kann und hier umständlich alles wegfiltern muss.
Member: emeriks
emeriks Jul 15, 2019 updated at 08:43:43 (UTC)
Goto Top
z.B. so:
Google --> Get-DnsServerResourceRecord
Treffer: https://docs.microsoft.com/en-us/powershell/module/dnsserver/get-dnsserv ...
Lesen --> Am Ende Verweise finden auf
  • Set-DnsServerResourceRecord
  • Add-DnsServerResourceRecord
  • Remove-DnsServerResourceRecord
Weitergoogeln.

Add-DnsServerResourceRecord
Treffer: https://docs.microsoft.com/en-us/powershell/module/dnsserver/add-dnsserv ...
dort genannte Beispiele: Example 1: Add an A record

Edit:
Und ja. Records für eine Sub-Domain oder für einen Host unterscheidet .... nichts!
Wenn Du unterhalb einer Sub-Domain einen Host anlegen willst, dann musst Du also in der Zone einen A-Record anlegen für "host.subdomain".
Mitglied: 140447
140447 Jul 15, 2019 updated at 08:53:30 (UTC)
Goto Top
Jopp, da fehlen offensichtlich mal wieder die grundlegendsten DNS Kenntnisse beim TO.
Member: emeriks
emeriks Jul 15, 2019 updated at 08:56:34 (UTC)
Goto Top
Zitat von @140447:
Jopp, da fehlen offensichtlich mal wieder die grundlegendsten DNS Kenntnisse beim TO.
Sowas konkretes wissen die wenigsten "Normal-Admins". Das ist ok.
Ich wollte nur aufzeigen, dass es wirklich nicht schwer ist, dies in der Online-Doku zu finden.
Member: violak
violak Jul 15, 2019 at 09:07:40 (UTC)
Goto Top
Ne ich meine eigentlich etwas anderes.

Ich kann doch, wenn ich mit der rechten Maustaste auf meine primäre Zone gehe "neue Domäne" auswählen und diese dann anlegen .

Warum kann ich das nicht explizit mit Powershell machen? Warum muss ich da solche Umwege gehen?

Was in der GUI so einfach geht muss doch auch in der PS genauso einfach gehen.

Versteht Ihr was ich meine?
Member: emeriks
emeriks Jul 15, 2019 updated at 09:20:12 (UTC)
Goto Top
Zitat von @violak:
Versteht Ihr was ich meine?
Ja, sicher. Aber Du offenbar nicht.
Es gibt keine "Domain"-Records. Ende. Das sind nichts weiter als A-Records.

OK. Teste selbst:
  1. Erstelle eine neue Zone. Nicht AD-integriert. Mit einer neuen Datei.
  2. Erstelle in dieser eine neue Domain.
  3. Gehe ins Kontext-Menü dieser Zone und wähle explizit "Zonendatei aktualisieren" (o.ä.)
  4. Lösche die Zone
  5. Erstelle dieselbe Zone erneut. Nicht AD-integriert. Mit der vorhandenen Datei.

Du wird sehen, dass die "domain" jetzt plötzlich als Host angezeigt wird.
Nicht so, wenn Du unterhalb der Domain noch einen A-Record mit Namen angelegt hast.
Mitglied: 140447
140447 Jul 15, 2019 updated at 09:22:42 (UTC)
Goto Top
Zitat von @violak:

Ne ich meine eigentlich etwas anderes.

Ich kann doch, wenn ich mit der rechten Maustaste auf meine primäre Zone gehe "neue Domäne" auswählen und diese dann anlegen .

Warum kann ich das nicht explizit mit Powershell machen? Warum muss ich da solche Umwege gehen?

Was in der GUI so einfach geht muss doch auch in der PS genauso einfach gehen.

Versteht Ihr was ich meine?
Du verstehst es offensichtlich nicht. Ein "Ordner", das ist nur ein Gruppierungs-Hilfsmittel der GUI ohne irgendeinen Record ist eben sinnlos face-smile. Erst wenn es dort mindestens einen Record gibt macht das überhaupt Sinn. Und die erstellt man eben mit namedeshosts.subdomain oder eben für die Subdomain selbst mit leerem Namen als "subdomain" im A Record.
Mitglied: 140447
140447 Jul 15, 2019 updated at 09:40:51 (UTC)
Goto Top
Falls es immer noch nicht klar ist:
"If you only create an empty domain (subdomain in your zone) with the GUI; the file is not updated! When you stop & start the DNS server, you'll even see that the empty domain is gone.  
So that means that using 'New Domain..." from the GUI really doesn't do anything in your zone, until you add a record."  
https://social.technet.microsoft.com/Forums/en-US/d9ddf720-8758-470b-b87 ...
https://social.technet.microsoft.com/Forums/windows/en-US/5624ffbf-96dd- ...