Task Scheduler- Batch "Ausführen, ob Benutzer angemeldet ist oder nicht" funktioniert nicht

1886
t_venuga

Ich habe eine Batchdatei ( EnableDisable.bat) erstellt, die einen Windows Task Scheduler- Job ( SampleJob) auf einem lokalen System deaktiviert, wenn ein Job mit demselben Namen ( SampleJob) bereits aktiviert ist und auf einem anderen Remote-System ausgeführt wird.

Es scheint, dass, wenn der Job mit der Run whether user is logged on or notaktivierten Option eingerichtet wurde, der Job Run with Highest privilegeseinfach nicht funktioniert und der Grund schwer zu bestimmen ist und ich nicht sicher bin, wie er die Fehler beheben soll.


Batchdatei

for /f "tokens=1" %%j in ('schtasks /Query /S [servername] /TN "SampleJob" /NH ^| findstr "Ready ^| Running"') do schtasks /Change /Disable /TN "%%j" 

Hinweis: Das ferne System wird als [ servername] bezeichnet und bei Bedarf durch den tatsächlichen Namen des fernen Servers ersetzt.


Windows Task Scheduler-Jobkonfigurationen

  • Diese Batchdatei ist als Windows Task Scheduler-Job konfiguriert
    • Name :EnableDisableJob
    • Sicherheitsoption :Run whether user is logged on or not
      • Run with Highest privileges

Beobachtungen

Wenn ich den Job mit dem betreibe Run only when user is logged on, scheint es ohne Probleme gut zu funktionieren. Es scheint jedoch, als wenn ich versuche, es mit der anderen Option auszuführen, und weil dieses Konto nicht angemeldet ist, kann es nicht ausgeführt werden, wenn dies der Fall ist.


Frage

Wie kann ich dieses Problem beheben und wo soll ich mit dem Prozess beginnen?

2

1 Antwort auf die Frage

0
Pimp Juice IT

Um dies zu beheben, sind hier einige Dinge aufgeführt

  1. Melden Sie sich von dem Computer ab, auf dem Sie diesen Prozess ausführen, User1und melden Sie sich als User2Account an. Sie stellen sicher, dass ein Profil erstellt wird User2. Der C:\Users\User2Ordner sollte also existieren.
  2. Während Sie auf diesem Rechner angemeldet als User2die geplante Aufgabe ausführen oder zumindest testen Sie es mit Run only when user is logged onund, Run with highest privilegesund dies sollte die Eingabeaufforderung Fenster Pop - up, wenn es läuft und Fehler zeigen, etc., die Sie nicht sehen, wäre es mit der Lauf Run whether user is logged on or notOption. Wenn Sie einen Fehler "Zugriff verweigert" oder etwas ähnliches sehen, liegt ein Berechtigungsproblem vor.

Genehmigungsausgabe

Sie möchten sicherstellen, dass das Benutzerkonto, mit dem Sie den geplanten Taskplaner-Job mit ausführen Run whether user is logged on or notund Run with highest privilegesZugriff auf haben. . .

  1. Führen Sie die Eingabeaufforderung ( cmd.exe) von der Maschine aus, auf der Sie die Aufgabe ausführen
  2. Starten Sie schtasksvon dem Computer aus, auf dem Sie die Aufgabe ausführen
  3. schtasksRemote- Ausführung für den Remote-Server, für den Sie die Task ausführen

Andere Dinge

  1. Machen Sie das User2Konto zu einem lokalen Administrator auf dem Computer, auf dem Sie die Aufgabe vorübergehend ausführen, und melden Sie sich dann auf dem Computer ab und versuchen Sie es erneut, um Probleme mit der lokalen Maschine auszuschließen.

  2. Vergleichen Sie die Sicherheitsunterschiede auch mit der User1und User2auf Remote-Computern, Domänen-Sicherheitsgruppen usw.


Weitere Ressourcen