Ich habe einen Daemon-Prozess, den ich stündlich auf meinem Computer ausführe, und obwohl ich das Kontrollkästchen Hidden
aktiviert habe, funktioniert er nicht.
Die Task wird stündlich ausgeführt, zeigt jedoch das schwarze Befehlsfenster an, in dem meine .NET Console-App ausgeführt wird. Dies bleibt sichtbar, bis die Aufgabe abgeschlossen ist, und verschwindet dann. Das ist sehr ärgerlich, weil es auftaucht und alles unterbricht, was ich tue:
Ich möchte es wirklich versteckt haben. Wie kann ich das beheben?
windows-7
task-scheduler
Joshua Frank
quelle
quelle
Antworten:
Aktivieren Sie das Kontrollkästchen "Ausführen, ob Benutzer angemeldet ist oder nicht", und die ausführbare Datei wird im Hintergrund ausgeführt.
quelle
Warum wird die geplante Windows 7-Aufgabe ausgeblendet? sollte erklären, warum dies passiert.
In dieser TechNet-Beschreibung der allgemeinen Aufgabeneigenschaften heißt es außerdem:
Bedeutet dies nicht, dass das Kontrollkästchen nur die Aufgabe selbst vor der Benutzeroberfläche des Schedulers verbirgt und nicht das tatsächlich geplante Programm?
quelle
Okay, nach einigen weiteren Recherchen habe ich diese Antwort auf StackOverflow gefunden:
Ein Kommentar weist darauf hin, dass dies der Aufgabe die vollen Rechte einräumt, was ärgerlich sein könnte, aber in diesem Fall akzeptabel ist.
Aber was
Hidden
tun, wenn dies nicht der Fall ist? Und warum hat das Benutzerkonto, mit dem das Programm ausgeführt wird, etwas damit zu tun, ob es sichtbar ist?quelle
SYSTEM
Konto keinen Zugriff auf die EFS-verschlüsselten Dateien anderer Benutzer hat.DIE ULTIMATIVE LÖSUNG
Wenn dies für Sie ein Deal Breaker ist, besteht die ultimative Lösung darin, eine JS-Skriptdatei wie die folgende zu erstellen, die Ihren Befehl in einem versteckten Fenster ausführt, auf die Beendigung Ihres Befehls wartet und seinen Fehlercode zurückgibt:
Speichern Sie dies als js-Datei (myjob.js) und fügen Sie dies zu Ihrem Aufgabenplaner hinzu: Viel Spaß
quelle
"Ausführen, ob Benutzer angemeldet ist oder nicht" lässt die verborgene Option zu. Beachten Sie, dass Sie Ihre Anmeldeinformationen angeben müssen, nachdem Sie dies ausgewählt haben.
quelle
Beide :
verhindert das schwarze Befehlsfenster, ist sich jedoch der Nachteile bewusst: Sie können mit einigen GUI-Automatisierungstools wie "AutoIt" oder "SendKeys" in PowerShell nicht arbeiten, da Windows die Aufgaben in einer Umgebung ohne Kopf ausführt.
quelle
Ich lasse die Standardeinstellungen und schreibe kurze benutzerdefinierte Programme, die die Ausführung starten, ohne dass ein Fenster angezeigt wird. Verwenden Sie beispielsweise den folgenden Code, um eine Batchdatei auszuführen, ohne ein Eingabeaufforderungsfenster aufzurufen. Stellen Sie die Aufgabe so ein, dass sie "RunBatchFile.exe (path_to_batch_file)" erzeugt.
quelle
ProcessWindowStyle.Hidden
bestimmte Portion zurückzuführen ist, richtig? Ich sehe hier etwas darüber: msdn.microsoft.com/en-us/library/…Ich hatte dieses Problem mit geplanten Powershell-Aufgaben (die ich über GPO bereitgestellt habe). Am Ende habe ich es in ein Befehlsfenster gewickelt:
quelle