Geplante Aufgabe wird für .BAT-Datei nicht ausgeführt behoben

Wenn Sie eine .BAT-Datei haben und versuchen, sie mithilfe des Taskplaners in Windows automatisch auszuführen ,(Task Scheduler) sind Sie(Windows) möglicherweise auf das Problem gestoßen, dass sie einfach nicht ausgeführt wird, es sei denn, Sie führen die Aufgabe manuell aus.

Ich habe eine Batch-Datei erstellt, die alles in einem temporären Ordner löscht, wenn der Computer hochfährt. Ich habe eine einfache Aufgabe im Taskplaner(Task Scheduler) erstellt und auf das Beste gehofft. Leider passierte beim Hochfahren des Rechners nichts. Nach langem Ausprobieren habe ich herausgefunden, wie ich das Skript zum Laufen bekomme.

In diesem Artikel werde ich Sie durch die Einstellungen und Berechtigungen führen, die Sie anpassen müssen, damit Ihre Batch-Datei ohne manuellen Eingriff ausgeführt wird.

Schritt 1: Überprüfen Sie die File/Folder Ordnerberechtigungen

Der erste Schritt zur Behebung dieses Problems besteht darin, sicherzustellen, dass das Konto, das Sie zum Ausführen des Skripts im Taskplaner(Task Scheduler) verwenden, über Vollzugriffsberechtigungen(Full Control) für den Ordner verfügt, der das Skript enthält, das Skript selbst und alle Ordner/Dateien, die das Skript berührt, wenn es ausgeführt wird.

Zum Beispiel habe ich das folgende Batch-Skript unten erstellt:

set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Ich habe die .BAT -Datei in meinem Ordner „Dokumente“ gespeichert. Der Pfad ist C:\Users\username\Documents . Ich ging zu C:\Benutzer\Benutzername, klickte mit der rechten Maustaste auf den Ordner Dokumente(Documents) und klickte auf Eigenschaften(Properties) . Dann klickte ich auf die Registerkarte Sicherheit .(Security)

Wie Sie sehen, wurde das Benutzerkonto Aseem explizit hinzugefügt und mit der Berechtigung Vollzugriff(Full Control) versehen. Jetzt müssen Sie dasselbe für den Ordner tun, der das Skript enthält, und für das Skript selbst. Gehen Sie nicht einfach davon aus, dass Sie loslegen können, wenn Sie dem Ordner, der das Skript enthält, Berechtigungen erteilen, denn das sind Sie nicht. Legen Sie zuletzt Berechtigungen für alle Dateien und Ordner fest, mit denen das Skript interagiert.

In meinem Fall musste ich zu C:\test gehen, mit der rechten Maustaste auf diesen Ordner klicken und dort mein Benutzerkonto mit Vollzugriff(Full Control) hinzufügen . Es ist etwas ärgerlich, dass Sie dies tun müssen, aber es ist die einzige Möglichkeit, das Skript zum Laufen zu bringen.

Hinweis: Das Konto, das zum Ausführen des Skripts verwendet wird, muss Teil der lokalen Administratorgruppe auf dem Computer sein. In meinem Fall ist das Aseem-Konto ein Administratorkonto und daher Teil der lokalen Administratorengruppe (Note: The account that is being used to run the script has to be part of the local Administrators group on the computer. In my case, the Aseem account is an administrator account and therefore part of the local Administrators group. )

Schritt 2: Überprüfen Sie die Taskplaner-Einstellungen(Task Scheduler Settings)

Gehen wir(Task Scheduler) nun zum Taskplaner und ändern dort die entsprechenden Einstellungen. Öffnen Sie den Taskplaner(Task Scheduler) und suchen Sie Ihre Aufgabe im Abschnitt Aktive Aufgaben( Active Tasks) . Sie sollten in alphabetischer Reihenfolge aufgeführt werden.

Doppelklicken Sie darauf und es öffnet die Aufgabe von selbst im selben Fenster. Um die Aufgabe zu bearbeiten, müssen Sie mit der rechten Maustaste darauf klicken und Eigenschaften(Properties) auswählen .

Es gibt mehrere Registerkarten und hier müssen einige Dinge überprüft und geändert werden. Zunächst müssen Sie auf der Registerkarte Allgemein(General) das Benutzerkonto überprüfen, das zum Ausführen der Aufgabe verwendet wird. In meinem Fall ist es das Aseem- Konto, dem ich zuvor im Dateisystem Berechtigungen erteilt hatte und das Teil der Administratorgruppe(Administrators) auf dem Computer ist.

Als nächstes müssen Sie die Option Ausführen, ob Benutzer angemeldet ist oder nicht auswählen und ( Run whether user is logged on or not)Windows Vista, Windows Server 2008 im Feld Konfigurieren für auswählen.(Configure for)

Auf der Registerkarte Aktionen(Actions) müssen Sie das Skript auswählen, auf Bearbeiten(Edit) klicken und dann den Pfad zum Ordner mit dem Skript im Feld Starten in (optional)(e Start in (optional)) hinzufügen . Das mag unnötig erscheinen, ist es aber nicht. In meinem Fall habe ich C:\Users\Aseem\Documents\ in das Feld eingegeben.

Klicken Sie nun auf OK , um die Einstellungen zu speichern. Wenn Sie dies tun, wird möglicherweise ein Dialogfeld angezeigt, in dem Sie das Kennwort für das Benutzerkonto eingeben müssen, das die Aufgabe ausführen wird. Daraus ergibt sich eine weitere Anforderung. Sie können kein Konto verwenden, das kein Passwort hat. Das Benutzerkonto muss ein Passwort haben, damit die Aufgabe ausgeführt werden kann.

Schließlich sollten Sie die Aufgabe einmal manuell im Taskplaner(Task Scheduler) ausführen , um sicherzustellen, dass sie ausgeführt wird. Wenn es manuell gut läuft, nachdem Sie alle Einstellungen geändert haben, sollte es laufen, wenn es ausgelöst werden soll. In meinem Fall sollte es beim Start passieren und nachdem ich die Änderungen vorgenommen hatte, funktionierte alles einwandfrei.

Beachten Sie Folgendes: Wenn Ihr Skript beim Ausführen auf verschiedene Computer in einer Domäne zugreift, sollten Sie versuchen, das Domänenadministratorkonto zum Ausführen der Aufgabe zu verwenden. Dadurch wird sichergestellt, dass das Konto über ausreichende Berechtigungen für den Zugriff auf die Remotecomputer verfügt.

Beachten Sie auch, ob Ihr Skript auf Ressourcen auf einer Netzwerkfreigabe zugreift. Wenn Ihr Skript Buchstaben verwendet, um auf das Netzwerk zuzugreifen, wird es möglicherweise nicht ausgeführt. Anstelle von F:\data\ sollten Sie beispielsweise \\machinename\share_name\data\ Â im Skript verwenden. Wenn Sie Ihr Skript immer noch nicht zum Laufen bringen können, posten Sie hier einen Kommentar und ich werde versuchen zu helfen. Genießen!



About the author

Ich bin ein Computerprofi mit über 10 Jahren Erfahrung. In meiner Freizeit helfe ich gerne am Schreibtisch aus und bringe Kindern den Umgang mit dem Internet bei. Meine Fähigkeiten umfassen viele Dinge, aber das Wichtigste ist, dass ich weiß, wie man Menschen hilft, Probleme zu lösen. Wenn Sie jemanden brauchen, der Ihnen bei etwas Dringenden helfen kann, oder einfach nur ein paar grundlegende Tipps wünschen, dann wenden Sie sich bitte an mich!



Related posts