Batch-Script does not work when run by TaskScheduler
Hi!
Ich habe ein einfaches Batchskript, das - neben ein paar Logausgaben per "echo" - nur aus einer einzigen Zeile besteht:
O: ist ein verbundenes Netzlaufwerk
D: ist eine lokale Festplatte
Wenn ich dieses Skript manuell per Doppelklick oder in einem command-window starte kopiert es wie erwartet die Dateien vom Netzlaufwerk auf die lokale Festplatte.
Es gibt einen Task im Taskscheduler, das dieses Skript jeden Tag zu einer bestimmten Uhrzeit aufruft.
Im TaskScheduler wird das Skript vom gleichen User aufgerufen, mit dem ich es auch testweise per Doppelklick aufrufe.
Als Argument wird übergeben um die oben genannten Logausgaben des Skripts in eine Datei umzuleiten.
Als "Start in" ist der Pfad, in dem das Skript liegt (und in dem ich es auch manuell starte) festgelegt.
Wenn dieser Task ausgeführt wird (automatisch oder per "Run" im TaskScheduler), landen alle Logprints, aber die einzige Ausgabe des xcopy-Befehls ist "0 File(s) copied". Es wird schlicht und einfach NICHTS kopiert. Und ich bin ehrlichgesagt ziemlich ratlos, wie das sein kann.
Ich habe testweise noch ein
eingefügt - das generiert NULL output. Kein Directorylisting, keine Fehlermeldung, nichts.
Hat irgendjemand eine Idee, wo ich mit der Suche anfangen könnte?
Ich habe ein einfaches Batchskript, das - neben ein paar Logausgaben per "echo" - nur aus einer einzigen Zeile besteht:
xcopy "O:\pfad\*.*" "D:\anderer pfad\*.*" /C /E /Y
O: ist ein verbundenes Netzlaufwerk
D: ist eine lokale Festplatte
Wenn ich dieses Skript manuell per Doppelklick oder in einem command-window starte kopiert es wie erwartet die Dateien vom Netzlaufwerk auf die lokale Festplatte.
Es gibt einen Task im Taskscheduler, das dieses Skript jeden Tag zu einer bestimmten Uhrzeit aufruft.
Im TaskScheduler wird das Skript vom gleichen User aufgerufen, mit dem ich es auch testweise per Doppelklick aufrufe.
Als Argument wird
>"D:\anderer pfad\skriptLog.txt"
Als "Start in" ist der Pfad, in dem das Skript liegt (und in dem ich es auch manuell starte) festgelegt.
Wenn dieser Task ausgeführt wird (automatisch oder per "Run" im TaskScheduler), landen alle Logprints, aber die einzige Ausgabe des xcopy-Befehls ist "0 File(s) copied". Es wird schlicht und einfach NICHTS kopiert. Und ich bin ehrlichgesagt ziemlich ratlos, wie das sein kann.
Ich habe testweise noch ein
dir "O:\pfad\"
Hat irgendjemand eine Idee, wo ich mit der Suche anfangen könnte?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 32620359225
Url: https://administrator.de/forum/batch-script-does-not-work-when-run-by-taskscheduler-32620359225.html
Ausgedruckt am: 25.12.2024 um 07:12 Uhr
7 Kommentare
Neuester Kommentar
Zitat von @zimbosmurf:
Hat irgendjemand eine Idee, wo ich mit der Suche anfangen könnte?
In welchem Kontext wird das Script ausgeführt?
Hat diese Umgebung überhaupt Zugriff auf die Dateifreigaben und werden diese auch zugewiesen?
Moin,
Da
Du musst einfach in deine Batch das notwendige
P.S. Ich würde ja Robocopy nehmen
Da
O:\Pfad
ein per Script/ GPO gemepptes Laufwerk ist, existiert das zum zur Laufzeit aus dem Script nicht. Da werden keine Startscripte/ GPOs geladen.Du musst einfach in deine Batch das notwendige
net usw. o: \\myServer\Share
angeben oder in deinem XCOPY direkt auf das Share verweisen.P.S. Ich würde ja Robocopy nehmen
Gemappte Netzlaufwerke werden Session- und Userabhängig gemappt und sind nur verfügbar wenn die Option Nur ausführen wenn der Benutzer angemeldet ist gewählt wird oder für Admins wenn in der Registry der Key EnableLinkedConnections gesetzt wird.
Nimm Robocopy mit UNC Pfad
Merke, niemals gemappte Laufwerke in Skripten benutzen sondern besser immer UNC Pfade.
Gruß
das generiert NULL output. Kein Directorylisting, keine Fehlermeldung, nichts.
Dann hast du wohl nur StdOut in die Datei geschrieben statt StdErr da musst du schon die StdErr Ausgabe umleiten dann siehst du den Fehler:dir "O:\pfad" 2>mylog.txt
robocopy "\\Server\share\pfad" "D:\anderer pfad" /e /copyall
Gruß