Windows 7-geplante Task gibt 0x2 zurück

28232
demmith

Ich habe identische geplante Tasks, die in Windows XP Pro und Windows 7 ausgeführt werden. Der XP Pro läuft einwandfrei, der Windows 7 gibt immer 0x2 zurück (was bedeutet: "Das System kann die angegebene Datei nicht finden"); Kein Problem) in der Spalte Last Run Result der Taskplaner-Benutzeroberfläche.

Die geplante Aufgabe führt täglich eine .bat-Datei aus. Die .bat-Datei enthält einen Aufruf zum Ausführen eines Perl-Skripts. Wie ich im vorigen Abschnitt erwähnt habe, wird es unter XP ohne Probleme ausgeführt, aber unter Windows 7 keine Würfel.

Die Task unter Windows 7 ist so eingestellt, dass "ob der Benutzer angemeldet ist oder nicht" ausgeführt wird. In diesem Fall bin ich der einzige Benutzer des Systems. Es ist auch festgelegt auf "Mit höchsten Berechtigungen ausführen". Und es ist nicht verborgen. Die .bat-Datei wird von der Befehlszeile aus einwandfrei ausgeführt - sie ruft das Perl-Skript wie erwartet auf und das Perl-Skript erfüllt seine Aufgabe.

Ich habe weit und breit gesucht und nach einer passenden Antwort auf dieses Problem gesucht. Bisher habe ich nichts gefunden. Was zum Teufel geht mit dieser geplanten Win7-Aufgabe vor? Ich bin bereit meine Haare herauszuziehen.

6
Greift Ihr Skript über das Netzwerk auf etwas zu, z. B. auf freigegebene Ordner, oder wird es vollständig lokal ausgeführt? Chris W. Rea vor 13 Jahren 0
Haben Sie die Datei mit einem absoluten Namen als Ziel ausgewählt? Beispiel: C: \ Storage \ batchfile.bat Doltknuckle vor 13 Jahren 2
Haben Sie das Arbeits- / aktuelle Verzeichnis richtig eingestellt? Wenn Sie sagen, dass es von der Befehlszeile aus funktioniert, aus welchem ​​Verzeichnis führen Sie es aus? Funktioniert es von einem beliebigen Verzeichnis aus? Synetech vor 12 Jahren 1

5 Antworten auf die Frage

6
KERR

Ich hatte auch dieses Problem. 0x2 von Task Scheduler schien zu sagen, dass es die Batchdatei nicht finden konnte. Dies war falsch - Ich habe einige Pipe-Pfeile (>>) hinzugefügt, um meine Batch-Datei in eine Protokolldatei auszugeben, und dann die geplante Task ausgeführt.

Obwohl ich im Taskplaner ein 0x2 erhalten habe, habe ich festgestellt, dass die Batchdatei tatsächlich ausgeführt wurde, aber es war ein Fehler aufgetreten (der in der Protokolldatei angezeigt wurde).

Eine andere Sache, die Sie ausprobieren können, ist, die Task stattdessen als SYSTEM oder NETWORK SERVICE auszuführen.

2
Chris

Ich hatte gerade das gleiche Problem und habe es gelöst. Geben Sie auf der Registerkarte Aktionen unter Programm / Skript den Namen Ihrer Batchdatei ein. Geben Sie im Abschnitt "Start In (optional):" den Pfad zu Ihrer Datei ohne Anführungszeichen und ohne abschließenden Schrägstrich ein.

Beispiel unten zum Ausführen einer test.bat-Datei aus einem Testordner im Stammverzeichnis von C:

Programm / Skript: test.bat

Start In (optional): C: \ Test

Das hat mein Problem gelöst. David vor 9 Jahren 0
1
Jeff Lehman

Ich habe versucht, ein Ordnerpaar mit SyncToy 2.1 über zwei Windows 7 SP1-Workstations zu synchronisieren. Anfangs habe ich nur nach der Datei gesucht und die Argumente für die Aufgabe hinzugefügt. Es gab einen Code von zurück 0x2. Microsoft TechNet empfiehlt die Verwendung des Felds "Start In", um sicherzustellen, dass der Dateiname am richtigen Ort aufgelöst wird. Ich habe den SyncToy-Verzeichnispfad ohne Anführungszeichen oder nachstehenden Schrägstrich in das Feld "Start In" kopiert, gespeichert und die Aufgabe ausgeführt. Das Ergebnis war Erfolg, der Code 0x0!

1
Levi

In meinem Fall habe ich ein zugeordnetes Laufwerk als Ziel verwendet, das Laufwerk wurde jedoch nicht im Kontext des Skripts zugeordnet (Benutzer wurde abgemeldet). Daher musste ich das Laufwerk im Skript zuordnen, bevor ich diese Zuordnung verwenden konnte.

Beispiel:

@echo off net use Z: \\server\share /u:domain\username *password* robocopy c:\folder Z:\backup /o /p /t /i /o /n /s 
Diese Antwort hat das Problem für mich identifiziert, aber die bessere Lösung (in meinem Fall zumindest) ist die Verwendung von UNC-Pfaden, anstatt ein Netzlaufwerk abzubilden. Son of a Beach vor 6 Jahren 1
0
Son of a Beach

Ähnlich wie bei @Levi verwendete ich ein zugeordnetes Netzlaufwerk. In meinem Fall bestand die einfachere Lösung jedoch darin, UNC-Pfade zu verwenden. Statt dieses Argument zu verwenden:

"W:\blah\script.py" 

Ich benutze jetzt dieses Argument:

"\\file-server-02\path\blah\script.py"