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).

Öffentliche Ordner Datenbank lässt sich nicht entfernen

Ich hatte letztens das Problem, dass sich bei einer Transition eines Exchange 2007 auf Exchange 2010 die Datenbank der Öffentlichen Ordner auf dem Exchange 2007 – nach erfolgreicher Replikation – nicht löschen lies…

Beim löschen des PublicFolder-Datastores kam folgender Fehler:

Die Öffentliche Ordner-Datenbank ‚Public-Ordner‘ kann nicht gelöscht werden.

Das Objekt ist schreibgeschützt, weil es mit einer zukünftigen Version von Exchange erstellt wurde: 0.10 (14.0.100.0). Die aktuelle unterstützte Version ist 0.1 (8.0.535.0).

Ich habe diese Datenbank dann über ADSIEDIT entfernt:

– Konfiguration -> Configuration -> Services -> Microsoft Exchange -> Exchange -> Administrative Groups -> CN=Exchange Administrative Group (FYDIBOHF23SPDLT) -> Server -> <Name des alten Servers> -> InformationStore

Dort sind die Speichergruppen aufgelistet. Einfach die Speichergruppe des Öffentlichen Ordners entfernen.

Danach hat sich mein Exchange 2007 wunderbar und ohne Fehler deinstallieren lassen 🙂