Jump to content

Task-Scheduler: .exe läuft nur, wenn Benutzer angemeldet ist (Fehler 0x41301)


Empfohlene Beiträge

Geschrieben

Hi zusammen, 

 

Ich habe kürzlich versucht, eine selbstentwickelte .exe-Datei als geplante Aufgabe (Task Scheduler) auf einem Windows 11 Client-Server (Remote Desktop Umgebung) einzurichten.
Die Aufgabe soll alle 10 Tage automatisch ausgeführt werden.
 

Problem:

Solange ich nicht mit meinem Benutzerkonto (Timo) am Remote-Desktop angemeldet bin, schlägt die Ausführung der Aufgabe fehl.
Im Taskplaner wird der Status 0x41301 angezeigt – was bedeutet, dass die Aufgabe angeblich gerade ausgeführt wird, aber sie kommt offenbar nie zum Abschluss.

Sobald ich angemeldet bin und den Task manuell oder geplant starte (z. B. 3 Minuten nach der aktuellen Uhrzeit), läuft die .exe erfolgreich durch.
 

  • Die .exe wird im Auftrag des Benutzerkontos ServiceDesk ausgeführt, den Task allerdings habe ich über mein Nutzer domain/Timo angelegt.
  • ServiceDesk ist Mitglied der lokalen Administratorgruppe.
  • Die nötige Berechtigung „Anmelden als Stapelverarbeitungsauftrag“ ist korrekt vergeben (über secpol.msc geprüft – Administratoren sind dort eingetragen).
     

Warum läuft der Task nur, wenn ich aktiv am System angemeldet bin? Gibt es eine bestimmte Einstellung oder Sicherheitsrichtlinie, die das Verhalten beeinflussen könnte?
Hat jemand bereits ähnliche Erfahrungen gemacht mit .exe-Dateien, die als geplanter Task ohne aktive Benutzersitzung ausgeführt werden sollen?

Task-Einstellungen im Detail:

Allgemein:

  • Autor: DOMAIN\Timo

  • Ausführen mit folgendem Benutzerkonto: ServiceDesk

  • Nur ausführen, wenn Benutzer angemeldet ist:

  • Unabhängig von der Benutzeranmeldung ausführen:

  • Kennwort speichern:

  • Mit höchsten Privilegien ausführen:

  • Konfiguriert für: Windows Vista / Server 2008

Bedingungen:

  • Computer zum Ausführen der Aufgabe reaktivieren:

  • Netzwerk: Alle Verbindungen

  • Alle weiteren Optionen deaktiviert

Einstellungen:

  • Aufgabe bei Bedarf ausführen:

  • Aufgabe beenden erzwingen, falls sie nicht ordnungsgemäß beendet wird:

  • Alle weiteren Optionen deaktiviert


Für jeglich hilfe bin ich sehr dankbar!


Geschrieben
vor 50 Minuten schrieb cj_berlin:

Moin,.

was steht denn im Task Scheduler-Protokoll dazu? Bei angemeldetem Benutzer: Steht da wirklich, dass die Session für "ServiceDesk" initialisiert wurde? Und wenn der Benutzer nicht angemeldet ist, welche Events finden sich da?


Hier das Protokoll bis zu dem Zeitpunkt, an dem ich den Task manuell abgebrochen habe. Die .exe-Datei sollte eigentlich innerhalb von ca. 15 Sekunden durchgelaufen sein – stattdessen hing der Prozess fest..

 

07:30:01

107 Task triggered on scheduler:

Die Aufgabenplanung hat die Instanz "{4b4684ae-b278-4626-844e-b2f063c26872}" der Aufgabe "\Jobs\Job1" aufgrund einer Zeitauslöserbedingung gestartet.

 

07:30:01

129 Created task process:

Die Aufgabenplanung hat die Aufgabe "\Jobs\Job1", Instanz "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" mit der Prozess-ID 14021 gestartet.

 

07:30:01

100 Task started: 

Die Aufgabenplanung hat die Instanz "{4b4684ae-b278-4626-844e-b2f063c26872}" der Aufgabe "\Jobs\Job1" für den Benutzer "Domain\servicedesk" gestartet.

 

07:30:01

200 Action started:

Die Aufgabenplanung hat die Aktion "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" in der Instanz "{4b4684ae-b278-4626-844e-b2f063c26872}" der Aufgabe "\Jobs\Job1" gestartet.

 

08:47:40

330 Task stopped due to user request: 

Die Aufgabenplanung hat die Instanz "{4b4684ae-b278-4626-844e-b2f063c26872}" der Aufgabe "\Jobs\Job1" auf Anforderung des Benutzers "Domain\Timo" beendet.

 

08:47:40
201 Action Completed: 

Die Aufgabenplanung hat die Aufgabe "\Jobs\Job1", Instanz "{4b4684ae-b278-4626-844e-b2f063c26872}", Aktion "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" mit Rückgabecode 2147943691 erfolgreich abgeschlossen.

 

08:47:40

102 Task Completed: 

Die Aufgabenplanung hat die Instanz "{4b4684ae-b278-4626-844e-b2f063c26872}" der Aufgabe "\Jobs\Job1" für den Benutzer "Domain\servicedesk" erfolgreich fertig gestellt.

 

08:47:40

111 Task terminated:
Die Aufgabenplanung hat die Instanz "{4b4684ae-b278-4626-844e-b2f063c26872}" der Aufgabe "\Jobs\Job1" beendet.

Geschrieben

OK, also die EXE, die Du geschrieben hast, ist powershell.exe? Respekt!

 

Spaß beiseite: Wenn die eigene Exe sich genau so verhält, dann ist Dein Problem ja nicht, dass sie nicht startet, sondern, dass sie nicht endet, und Du sie abbrechen musst? Oder sieht der Log, wenn Du nicht angemeldet bist, signifikant anders aus? Womöglich ist der Fehlercode ja richtig, und die vorherige Instanz läuft tatsächlich noch?

 

Um Deine ursprüngliche Frage zu beantworten: Ich habe Derartiges schon tausendmal gemacht, es gibt kein Prinzipielles Problem hier.

Geschrieben
vor 8 Minuten schrieb cj_berlin:

OK, also die EXE, die Du geschrieben hast, ist powershell.exe? Respekt!

 

Spaß beiseite: Wenn die eigene Exe sich genau so verhält, dann ist Dein Problem ja nicht, dass sie nicht startet, sondern, dass sie nicht endet, und Du sie abbrechen musst? Oder sieht der Log, wenn Du nicht angemeldet bist, signifikant anders aus? Womöglich ist der Fehlercode ja richtig, und die vorherige Instanz läuft tatsächlich noch?

 

Um Deine ursprüngliche Frage zu beantworten: Ich habe Derartiges schon tausendmal gemacht, es gibt kein Prinzipielles Problem hier.


Ich starte in meiner geplanten Aufgabe die powershell.exe und übergebe als Argument:

-ExecutionPolicy Bypass "C:\MyTool\SK1\Release\net8.0\win-x64\SK1.exe"


Hintergrund: Ich dachte zunächst, dass ich über PowerShell gehen muss und die ExecutionPolicy umstellen sollte. Allerdings habe ich inzwischen herausgefunden, dass die ExecutionPolicy eher für PowerShell-Skripte relevant ist – also war das in meinem Fall unnötig. Habe ich jetzt auch wieder so angepasst, dass ich den Pfad zu SK1.exe angebe.

Wenn ich mit meinem Benutzerkonto (Timo) am Server angemeldet bin, funktioniert alles problemlos: Die .exe wird ausgeführt, beendet sich korrekt und der Task liefert den Status 0x0 (erfolgreich).

Sobald ich jedoch nicht am System angemeldet bin, schlägt die Ausführung fehl: Die Aufgabe bleibt scheinbar hängen (Fehlercode 0x41301, also "Task wird gerade ausgeführt")...

Um die Frage zurückzukommen, ob der Log sich ändert, wenn ich angemeldet bin
Ja, ich erhalte in für den Task den Status 0x0 (erfolgreich beendet)

Also kann ich es mir nicht erklären, wieso es einmal laufen soll und einmal nicht.
Vorallem wenn mein Benutzerkonto und der ServiceDesk die selben berechtigungen haben.

 

Ich bin lost... :)
 

Geschrieben
vor 3 Stunden schrieb Sunny61:

Startest Du jetzt immer noch die powershell.exe und übergibst deine Exe als Argument oder startest Du deine exe alleine?

 

Aktuell wird nur die .exe direkt gestartet. Ich vermute stark, dass es sich um ein Berechtigungsproblem handelt. Zwar verfügt der Servicedesk über Administratorrechte, dennoch habe ich dem Service-Account jetzt explizit Zugriffsrechte auf den Pfad zur .exe erteilt.

 

Das Programm wird in 10 Tagen erneut ausgeführt – dann sehen wir, ob das Problem damit behoben ist.

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...