Wenn Sie über eine .BAT-Datei verfügen und versuchen, diese 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 eine grundlegende Aufgabe in Task Scheduler erstellt und auf das Beste gehofft. Leider ist nichts passiert, als mein Computer hochfuhr. Nach vielen Versuchen 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 die Batchdatei ohne manuellen Eingriff 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, über Vollzugriffsberechtigungen für den Ordner verfügt, der das Skript, das Skript selbst und alle Ordner / Dateien enthält, die das Skript bei der 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 Weg ist C: \ Benutzer \ Benutzername \ Dokumente. Ich ging zu C: \ Users \ Benutzername und klicke mit der rechten Maustaste auf Unterlagen Ordner und klickte auf Eigenschaften. Dann habe ich auf das geklickt Sicherheit Tab.
Wie Sie sehen, das Benutzerkonto Aseem wurde explizit hinzugefügt und gegeben Volle Kontrolle Genehmigung. 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, dies zu tun, da 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 gehen C: \ testKlicken Sie mit der rechten Maustaste auf diesen Ordner und fügen Sie dort mein Benutzerkonto mit Vollzugriffsberechtigungen hinzu. Es ist irgendwie ärgerlich, dass Sie das 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 des lokalen Kontos sein Administratoren Gruppe auf dem Computer. In meinem Fall ist das Aseem-Konto ein Administratorkonto und daher Teil der lokalen Administratorgruppe.
Schritt 2: Überprüfen Sie die Taskplaner-Einstellungen
Nun gehen wir zum Taskplaner und ändern dort die entsprechenden Einstellungen. Öffnen Sie den Taskplaner und finden Sie Ihre Aufgabe unter Aktive Aufgaben Sektion. 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. Erstens auf der Allgemeines Auf dieser Registerkarte müssen Sie das Benutzerkonto überprüfen, das zur Ausführung der Aufgabe verwendet wird. In meinem Fall ist es das Aseem Konto, für das ich zuvor Berechtigungen im Dateisystem erteilt hatte und das zur Gruppe Administratoren auf dem Computer gehört.
Als nächstes müssen Sie das auswählen Führen Sie aus, ob der Benutzer angemeldet ist oder nicht Option und wählen Sie Windows Vista, Windows Server 2008 in dem Konfigurieren Sie für Box.
Auf der Aktionen Registerkarte müssen Sie das Skript auswählen und auf klicken Bearbeiten und fügen Sie dann den Pfad zu dem Ordner hinzu, der das Skript in th enthälte Start in (optional) Box. Das mag unnötig erscheinen, ist es aber nicht. In meinem Fall stelle ich ein C: \ Benutzer \ Aseem \ Documents \ in der BOx.
Klicken Sie jetzt 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.
Zuletzt sollten Sie die Aufgabe einmal in Task Scheduler manuell ausführen, um sicherzustellen, dass sie ausgeführt wird. Wenn es nach der Änderung 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 der 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 zum Zugriff auf die Remotecomputer 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. Zum Beispiel anstatt zu verwenden F: \ Daten \, du solltest benutzen \ Computername \ Freigabename \ Daten \ im Skript Wenn Sie Ihr Skript immer noch nicht ausführen können, schreiben Sie hier einen Kommentar, und ich versuche zu helfen. Genießen!