DNS-Umstellung per Batchfile

Wenn in einer Umgebung mit vielen Rechnern die DNS-Einträge angepasst werden müssen und bisher, aus welchen Gründen auch immer, kein DHCP verwendet wird kann folgendes von mir modifiziertes Batch-Skript helfen:

 

Was bewirken die einzelnen Zeilen des Skriptes?

 

Zur Sicherheit habe ich ein Timeout eingebaut, da man das Skript idealerweise per Gruppenrichtlinie als Startskript verteilen sollte.

Danach wird ein Netzlaufwerk nach einer Datei durchsucht die den Namen des Computers trägt, welcher mit Hilfe der Umgebungsvariable ermittelt wird. Wenn die Datei gefunden wird springt das Skript direkt zur Marke „ENDE“ und es wird nichts weiter ausgeführt, da das Skript bereits einmal durchgelaufen ist.

Wird die Datei nicht gefunden wird per ipconfig die Netzwerkkonfiguration ausgelesen und in eine Datei umgeleitet.

 

Mit dieser Schleife wird die zuvor erstellte ipconfig-Datei Zeile für Zeile ausgelesen. Es wird solange die Variable nictemp für die Zuordnung des Netzwerkadapters mit dem aktuell gefundenen Netzwerkadapter überschrieben bis der Netzwerkadapter mit dem gewünschten IP-Bereich gefunden wurde. Dies ist besonders hilfreich in Umgebungen wo es viele physische bzw. virtuelle Netzwerkadapater, z.B. von VMware oder VirtualBox, gibt.

Wurde der richtige Adapter gefunden wird eine Datei erstellt die dies symbolisiert, sodass im weiteren Schleifendurchgang die Variable nicht mehr überschrieben wird.

 

Die aktuellen Einstellungen des Netzwerkadapters können nun überschrieben werden. Der zuvor ermittelte Name des Netzwerkadapters aus der ipconfig-Datei muss dabei noch etwas umformatiert werden. Die ersten 17 Zeichen („Ethernet-Adapter“ mit folgendem Leerzeichen) und der abschließende Doppelpunkt werden entfernt.

Mit Hilfe der Angabe eines Index-Wertes kann man die Reihenfolge der neu einzutragenden DNS-Server bestimmen bzw. überschreiben.

Zu guter Letzt werden die temporären Textdateien wieder entfernt und eine Datei mit dem Computernamen wird erstellt, die am Anfang des Skriptes gesucht wurde. So erhält man gleich eine schöne Übersicht auf welchem Computer das Skript schon gelaufen ist und es wird dort der DNS-Eintrag nicht mehr angepasst.

Ob das Skript noch in älteren Windows-Versionen noch läuft habe ich nicht getestet. Unter Windows 7 und 8 funktioniert es jedenfalls problemlos.

Die Grundlage für dieses Skript habe ich hier ausgegraben. Dort gibt es auch noch eine Fallunterscheidung für Windows XP.

Schreibe einen Kommentar