Wurzelzwerg 10 Geschrieben 12. Juli 2007 Melden Teilen Geschrieben 12. Juli 2007 Moin, habe folgende Batch Datei, um regelmäßig per Task das Verzeichnis E:\FreigabeLaufwerk\_Temp zu löschen und anschließend eine Text-Datei dort wieder reinzukopieren. @ECHO off REM ### Variablendeklaration ### REM # Zu löschendes Verzeichnis # SET delpfad=E:\FreigabeLaufwerk\_Temp REM # Pfad der Scriptdatei # SET scriptpfad=E:\FreigabeLaufwerk\IT\Betrieb\Config\Del_L-_Temp REM # Logdatei # SET logdatei="%scriptpfad%\del-script_L-temp.log" SET errorlogdatei="%scriptpfad%\del-script_L-temp_error.log" REM # Hinweisdatei # SET txtdatei="%scriptpfad%\Achtung! Bitte lesen! L”schung dieser Dateien.txt" ECHO . ECHO . ECHO Dieses Script loescht alle Dateien im Verzeichnis %delpfad% und kopiert anschliessend die Datei %txtdatei% ECHO . ECHO . REM ### Beginne Logdatei ### ECHO %DATE% %TIME% >> %logdatei% ECHO %DATE% %TIME% >> %errorlogdatei% REM ### Löschen aller Dateien im Löschpfad ### ECHO Loesche alle Dateien in %delpfad% ECHO Loesche alle Dateien in %delpfad% >> %logdatei% ECHO . ECHO . DEL /F /S /Q "%delpfad%\*.*" >> %logdatei% 2>> %errorlogdatei% ECHO Errorlevel %errorlevel% >> %logdatei% REM ### Kopiere Hinweisdatei ### ECHO Kopiere %txtdatei% nach %delpfad% ECHO Kopiere %txtdatei% nach %delpfad% >> %logdatei% ECHO . ECHO . xcopy %txtdatei% "%delpfad%\" /I /Y >> %logdatei% 2>> %errorlogdatei% ECHO Errorlevel %errorlevel% >> %logdatei% Funktioniert perfekt, solange ich die Batch Datei selbst - eingeloggt als DOMAIN\Administrator - ausführe. Richte ich allerdings einen Task ein, der diese Batch-Datei ausführen soll, wird keine Datei gelöscht und auch die Textdatei nicht kopiert. Der im Task eingetragene Benutzer ist ebenfalls DOMAIN\Administrator. Folgendes spuken die Logs aus: [edit: Funktioniert auf Windows 2003 Server nicht per Task - auf XP gehts. Frage bleibt aber bestehen, weil die Batch-Datei auf 2003 laufen muss] 12.07.2007 14:36:17,61 Loesche alle Dateien in E:\FreigabeLaufwerk\_Temp Errorlevel 1 Kopiere "E:\FreigabeLaufwerk\IT\Betrieb\Config\Del_L-_Temp\Achtung! Bitte lesen! L”schung dieser Dateien.txt" nach E:\FreigabeLaufwerk\_Temp 0 Datei(en) kopiert Errorlevel 4 12.07.2007 14:36:17,62 Zugriff verweigert Fehler beim Erstellen der Datei - Eine Datei kann nicht erstellt werden, wenn sie bereits vorhanden ist. Verzeichnis kann nicht erstellt werden - E:\FreigabeLaufwerk\_Temp Hierbei stammt "Zugriff verweigert" vom del Befehl, der Rest müsste xcopy sein. Sysinternals File Monitor sagt: 14:17:07 xcopy.exe:3116 OPEN E:\FreigabeLaufwerk\_Temp\ ACCESS DENIED DOMAIN\Administrator 14:17:07 xcopy.exe:3116 OPEN E:\FreigabeLaufwerk\_Temp\ ACCESS DENIED DOMAIN\Administrator 14:17:07 xcopy.exe:3116 OPEN E:\FreigabeLaufwerk\ ACCESS DENIED DOMAIN\Administrator Der einzig halbwegs brauchbare Treffer in Google [MS KB] hat mich dazu gebracht, mal auf E:\FreigabeLaufwerk\_Temp\ "BATCH" Vollzugriff zu geben - gebracht hats leider nichts. Jemand 'ne Idee? Zitieren Link zu diesem Kommentar
dadadum 10 Geschrieben 12. Juli 2007 Melden Teilen Geschrieben 12. Juli 2007 Hi, Kann es sein das derweilen noch ein task läuft der das file in Benutzung hat? ein alter Job der nicht abgebrochen wird oder auch ein Benutzer? weil bei mir funktionierts. sofern das das erwartete ergebniss ist: und es ist in beiden Fällen das gleiche. 12.07.2007 16:12:09,78 Loesche alle Dateien in c:\tst\_Temp Datei wurde gel”scht - c:\tst\_Temp\Achtung! Bitte lesen! L”schung dieser Dateien.txt Errorlevel 0 Kopiere "c:\tst\IT\Achtung! Bitte lesen! L”schung dieser Dateien.txt" nach c:\tst\_Temp C:\tst\IT\Achtung! Bitte lesen! L”schung dieser Dateien.txt 1 Datei(en) kopiert Errorlevel 0 Zitieren Link zu diesem Kommentar
Wurzelzwerg 10 Geschrieben 12. Juli 2007 Autor Melden Teilen Geschrieben 12. Juli 2007 Hallo, ja, Dein Ergebnis entspricht dem erwarteten. Ich gehe nicht davon aus, dass die Datei in Benutzung ist (zumal eine .TXT ja - meines Erachtens nach - wohl sowieso eher selten geblockt wird). Gerade weil es ja immer dann funktioniert, wenn ich die Batch-Datei selbst ausführe, aber dann nicht, wenn sie als Task läuft (hier auch über manuelles ausführen, an der Uhrzeit kanns also auch nicht liegen). Auf welchem Betriebssystem hast Du das per Task getestet? Ich habe festgestellt, dass es auf XP wunderbar läuft. Nur auf Windows Server 2003 Standard Edition nicht, aber genau dieser ist unser Fileserver und dort soll es ausgeführt werden. Zitieren Link zu diesem Kommentar
zahni 561 Geschrieben 12. Juli 2007 Melden Teilen Geschrieben 12. Juli 2007 Vermutlich ist das Laufwerk nicht gemappt. Schreibe in die Batchdatei am Anfang: net use e: \\server\wasweisich und am Ende net use e: /d -Zahni Zitieren Link zu diesem Kommentar
Wurzelzwerg 10 Geschrieben 12. Juli 2007 Autor Melden Teilen Geschrieben 12. Juli 2007 Hallo zahni, Laufwerk E: ist die Festplattenpartition. Habe es auch per gemappten Laufwerk O: (da E:\FreigabeLaufwerk\ unser Office Laufwerk O: ist) und auch direkt per UNC probiert, es bleibt allerdings bei dem Problem. Zumal File Monitor auch diverse SUCCESS Zugriffe von xcopy.exe z.B. auf dem Pfad wo das Script selbst liegt (ebenfalls E:) anzeigt. Zitieren Link zu diesem Kommentar
dadadum 10 Geschrieben 12. Juli 2007 Melden Teilen Geschrieben 12. Juli 2007 Getestet auf nem XpPro Hab jetzt gerade leider keine Möglichkeit das auf nem Server zu testen. da fragt man sich doch: wo is der Unterschied für das Script? Zitieren Link zu diesem Kommentar
Wurzelzwerg 10 Geschrieben 12. Juli 2007 Autor Melden Teilen Geschrieben 12. Juli 2007 Lt. "Access is denied" error message when you run a batch job on a Windows Server 2003-based computer kann es ja schon Unterschiede geben. Aber demnach nicht für Administratoren. Und ich weiß bis jetzt nicht, warum da trotzdem der Zugriff verweigert wird. Aber vielleicht habe ich da ja auch einen falschen Ansatz. Zitieren Link zu diesem Kommentar
Wurzelzwerg 10 Geschrieben 12. Juli 2007 Autor Melden Teilen Geschrieben 12. Juli 2007 So, ich habe noch mal ein bißchen getestet. Prinzipiell funktioniert die Batch Datei auch per Task-Aufruf auf dem Windows Server 2003 - allerdings nicht in dem Verzeichnis E:\FreigabeLaufwerk\_Temp. Zur Erinnerung: Rufe ich genau die selbe Batch Datei direkt in der cmd auf, funktioniert alles. Bisher war DOMAIN\Administrator (auch lt. effektiver Berechtigung) wie folgt berechtigt: DOMAIN\Administrator --> ist Mitglied in # Domänen-Admins --> ist Mitglied in ## LW-O_Temp_Vollzugriff <-- hat Vollzugriff auf E:\FreigabeLaufwerk\_Temp CACLS Ausgabe von E:\FreigabeLaufwerk\_Temp: E:\FreigabeLaufwerk\_Temp DOMAIN\LW-O_Temp_Aendern:(OI)(CI)(Beschränkter Zugriff:) DELETE READ_CONTROL SYNCHRONIZE FILE_GENERIC_READ FILE_GENERIC_WRITE FILE_GENERIC_EXECUTE FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_READ_EA FILE_WRITE_EA FILE_EXECUTE FILE_DELETE_CHILD FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES DOMAIN\LW-O_Temp_Vollzugriff:(OI)(CI)F Nun habe ich DOMAIN\Administrator direkt Vollzugriff auf E:\FreigabeLaufwerk\_Temp gegeben. Ergebnis: Der DEL Befehl funktioniert auch bei Aufruf, XCOPY aber nach wie vor nicht. Wie kann das nun sein, dass per Task die - meines Erachtens nach obigen Schema korrekte - Berechtigung verweigert wird, per direktem Aufruf die Batch Befehle aber zugreifen dürfen? Sollte es etwa ein Bug sein? :suspect: Zitieren Link zu diesem Kommentar
Wurzelzwerg 10 Geschrieben 18. Juli 2007 Autor Melden Teilen Geschrieben 18. Juli 2007 Kann doch nicht Wahrstein! Dank Patchday den Server neu gestartet und seit dem läufts. Irgendwie scheint der Server irgendwo sowieso einen Schuss wegzuhaben. :suspect: Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.