Mit dem Kommando “dsmove” kann man seit Windows Server 2003 AD-Objekte per Kommandozeile verschieben. Anders als die anderen ds*-Tools kommt dsmove leider nicht mit dem Piping klar: Zwar kann man etwa die Ausgabe eines “dsquery”-Befehls per Pipe an dsmove weiterleiten und so nacheinander mehrere Objekte an den Befehl verfüttern – doch dsmove wird nur das erste übergebene Objekt verschieben und danach einen Fehler ausgeben. Leider gilt das auch noch in Windows Server 2008 R2.
Möchte man eine Massenverschiebung ausführen, so muss man sich mit folgendem Trick behelfen. Das Kommando verschiebt alle Objekte, deren Anmeldename mit “A” beginnt, in eine andere OU. Achtung, die “for”-Zeile bis zur zweiten öffnenden Klammer ist eine einzige Zeile.
- for /f "delims=" %%a in ('dsquery user "OU=AlteOU,DC=dom,DC=faq-o-matic,DC=net" -samid a* -limit 0') do (
- dsmove %%a -newparent "OU=NeueOU,OU=DC=dom,DC=faq-o-matic,DC=net"
- )
Diese Syntax gilt bei Ausführung per Batch – direkt auf der Kommandozeile muss man “%%a” in “%a” ändern. Möchte man das zunächst gefahrlos testen, so fügt man vor dem “dsmove” noch das Kommando “ECHO” ein und leitet die Ausgabe in eine Datei um. Dann wird dsmove nicht aktiv, sondern das Kommando erzeugt nur die Kommandos.
Achtung: Auch mit Umlauten kommt diese Technik nur unter bestimmten Umständen klar, nämlich dann, wenn die Codepage des CMD-Fensters auf 850 steht. Das ist zwar normalerweise der Fall, aber um sicherzugehen, sollte man in einem Batch zu Beginn das Kommando “chcp 850” einfügen. Die Schalter “uc/uci/uco” der ds*-Tools helfen nicht, weil sie keine gültigen Daten weitergeben.
(Hier noch der Verweis auf meine Fundstelle – wie immer bei ExpertsExchange ganz nach unten scrollen:
http://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Batch/Q_22997808.html)
Verwandte Beiträge:
- Warum muss eine Datenbank zum Backup konsistent sein?
Aus einer Diskussion: Ein Berater ist der Ansicht, ein sog. “Hot Backup” einer relationalen Datenbank wie SQL Server, Oracle oder... - Active-Directory-Massenoperationen mit AdMod und AdFind
Windows Server 2003 enthält die so genannten "ds*-Tools": Eine Sammlung von Kommandozeilenprogrammen, die Massenoperationen an Active Directory zulassen. Zu diesen... - Rätselhafter Fehler
Ich wollte eine Software installieren, es handelte dsich dabei um die Technical Preview von Office 2010 … Nach der englischen... - Wo erhalte ich Informationen zu einem Stop-Fehler (Bluescreen)?
Ein "Blue Screen of Death" (BSOD oder schlicht Bluescreen) zeigt an, dass Windows einen Systemfehler festgestellt und sich deshalb heruntergefahren... - Wo finde ich nähere Informationen zu Fehler 4711?
Hier die beiden wichtigsten Hilfsmittel: Die Microsoft Knowledge Base Die Event-ID-Datenbank eventid.net ...
http://faq-o-matic.net/?p=2185



Kategorie:
Translate EN

