Wenn Sie über eine .BAT-Datei verfügen und versuchen, sie unter Verwendung des Taskplaners in Windows automatisch auszuführen, ist möglicherweise das Problem aufgetreten, bei dem es einfach nicht ausgeführt wird, wenn Sie die Task nicht manuell ausführen.
Ich habe eine Batch-Datei erstellt, die beim Starten des Computers alles in einem temporären Ordner löscht. Ich habe in Task Scheduler eine grundlegende Aufgabe erstellt und auf das Beste gehofft. Leider ist nichts passiert, als mein Computer hochfuhr. Nach vielen Versuchen und Fehlern habe ich herausgefunden, wie ich das Skript ausführen kann.
In diesem Artikel werde ich Sie durch die Einstellungen und Berechtigungen führen, die Sie anpassen müssen, damit Ihre Batchdatei ohne manuelle Eingriffe ausgeführt werden kann.
Schritt 1: Überprüfen Sie die Datei- / Ordnerberechtigungen
Um dieses Problem zu beheben, müssen Sie zunächst sicherstellen, dass das Konto, das Sie zur Ausführung des Skripts in Task Scheduler verwenden, Vollzugriffsberechtigungen für den Ordner besitzt, der das Skript, das Skript selbst und alle Ordner / Dateien enthält, die das Skript bei seiner Ausführung berührt.
Ich habe zum Beispiel das folgende Batch-Skript erstellt:
set folder = "C: \ test" cd / d% folder% für / 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 lautet C: \ Benutzer \ Benutzername \ Dokumente . Ich bin zu C: \ Users \ Benutzername gegangen, habe mit der rechten Maustaste auf den Ordner Dokumente geklickt und auf Eigenschaften geklickt. Dann habe ich auf die Registerkarte Sicherheit geklickt.
Wie Sie sehen, wurde das Benutzerkonto Aseem explizit hinzugefügt und mit der Berechtigung Vollzugriff 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, wenn Sie Berechtigungen für den Ordner mit dem Skript erteilen, bereit sind, zu gehen, weil Sie dies nicht tun. 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 Vollzugriffsberechtigungen hinzufügen. Es ist irgendwie ärgerlich, dass Sie das tun müssen, aber es ist der einzige Weg, um 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.
Schritt 2: Überprüfen Sie die Taskplaner-Einstellungen
Nun gehen wir zum Taskplaner und ändern dort die entsprechenden Einstellungen. Öffnen Sie den Taskplaner und suchen Sie Ihre Aufgabe im Abschnitt " Aktive Aufgaben ". Sie sollten in alphabetischer Reihenfolge aufgeführt werden.
Doppelklicken Sie darauf und es öffnet sich die Aufgabe im selben Fenster. Um die Aufgabe zu bearbeiten, klicken Sie mit der rechten Maustaste darauf und wählen Sie Eigenschaften .
Es gibt mehrere Registerkarten und ein paar Dinge müssen hier überprüft und geändert werden. Zunächst müssen Sie auf der Registerkarte Allgemein das Benutzerkonto überprüfen, das zum Ausführen der Aufgabe verwendet wird. In meinem Fall handelt es sich um das Aseem- Konto, für das ich zuvor im Dateisystem Berechtigungen erteilt hatte, und das zu der Gruppe Administratoren auf dem Computer gehört.
Als Nächstes müssen Sie die Option Ausführen, ob Benutzer angemeldet ist oder nicht, und im Feld Konfigurieren für Windows Vista, Windows Server 2008 auswählen.
Auf der Registerkarte Aktionen müssen Sie das Skript auswählen, auf Bearbeiten klicken und dann den Pfad zu dem Ordner hinzufügen, der das Skript im Feld Start in (optional) enthält . Dies mag unnötig erscheinen, ist es aber nicht. In meinem Fall füge ich C: \ Users \ Aseem \ Documents \ in der Box ein.
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 soll. Dies bringt eine andere Anforderung mit sich. Sie können kein Konto ohne Kennwort verwenden. Das Benutzerkonto muss über ein Kennwort verfügen, damit die Aufgabe ausgeführt werden kann.
Als letztes sollten Sie die Aufgabe einmal in Task Scheduler manuell ausführen, um sicherzustellen, dass sie ausgeführt wird. Wenn es nach dem Ändern aller Einstellungen problemlos manuell ausgeführt wird, sollte es ausgeführt werden, wenn es ausgelöst werden soll. In meinem Fall sollte es beim Start passieren und nachdem ich die Änderungen vorgenommen hatte, hat alles gut funktioniert.
Wenn Ihr Skript bei seiner Ausführung auf verschiedene Computer in einer Domäne zugreift, sollten Sie versuchen, das Domänenadministratorkonto zur Ausführung der Aufgabe zu verwenden. Dadurch wird sichergestellt, dass das Konto über ausreichende Berechtigungen für den Zugriff auf die Remote-Computer verfügt.
Beachten Sie auch, wenn Ihr Skript auf Ressourcen in 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 ausführen können, schreiben Sie einen Kommentar hier und ich versuche zu helfen. Genießen!