Jump to content

del und xcopy funktionieren in per Task ausgeführter .bat nicht


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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?

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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

 

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:

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...