PowerShell DNS-Einträge ändern?

4 Antworten

Ich verstehe die Frage nicht 100%ig.

Du willst auf einem DNS-Server in deiner Firma alle DNS-Einträge löschen und spezifische neue hinzufügen?

Eine Übersicht über die Powershell-Befehle für DNS findest du hier: https://technet.microsoft.com/de-de/library/jj590772%28v=wps.630%29.aspx


EGitarre 
Beitragsersteller
 20.05.2016, 11:08

Nicht auf dem Server, sondern auf den einzelnen PCs der Nutzer.

Es geht darum, dass wir bald nen neuen DNS Server nutzen, weshalb wir auf allen 300+ Rechnern unserer Abteilung die DNS Einträge überarbeiten müssen. Damit das zeitlich nicht so viel Aufwand ist sollte ich mir das jetzt mal angucken ob ich das schaffe, dass das automatisch geht.

Mit der Befehlsliste habe ich gearbeitet, habe das allerdings nicht so hinbekommen, wie ich es gerne hätte =D

1
Hyp3rn0v4  20.05.2016, 11:10
@EGitarre

Also willst du nur die DNS-Einstellungen des Netzwerkadapters auf die IP des neuen DNS-Servers umbiegen? Wieso macht ihr das nicht über DHCP? Das wäre doch deutlich einfacher.

Ansonsten halt über ein Batch-File

Primärer DNS:


netsh interface ipv4 set dns "Local Area Connection" static 192.168.0.2


Sekundärer:

netsh interface ipv4 add dns "Local Area Connection" 192.168.0.3 index=2




2
Hyp3rn0v4  20.05.2016, 11:13
@Hyp3rn0v4

Den Namen des Netzwerkadapters kriegst du über die ipconfig

1
EGitarre 
Beitragsersteller
 20.05.2016, 11:20
@Hyp3rn0v4

Wäre auch ne Idee, guck ich mir mal an!

Vllt sollte ich mein Problem mit PowerShell mal anders beschreiben.

Prinzipiell ist so Programmierung für mich vom logischen Denken her nicht das Problem, aber wenn ich jetzt z.B. den Befehl wie er von MS angegeben wird

"

Parameter Set: Remove2
Remove-DnsClientNrptRule [-Name] <String> [-AsJob] [-CimSession <CimSession[]> ] [-Force] [-GpoName <String> ] [-PassThru] [-Server <String> ] [-ThrottleLimit <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

"

angucke, verstehe ich was das macht, aber in meiner eigenen Programmierung weiß ich mit den ganzen Parametern dahinter nix anzufangen. Klar, Name als String ist noch verständlich für mich, bei CimSession z.B. hört es dann aber schon auf, und das dann ordentlich in mein eigenes Programm zu bringen ist dann eher so ne Try-Error geschichte =D

0
Hyp3rn0v4  20.05.2016, 11:30
@EGitarre

Nutzt ihr NRPT? Falls ja, dann ist die Ausgangssituation wieder eine ganz andere. Aber dann verstehe ich nicht, was der Wechsel des DNS-Servers damit zu tun hat. Oder soll NRPT bei allen Clients rausgeworfen werden?

Wenn es dir, wie du oben schreibst, nur darum geht, dass der DNS-Server getauscht wird und ihr das den Clients irgendwie sagen müsst, dann bist du da in der falschen Richtung unterwegs.

Vielleicht liest du dich erst nochmal ein, wie DNS funktioniert. Dann dürfte dir einiges klarer werden.

1
EGitarre 
Beitragsersteller
 20.05.2016, 11:33
@Hyp3rn0v4

Und bei den Batch Dateien habe ich grade bemerkt, dass ich nur die DNS-IPs verändere. Wenn ich das Richtig verstanden habe soll ich nach Möglichkeit die DNS Adressen in der Reihenfolge (also unter dem Reiter "Erweitert-DNS" und die DNS Suffix ändern. Das geht mit den Batch Datein ja nicht so, denke ich =D Trotzdem Danke^^

0
EGitarre 
Beitragsersteller
 20.05.2016, 11:35
@Hyp3rn0v4

NRPT sagt mir leider gar nix, das war nur die Befehlszeile, die unter deinem Link den Removebefehl gegeben hatte =D

Naja, ich denke, das ist dann noch ein wenig zu hoch für mich ohne da Erfahrung zu haben, bin grade noch im ersten Ausbildungsjahr und wir haben eigentlich noch gar nix gemacht außer in der Schule ein bisschen Java =D

Trotzdem ein dickes Dankeschön!

0
Hyp3rn0v4  20.05.2016, 12:16
@EGitarre

Ah, jetzt kommen wir der Sache näher!

Habe mal ein bisschen rumprobiert.
Die entsprechenden Settings liegen in der Registry unter

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Die entsprechenden zu ändernden Schlüssel heißen "SearchList" für den Suffix und "NameServer" für den DNS.

Mit dem CMD-Programm regini.exe kannst du Registry-Keys relativ einfach ändern/setzen.

Erstelle dir eine Textdatei mit folgendem (angepassten) Inhalt:

\Registry\Machine\System\CurrentControlSet\Services\TCPIP\Parameters
SearchList="suffix1,suffix2,suffix3"
NameServer="IPDNS1,IPDNS2,IPDNS3"

Die Zeilenabsätze müssen genau so bleiben.

Dann speicherst du dir das Textdokument irgendwo. Mach die CMD als Administrator auf und rufe Regini dann mit der TXT zusammen auf.

Beispielsweise so:

regini.exe C:\regconfig.txt

Das kannst du dir ja relativ leicht in eine Batch-Datei basteln.

Alternativ verteilt ihr die Registry-Änderung einfach über eine GPO.

Nach der Änderung muss der PC einmal neu gestartet werden!

Denk daran, deine Registry zu sichern, bevor du da rumtestest, nicht, dass du dir aus Versehen was zerschießt.

0
Etter  21.05.2016, 21:20
@EGitarre

Öhm mal so als Einwurf: Habt ihr keinen DHCP? Eig. müsste das doch nur dort geändert werden. Sobald sich die Clients eine neue IP holen, sollte dann der neue DNS-Server genutzt werden.

Oder habt ihr die IP-Adressen bzw. den DNS statisch eingetragen? Wenn ja frage ich mich warum?

0

Dann zeig doch mal her was du bisher hast?

Btw. Wenn deine Kollegen/ausbilder dir sowas nicht zeigen können, denke mal über den Arbeitgeber nach;-)


EGitarre 
Beitragsersteller
 20.05.2016, 11:05

Naja, wir sind hier in nem großen Betrieb und es gibt bestimmt jemanden, der das kann, aber die Abteilung in der ich grade bin spezialisiert sich auf die allgemeine Rechner adminstration, die Programmierer sitzen woanders =D

1

Ich werde dir zumindest vorerst keine komplette Lösung geben, da ich mehrere Punkte sehe.

1) Ihr bekommt einen neuen DNS-Server der auf allen Clients eingetragen werden soll. Benutzt ihr keinen DHCP oder ist die DNS-Adresse statisch eingetragen? Wenn ja warum?

2) Wie ist der Updatestand der Clients? Welche Powershellversion ist drauf/welches Betriebssystem? Irgendwelche Clients welche nicht auf Windows arbeiten?

3) Was hast du bisher mit Powershell gemacht? Hast du vorher schonmal programmiert? Wie ist dein Wissen da?

4) Auch wenn die Leutchen hier schreiben, solltest du ein etwaiges selbstgeschriebenes Script nicht hier posten, da es mWn deinem Arbeitgeber gehört (sofern während der Arbeitszeit geschrieben) und du somit keinerlei Recht auf Veröffentlichung hast.

5) Ich sehe da schon Möglichkeiten, leider wird es einfacher oder schwerer je nachdem wie die Umgebung von euch gestaltet ist.

Wie wäre es wenn du (zuerst) deine Arbeit einmal her zeigst?

Dann könnte man anhand deiner bisherigen Arbeit sagen was falsch war und dir die Fehler besser erläutern ;)

Grüße,

iMPerFekTioN

Woher ich das weiß:Berufserfahrung – Eigenständiges lernen während und nach meiner Ausbildung

EGitarre 
Beitragsersteller
 20.05.2016, 11:04

Würde ich, wäre ich so klug gewesen und hätte die Datei mitgenommen, bin schon Zuhause und die Datei liegt noch auf dem Rechner bei der Arbeit =D

1
FlixHD  20.05.2016, 11:05
@EGitarre

VPN Verbidnung aufbauen?
Kollegen fragen das er sie dir schickt
Bis Montag warten
Einfach neue erstellen? (Sollte ja nicht allzu schwer sein..)

1
iMPerFekTioN  20.05.2016, 11:08
@FlixHD
PS C:\> Get-DnsServerResourceRecord -Name foo -RRType A -ZoneName test2.net

HostName RecordType Timestamp TimeToLive RecordData
-------- ---------- --------- ---------- ----------
foo A 0 01:00:00 10.0.0.1

PS C:\> Remove-DnsServerResourceRecord -ZoneName test2.net -Name foo -RRType A -Force
0