|
Mit dem Programm "Shadow Copy" von runtime oder "HoboCopy" kann der Inhalt von einem Ordner zu einem anderen Ordner kopiert werden.
Problemstellung: Sollte ein Programm eine Datei gesperrt haben, z.B Outlook die psd-Datei, so wird diese nicht kopiert oder noch schlimmer der Kopiervorgang wird abgebrochen.
Lösung: HoboCopy und Shadow Copy verwenden den Dienst Volumenschattencopy (VSS). Dieser wird bei bedarf von den beiden Programmen gestartet.
Mögliche Probleme: Aus einer TrueCrypt-Container-Datei können die Programme nicht über VSS Dateien kopieren. Wie es sich mit einem TC-Volume verhält ist noch nicht getestet. Hobocopy: There was a COM failure 0x8004230f - .\HoboCopy.cpp (349)
ShadowCopy
Vorteil: - Läuft auch unter Windows 2003 & 2008 ohne update irgendwecher Bibiliotheken.
Nachteil (bei CMD-Line Start mit Parametern): - Nur eine bestimmte Datei oder Dateigruppen mit WildCard * können mit einen Programmaufruf per Parameter kopiert werden. - Nach dem Kopieren öffnet sich ein Dialogfenster für 5 Sekunden.
Syntax: shadowcopy <Datei> <Ziel> [/s] [/j] [/i][/y] [/r]
<Datei> Alle Dateien im Ordner xyz (z.B. c:\zusichern\*.*) oder nur eine bestimmte (z.B. c:\foo.txt) oder mit Platzhalter (z.B. c:\zusichern\*.docx) kopieren. <Ziel> Das Zielverzeichnis. (z.B. d:\sicherung\) /s Unterverzeichnisse rekursiv kopieren /j Junctions kopieren /i Fehler beim Kopieren ignorieren /y Vorhandene Dateien ohne Nachfrage überschreiben /r Schreibgeschützte Dateien überschreiben
HoboCopy
Vorteil: - mehrere Datei-Namen können per Parameter übergeben werden
Nachteil: - Läuft unter Windows 2003 & 2008 nur wenn die Visual C++-Laufzeitdateien und Betriebssystemkomponenten installiert und auf dem aktuellen Stand sind. Lösung: Das Packet vcredist auf SourceForge.net installieren und das Problem ist behoben. Weitere Lösungen sind unter CraigBlog nachzulesen.
Syntax hobocopy [/statefile=DATEI] [/verbosity=LEVEL] [/full | /incremental] [/clear] [/skipdenied] [/y] [/simulate] [/recursive] <Quelle> <Ziel> [<Datei> [<Datei> [ ... ]]
/statefile Datei in der die Informationen über den aktuellen Kopiervorgang gespeichert werden. Diese Datei wird erforderlich wenn Inkrementelles Kopieren (/incremental) zu einem späteren Zeitpunkt durchgeführt werden soll.
/verbosity (default ist 2) Gibt an, wie viele Informationen HoboCopy ausgibt 0 - fast keine Informationen ausgegeben 1 - Nur über Fehler Informationen 2 - Fehler und Warnungen werden ausgegeben 3 - Fehler, Warnungen und einige Statusinformationen werdenausgegeben 4 - Viele diagnostische Informationen werden ausgegeben
/full Füht eine vollständige Kopie aus. Unabhängig vom Änderungsdatum.
/incremental Führt ein inkrementelles Kopieren aus. Nur Dateien welche sich seit der letzten Vollkopie geändert haben werden kopiert. Die Angabe von /statefile ist hier zwingend Notwendig
/clear - Rekursiv wird das Zielverzeichnis vor dem Kopiervorgang gelöscht. HoboCopy wird zur Bestätigung des Löschvorgangs auffordern. Mit dem Schalter /y kann dies unterbunden werden.
/Skipdenied Sollte HoboCopy nicht das Recht haben eine Datei zu kopieren bricht es den kompletten Kopiervorgang ab. Mit desem Schalter wird die Datei einfach übersprungen und HoboCopy kopiert den Rest.
/y keine Eingabeaufforderung an den Benutzer. Alles wird ohne Nachfragen durchgeführt ! Auch das löschen mit /clear.
/simulate Simuliert das Kopieren nur. Nicht wird wirklich kopiert.
/ r /recursive Kopiert alle Unterverzeichnisse (auch leere) mit.
<Quelle> Das Quell-Verzeichnis zum kopieren. <Ziel> Das Zielverzeichnis. <Datei> (defaualt *.*) Eine Datei (z.B. foo.txt) oder mit Platzhalter (z.B. *.txt) kopieren.
Reinitialisierung des Volume Shadow Copy Service VSS
Sollte die Funktionalität des Volume Shadow Copy Service (VSS Service) nicht mehr gegeben sein, kann dies durch eine fehlerhafte Veränderung der Registrierung passieren. Ein Ausführen des "vssadmin" in der CMD-Shell mit den Parameter “list writers” (Syntax: "vssadmin list writers") ergibt dann einen Timeout-Fehlermeldung. Dieses Problem kann damit behoben werden, wenn die beteiligten Komponenten des VSS Service erneut registriert werden: Folgendes in eine Batch-Datei kopien und als Administrator ausführen:
rem folgendes steht in der "VSS_reinit.bat" rem ------------------------------------------------- cd %windir%\system32 Net stop vss Net stop swprv regsvr32 ole32.dll regsvr32 vss_ps.dll Vssvc /Register regsvr32 /i swprv.dll regsvr32 /i eventcls.dll regsvr32 stdprov.dll IF NOT EXIST vssui.dll GOTO NOVSSUI regsvr32 vssui.dll :NOVSSUI IF NOT EXIST vss_ps.dll GOTO NOVSSPS regsvr32 vss_ps.dll :NOVSSPS regsvr32 msxml.dll regsvr32 msxml3.dll IF NOT EXIST msxml4.dll GOTO NOMSXML4 regsvr32 msxml4.dll :NOMSXML4 Net start swprv Net start vss rem -------------------------------------------------
Batchdatei: Download 
2. Nachdem die Registrierung fehlerfrei durchgelaufen ist, erneut "vssadmin list writers" ausführen
3. Diesmal sollten alle installierten VSS Writers aufgelistet und fehlerfrei sein
|