Logo faq-o-matic.net
Logo faq-o-matic.net

dsmove und sein beständiger Fehler

von veröffentlicht am18. März 2010, 10:29 Uhr Kurzlink http://faq-o-matic.net/?p=2185 Zitatlink
Kategorie Kategorie: Active Directory, AD: Daten bearbeiten, Batch   Translate with Microsoft Translator Translate EN
Zuletzt aktualisiert: 28. Mai 2010

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.

  1. for /f "delims=" %%a in ('dsquery user "OU=AlteOU,DC=dom,DC=faq-o-matic,DC=net" -samid a* -limit 0') do (
  2.   dsmove %%a -newparent "OU=NeueOU,OU=DC=dom,DC=faq-o-matic,DC=net"
  3. )

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:

  1. 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...
  2. 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...
  3. Rätselhafter Fehler
    Ich wollte eine Software installieren, es handelte dsich dabei um die Technical Preview von Office 2010 … Nach der englischen...
  4. 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...
  5. Wo finde ich nähere Informationen zu Fehler 4711?
    Hier die beiden wichtigsten Hilfsmittel: Die Microsoft Knowledge Base Die Event-ID-Datenbank eventid.net ...

© 2005-2012 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!