Request for help – ROBOCOPY-Dummfug unter Windows Vista

Geschätzte Leser, vielleicht könnt Ihr mir mit nachfolgend beschriebenem, seltsamen Verhalten des Werkzeugs ROBOCOPY (“Robust File Copy for Windows”) unter Windows Vista helfen.

ROBOCOPY ist ein Werkzeug über das Windows Resource Kit erhältlich ist. Seit Windows Vista ist es direkt im Betriebssystem enthalten, also ohne extra Resource Kit.

Der Zweck von ROBOCOPY ist es, ein stabilerer Ersatz für das XCOPY-Werkzeug zu sein. Also fehlertoleranter, mehr Funktionen, usw.

Doch zum eigentlichen Problem:

Endlos-Rekursion bei Verwendung von ROBOCOPY auf Windows-Vista-Laufwerken

Wenn ich ROBOCOPY verwende um Daten von meinem Windows-Vista-Rechner zu sichern bekomme ich eine Endlos-Rekursion beim Iterieren der Quellordner.

Dabei ist es egal, ob ich das lokale, Windows-Vista-eingebaute ROBOCOPY verwende oder ob ich von einem Windows-2003-Server aus via Netzwerk-Zugriff (UNC) die zu sichernden Ordner verarbeiten lasse.

Zunächst sind die interierten Ordner laut Ausgabe korrekt, irgendwann fängt er dann an, einen Ordner “Anwendungsdaten” mehrfach anzuhängen. Es werden dann auch Inhalte darin verarbeitet, und irgendwann wieder eine seitere Ebene “Anwendungsdaten” angehängt und erneut etwas verarbeitet.

Ein Fragment sieht z.B. so aus:

c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Adobe\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\8.0\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\8.0\Cache\

c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\8.0\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\8.0\Cache\

c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\8.0\
c:\users\ukeim\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\Acrobat\8.0\Cache\

usw.

Interessanterweise gibt es zwar den Ordner “C:\Users\ukeim\AppData\Local“, nicht jedoch einen Ordner “C:\Users\ukeim\AppData\Local\Anwendungsdaten“.

Und schon gar nicht weiter verschachtelte gleichen Namens. Einen Ordner “Adobe” gibt es als “C:\Users\ukeim\AppData\Local\Adobe“, nicht jedoch als “C:\Users\ukeim\AppData\Local\Anwendungsdaten\Adobe“.

Das hier ist eine Beispiel-Ausgabe einer abgebrochener Endlos-Rekursion.

Die von mir verwendete Befehlszeilenparameter sind

/XO /S /NP /S /E /COPY:DAT /MIR /R:0 /W:0

Fragen

Ist das ein Bug im Windows-Vista-(Datei-)System, oder sind schlicht meine ROBOCOPY-Befehlszeilenparameter so falsch, dass Sie zwar unter Windows XP bisher funktioniert haben, nicht mehr aber unter Windows Vista?

Falls es die Parameter sind, was sollte ich stattdessen nehmen?

Falls es ein Bug in Windows-Vista ist, gibt es einen Workaround?

Antworten?

Herzlichen Dank schon mal für Eure kompetenten Antworten! :-)

44 thoughts on “Request for help – ROBOCOPY-Dummfug unter Windows Vista

  1. Danke, Elke. Die XP-Version bringt ja trotzdem die Fehler bei Zugriff auf die Vista-Partition, selbst von einem anderen Rechner vom Netzwerk aus.

  2. Cooler Tipp, Markus und “Sdf”.

    mit “/XJD” und “/XJF” geht’s, allerdings nur unter Vista:

    /XJD :: Schließt Abzweigungspunkte für Verzeichnisse aus.
    /XJF :: Schließt Abzweigungspunkte für Dateien aus.

    Mit ROBOCOPY-Versionen vor Windows Vista geht es mit “/XJ“:

    /XJ : eXclude Junction points. (normally included by default).

    Wollt Ihr ne kostenlose Lizenz vom zeta producer Desktop 7 als Dankeschön haben?

  3. Nachdem ich das jetzt so toll gelöst habe, dank Eurer Tipps, kann ich die testweise erstellten Backups gar nicht mehr löschen, weil Windows sich beschwert, der zu löschende “Quellpfad ist zu lang”.


    Klick für Großbild

    Die Ordnerstruktur sieht so aus:


    Klick für Großbild

    Ich vermute mal, ich werde diese Ordner nie nie nie wieder weg bekommen, oder gibt es doch eine Chance?

  4. Mist. Sowohl Eraser als auch Unlocker tüddln nicht. Eraser stürzt ab und Unlocker macht schlicht nix.

    Das mit Subst hab ich nicht kapiert…

  5. Man gebe in einer Eingabeaufforderung folgendes ein: “subst /?” und da Du studiert hast klappts dann auch mit löschen (nicht zuviel auf einmal)!

  6. Danke, Onkl :-)

    Das mit “subst /?” habe ich schon gemacht, ich frage mich nur was das mit dem Löschen zu tun hat???:

    Microsoft Windows [Version 6.0.6000]
    Copyright (c) 2006 Microsoft Corporation. Alle Rechte vorbehalten.
    
    C:\Users\ukeim>subst /?
    Weist einem Pfad eine Laufwerkbezeichnung zu.
    
    SUBST [Laufwerk1: [Laufwerk2:]Pfad]
    SUBST Laufwerk1: /D
    
      Laufwerk1:       Laufwerkbezeichnung, die dem Pfad zugewiesen werden soll.
      [Laufwerk2:]Pfad Laufwerk und Pfad, die durch Laufwerk1: angesprochen
                       werden sollen.
      /D               Hebt die Zuordnung für das (virtuelle) Laufwerk1 wieder auf.
    
    SUBST ohne Parameter zeigt die mit SUBST erstellten, virtuellen Laufwerke an.
  7. Och Uwe ….

    Also zunächst verbindest ein Laufwerk mit einem Pfad – ziemlich weit oben in Deinem Baum-Dingens. Dann kannst (hoffentlich) die wenigen Verzeichnisse darunter löschen. Dann Laufwerk ein bischen tiefer in der Struktur ansetzen und so weiter und wo weiter.

    Jetzt klar??

  8. Aha, Herr Schlaumeier und wieso soll das nicht klappen?? Tststststs – Urteil bevor probiert – tstststststs

  9. Hab’s probiert, Onkel Rosenzüchter.

    Zuerst:

    C:\\Users\\ukeim>subst V: "C:\\Ablage\_TODEL~1\\LOKAL-~1\\ZetaC11\\users\\ukeim\\AppData
    \\Local\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\A
    NWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\ANWEND~1\\Anwendungsdaten\\An
    wendungsdaten"

    Beim Löschen kommt dann trotzdem

    Ich vermute mal, dass er diese Junctions einfach beibehält und auch endlos verfolgt…

  10. Zielpfad??? Du löschst aber schon “am Papierkorb vorbei”!!??
    Welcher Zielpfad soll denn da gemeint sein??

    Windows eben – tstststststs

  11. Hi Uwe – bin über deine CodeProject Querystring Klasse auf den Blog gestoßen und habe einen Tipp für dein Directory-Problem.
    Probiere es mal mit dem TotalCommander – der hat mir schon bei so manchen Verzeichnis-Löschungen geholfen, bei denen der Explorer, die CMD-Shell und eine ganze Reihe von kommerziellen “Eraser”-Tools versagt haben, bzw. gleich komplett abgestürzt sind.
    Viel Glück :-)

  12. Das ist ja ‘ne ganz harte Nuss. Aber mit WinHEX am NTFS rumzuspielen ist m.E. den Aufwand nicht wert. :-) Das war zu guten alten Amiga Zeiten alles sehr viel einfacher! (Da wir im ähnlichen Alter liegen unterstelle ich mal, dass du auch einen hattest…oder womöglich ‘nen Atari ST?! *g)
    Ich würde einfach mach den Verzeichnisbaum (ggf. ‘n Screenshot) in eine der vielen MSDN Newsgroups posten. Hin und wieder können die Jungs ganz hilfreich sein.

    Gruß

    Tillman

  13. Hallo Uwe, hallo Rest!
    Ich hatte exakt das gleiche Problem nach einem Robocopy Kopiervorgang nd konnte es auf folgende Art lösen:

    im (Vista) Explorer mit Drag& Drop die tiefer gelegenen Ordner weiter nach oben im Baum verschieben. Davor am besten auch noch möglichst viele höher gelegene Ordnernamen auf ein Zeichen (möglichst für jeden Ordner einen anderen Buchstaben) verkürzen und dann die Bäume von unten nach oben löschen. Durch das Umebennen der Ordner wird der absolute Pfad zu den Dateien soweit verkürzt, dass das Löschen wieder möglich wird.

    Es kamen zwar zwischendurch Fehlermeldungen, aber nach ca 10 Minuten war der Baum Geschichte.
    Eventuell auch noch die Ordnernamen ver

    1. die Unterverzeichnisse umbenennen (und zwar am besten mit 1-Zeichen langen Ordnernamen)
    2. direktes Löschen geht nicht mehr, man kann aber

  14. Danke, Alex, werde ich probieren!

    Mir wurde auch schon der Tipp gegeben mit Linux zu booten und dann von dort mit NTFS-Treiber die Ordner zu löschen.

    Alternativ von Mac OS X aus.

    Dein Tipp ist mir wohler, danke!

  15. Hab’s grad erfolgreich durchgeführt. Nachfolgend mal ein Pfad der dann zu löschen ging:

    (Hochkant, damit es noch lesbar ist)

  16. Hallo …
    schlage mich grade mit dem gleichen Problem herum!
    Das löschen dieser verrückten VZ-Struktur am besten per Ubuntu Live CD … dauert 5 Min … alternativ habe ich auch schon die Struktur mit roboccopy /MIR und einem leeren Ordner überschrieben.. funktioniert auch .. dauert aber Stunden.

    Läuft Robocopy rekursionsfrei wenn man wie oben beschrieben Abzweigungen ausschließt ?

    Würde mich brennend interessieren…

    Gruß

    Markus

  17. Hallo Markus

    Ja, wenn Du die Junktions ausschließt, läuft es (zumindest bei mir).

    guter Tipp das mit der Ubuntu-CD (bzw. Knoppix wird auch gehen, schätze ich mal); danke!

  18. Pingback: Pfadlängenlimit überschritten, Dateisystemobjekte scheinbar nicht mehr löschbar « Borns IT- und Windows-Blog

  19. Tja das passiert wenn man symbolische Links ineinander verschachtelt liebes Microsoft Team.

    Erklärung:

    Im Verzeichnis “C.\Users\Benutzername\Anwendungsdaten” existiert eine relative symbolische Verknüpfung Namens “Anwendungsdaten”:

    C:\Users\Benutzername\Anwendungsdaten\Anwendungsdaten -> ..\..\Anwendungsdaten

    Da die Verknüfung aber selbst im echten Verzeichnis Anwendungsdaten existiert handelt es sich immer um das selbe Verzeichnis, egal wie tief man geht,
    kurz gesagt es gibt unendlich viele Verschachtelungen.
    Wenn du nun mit einer anderen Windowsinstallation irgendeine der symbolischen Verknüpfungen löscht, löscht du in Wirklichkeit immer das Origanalverzeichnis.

    Als Lösungen fallen mir 2 Möglichkeiten ein:

    1. Ein Windowstool, mit dem man die relative Verknüfung in eine absolute (“C:\Users\Benutzername\Anwendungsdaten” statt “..\..\Anwendungsdaten”) umwandeln kann (sprich Verknüfung entfernen und neue dazu (Kombatibilität zu älteren Windowsprogrammen) )

    2. Linux-Live CD wie Knoppix von CD starten und dann unter Linux das machen, was ich bei 1. vorgeschlagen habe

    Da ich dieses Problem auch habe (Win dows 7)
    werde ich die exakte Lösung demnächst hier bekannt geben.

  20. So, hab das Problem bei mir gelöst.

    http://technet.microsoft.com/de-de/sysinternals/bb896768%28en-us%29.aspx

    1. Das tool junktions downloaden die .exe in das “C:\Windows” Verzeichnis kopieren (Damit von überall startbar)

    2. “Start -> Alle Programme -> Zubehör -> Eingabeaufforderung” mit Rechtsklick auf “Als Administrator ausführen” starten

    3. Befehle eingeben (Symbolische Verknüpfungen löschen):

    junktions -d C:\Users\Benutzername\Appdata\Local\Anwendungsdaten

    !!! (NICHT C:\Users\BenutzernameAnwendungsdaten) !!!

    junktions -d C:\Users\Benutzername\Appdata\LocalLow\Anwendungsdaten
    (falls vorhanden)

    Das gleiche für folgende Benutzernamen durchführen:

    Default
    Default User
    All Users (falls Verknüpfung vorhanden)

    Administrator

    Ich wiederhole:
    !!! (NICHT C:\Users\BenutzernameAnwendungsdaten) !!!

    Das wars, endlich wieder Spyware scannen, DiskSpaceExplorer etc benutzen !!!

  21. Hallo!
    Das Thema ist alt, durchgekaut und gelöst – ich möchte nur einen Post dalassen, der hoffentlich hilfreich ist.
    Auch bei mir war das Problem, dass sich ein Backup-Programm in Rekursion verloren hat, ergo wurden 255 Zeichen überschritten.
    Die hilfreiche Lösung kam von “Alex on November 2, 2007 at 7:31 pm”
    Danke für den Blog!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>