Robocopy über vb.net tut nicht, was es soll.
Hi,
habe ein Verständnisproblem beim Starten von Robocopy.exe aus einer VB.Net-Anwendung heraus.
1. Aufgabe ist, einen Ordner zu kopieren, für welchen der aktuelle Benutzer keine Rechte hat.
2. Der Benutzer ist auf dem System, wo die Anwendung läuft, und auf dem Server, wo die Daten liegen, Administrator mit Backup Operator Rechten
3. Ich habe eine Batch mit dem Robocopy-Kommando, um diesen Ordner incl. Sicherheitseinstellungen zu kopieren.
4. Starte ich diese Batch manuell in einer Cmd-Shell, dann wird der Ordner tadellos kopiert, incl. Sicherheitseinstellungen. Der Benutzer kann anschließend nicht auf den Kopie-Ordner zugreifen, wie es sein soll.
5. Starte ich dieselbe Batch aus meinem VB.net Programm heraus, dann meckert Robocopy, dass der Quell-Ordner nicht da wäre.
6. kapiere ich nicht! *frust*
Die Batch sieht so aus:
Im Logfile steht dann:
Kann mir da jemand bitte helfen?
E.
habe ein Verständnisproblem beim Starten von Robocopy.exe aus einer VB.Net-Anwendung heraus.
1. Aufgabe ist, einen Ordner zu kopieren, für welchen der aktuelle Benutzer keine Rechte hat.
2. Der Benutzer ist auf dem System, wo die Anwendung läuft, und auf dem Server, wo die Daten liegen, Administrator mit Backup Operator Rechten
3. Ich habe eine Batch mit dem Robocopy-Kommando, um diesen Ordner incl. Sicherheitseinstellungen zu kopieren.
4. Starte ich diese Batch manuell in einer Cmd-Shell, dann wird der Ordner tadellos kopiert, incl. Sicherheitseinstellungen. Der Benutzer kann anschließend nicht auf den Kopie-Ordner zugreifen, wie es sein soll.
5. Starte ich dieselbe Batch aus meinem VB.net Programm heraus, dann meckert Robocopy, dass der Quell-Ordner nicht da wäre.
6. kapiere ich nicht! *frust*
Die Batch sieht so aus:
1
robocopy.exe "\\Server\Freigabe\QuellOrdner" "C:\Temp\Zielordner" /MIR /B /LEV:1 /COPY:DS /R:0 /W:0 /XF * /LOG:"C:\Temp\robocopy.log"
Im Logfile steht dann:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-------------------------------------------------------------------------------
ROBOCOPY :: Robustes Dateikopieren fr Windows
-------------------------------------------------------------------------------
Gestartet: Tue Nov 19 16:24:32 2013
Quelle : \\Server\Freigabe\QuellOrdner\
Ziel : C:\Temp\Zielordner\
Dateien : *.*
Ausfhrbare Dateien : *
Optionen: *.* /S /E /COPY:DTS /PURGE /MIR /B /LEV:1 /R:0 /W:0
------------------------------------------------------------------------------
2013/11/19 16:24:32 FEHLER 2 (0x00000002) Zugriff auf Quellverzeichnis \\Server\Freigabe\QuellOrdner\
Das System kann die angegebene Datei nicht finden.
Kann mir da jemand bitte helfen?
E.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 222394
Url: https://administrator.de/forum/robocopy-ueber-vb-net-tut-nicht-was-es-soll-222394.html
Ausgedruckt am: 03.04.2025 um 08:04 Uhr
9 Kommentare
Neuester Kommentar
Hallo emeriks,
das sieht mir nach fehlenden Rechten auf der Freigabe aus, aber probier erst mal Robocopy direkt über
auszuführen, anstatt über den Umweg der Batch:
Grüße Uwe
das sieht mir nach fehlenden Rechten auf der Freigabe aus, aber probier erst mal Robocopy direkt über
Process.Start
auszuführen, anstatt über den Umweg der Batch:
1
Process.Start("robocopy.exe", "\\Server\Freigabe\QuellOrdner\ C:\Temp\Zielordner\ /MIR /B /LEV:1 /COPY:DS /R:0 /W:0 /XF * /LOG:C:\Temp\robocopy.log")
nee, Rechte kann doch nicht sein
kann doch, starte mal die EXE in der CMD-Shell und nicht via Doppelklick ...du kannst Process.Start() auch Credentials mitgeben (http://msdn.microsoft.com/de-de/library/ed04yy3t%28v=vs.110%29.aspx)
Zitat von @emeriks:
Sorry, aber das schnalle ich jetzt nicht.
Meine Exe und die von mir gestartete cmd.exe bzw. die dann über die Batch gestartete robocopy.exe laufen doch alle in derselben Sitzung, mit dem selben Sitzungstoken. Also haben doch alle drei Prozesse dieselben Rechte?
Sicher, aber wenn du das nicht schreibst kann ich es nicht wissen Sorry, aber das schnalle ich jetzt nicht.
Meine Exe und die von mir gestartete cmd.exe bzw. die dann über die Batch gestartete robocopy.exe laufen doch alle in derselben Sitzung, mit dem selben Sitzungstoken. Also haben doch alle drei Prozesse dieselben Rechte?
War halt ein Missverständnis...
Muss mal testen.
Zitat von @emeriks:
- Routine über einen Timer und von dort als neuen Thread gestartet --> geht nicht! Uuuups... Und was nu?
Im Thread die CurrentPrincipal-Eigenschaft festlegen oder http://stackoverflow.com/questions/2608194/how-do-i-start-a-thread-in-a ...- Routine über einen Timer und von dort als neuen Thread gestartet --> geht nicht! Uuuups... Und was nu?
Grüße Uwe