DNS-Server unter Windows per Batch mit netsh ändern

Ich hatte letztens folgendes Problem: Nach einer AcrtiveDirectory-Migration haben sich die DNS-Server für die Domäne geändert. Folglich mussten auf allen Clients (Windows XP und Windows 7) die neuen DNS-Server eingetragen werden. Mit DHCP ist das ja ganz einfach – nur bei meinem Fall waren es Clients mit statischer IP-Konfiguration. Und es waren viele…

Deshalb hab ich mir ein Script (eine Batch) gebaut, mit der ich das automatisiert machen lassen kann:

echo off
ver | find "XP"
if errorlevel 1 (goto :7) else (goto :XP)

:XP
echo WinXP
ipconfig | find "Ethernet" >> nic.tmp
set /P nictemp=<nic.tmp
del nic.tmp
netsh interface ip set dns name="%nictemp:~16,-1%" static 1.2.3.4 
netsh interface ip add dns name="%nictemp:~16,-1%" 1.2.3.5 index=2
goto :end

:7
echo Win7
ipconfig | find "Ethernet" >> nic.tmp
set /P nictemp=<nic.tmp
del nic.tmp
netsh interface ip set dns name="%nictemp:~17,-1%" static 1.2.3.4
netsh interface ip add dns name="%nictemp:~17,-1%" 1.2.3.5 index=2
goto :end

:end
exit

Kurze Erklärung: zuerst wird überprüft ob Windows XP oder darüber (Vista und Windows 7).

Danach wird der Name der Netzwerkkarte ausgelesen – weil man ja nicht hundertprozentig sicher sein kann das die Karte „LAN-Verbindung“ heißt. Gibt immer ein paar Helden die die Karte umbenennen oder es ist mal eine zweite Karte eingebaut worden, etc…

Dann wird der Name in den netsh-Befehl übergeben (dabei wird vorne und hinten noch Text abgeschnitten) – und fertig ist die Umstellung!

Einen Haken gibt es an der Sache: Ein normaler Benutzer hat nicht die Rechte die Netzwerkeinstellungen zu ändern. Da muss man ein wenig nachhelfen:

Es gibt da verschieden Wege: Man kann die Benutzer in die lokale Gruppe der Netzwerkkonfigurations-Operatoren mit aufnehmen (lässt sich per GPO machen) oder man gibt den Usern für diese Aktion lokale Admin-Rechte (per GPO) und entfernt diese nach der Aktion oder (so hab ich es gemacht) man lässt das Script in einem Login-Script mit Admin-Rechten laufen (z.B mit dem Tool RunasSPC http://www.robotronic.de/runasspc.html).

Mir hat es geholfen – hat super funktioniert 🙂

Update: Unter http://blog.devilatwork.de/dns-umstellung-per-batchfile/ hat das Script jemand noch ein wenig aktualisiert (und die ganzen XP-Altlasten entfernt).

4 Kommentare

Kommentar verfassen