Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Robocopy über vb.net tut nicht, was es soll.

Frage Entwicklung Visual Studio

Mitglied: emeriks

emeriks (Level 4) - Jetzt verbinden

19.11.2013, aktualisiert 17:00 Uhr, 2780 Aufrufe, 9 Kommentare

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:

01.
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:

01.
------------------------------------------------------------------------------- 
02.
   ROBOCOPY     ::     Robustes Dateikopieren fr Windows                               
03.
------------------------------------------------------------------------------- 
04.
 
05.
  Gestartet: Tue Nov 19 16:24:32 2013 
06.
 
07.
   Quelle : \\Server\Freigabe\QuellOrdner\ 
08.
     Ziel : C:\Temp\Zielordner\ 
09.
 
10.
    Dateien : *.* 
11.
	     
12.
Ausfhrbare Dateien : * 
13.
	     
14.
  Optionen: *.* /S /E /COPY:DTS /PURGE /MIR /B /LEV:1 /R:0 /W:0  
15.
 
16.
------------------------------------------------------------------------------ 
17.
 
18.
2013/11/19 16:24:32 FEHLER 2 (0x00000002) Zugriff auf Quellverzeichnis \\Server\Freigabe\QuellOrdner\ 
19.
Das System kann die angegebene Datei nicht finden.

Kann mir da jemand bitte helfen?

E.

Mitglied: colinardo
19.11.2013, aktualisiert um 17:32 Uhr
Hallo emeriks,
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:
01.
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")
Grüße Uwe
Bitte warten ..
Mitglied: emeriks
19.11.2013 um 17:34 Uhr
Hallo Uwe,
nee, Rechte kann doch nicht sein, wenn die Batch -manuell gestartet- arbeitet.
Ursprünglich habe ich die die Exe auch direkt gestartet, genau so, wie Dein Beispiel. Die Batch ist dann schon ein Verzweiflungsversuch von mir. Darüber konnte ich dann aber wenigstens Schreibfehler ausschließen, weil ich ja die funktionierende Batch 1:1 aus VB starte.
Der Start funktioniert auch. Robocopy schreibt jedesmal ein aktuelles Log.

E.
Bitte warten ..
Mitglied: colinardo
19.11.2013 um 17:37 Uhr
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)
Bitte warten ..
Mitglied: emeriks
19.11.2013 um 17:54 Uhr
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?

Vielleicht noch ein Hinweis:
Das ganze soll unter Win2008 R2 laufen. Ich habe UAC ausgeschaltet. Wenn ich die cmd.exe manuell starte, dann steht in der Fensterleiste "Administrator: ...". Wenn ich die cmd.exe über VB starte, dann steht das auch "Administrator:....".

Wenn ich robocopy.exe aus VB starte und auf einen Ordner ansetze, wo ich Vollzugriff habe, dann meckert robocopy auch nicht, dass der Ordner nicht da wäre.
Ich vermute, dass muss etwas mit dem "/B" Schalter von Robocopy zu tun haben. Als wenn in dem aus VB heraus gestarteten Robocopy-Prozess das Backup Operator Privileg nicht aufrufbar wäre.

E.
Bitte warten ..
Mitglied: colinardo
19.11.2013 um 17:58 Uhr
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 , du könntest ja auch als anderer User angemeldet sein und die cmd mit dem Backup-User gestartet haben...
War halt ein Missverständnis...
Muss mal testen.
Bitte warten ..
Mitglied: colinardo
19.11.2013, aktualisiert 20.11.2013
hmmm kann das geschilderte Verhalten auf einem 2008R2 nicht nachvollziehen. Du sagst das es mit anderen Freigaben auf dem Server funktioniert ? und nur mit dieser Freigabe nicht ?
Bitte warten ..
Mitglied: emeriks
20.11.2013 um 08:57 Uhr
Nein, in der selben Freigabe ein anderer Ordner, wo ich Vollzugriff habe. Da geht es.
Und ich kann es für alle Ordner und Dateien in allen Freigaben, auf welche ich keinen Zugriff habe und auch nicht der Besitzer bin, reproduzieren.
Bitte warten ..
Mitglied: emeriks
20.11.2013 um 14:17 Uhr
Habe das jetzt noch eingrenzen können:
Dieses Problem tritt nur dann auf, wenn ich den Prozess-Start in einem neuen Thread ausführe.

Also:
- Anwendung starten und sofort die Routine ausführen -> geht
- Routine über Button auslösen --> geht
- Routine über einen Timer und von dort als neuen Thread gestartet --> geht nicht! Uuuups... Und was nu?
Bitte warten ..
Mitglied: colinardo
20.11.2013 um 14:23 Uhr
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 ...

Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Visual Studio
gelöst VB.Net - Problem mit Umleitung der Standard-Ausgabe (4)

Frage von emeriks zum Thema Visual Studio ...

Visual Studio
gelöst Vb.net Pfadangabe mit Wildcards wie Stern Regex Pattern (2)

Frage von Pilger83 zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...