CMD-Fenster nach Task schließen
Hallo,
ich habe ein Skript was über einen Task bei jeder User Anmeldung läuft.
Der Task startet eine CMD (die wiederum ein PowerShell-Skript startet), welche der User am besten nicht mitkriegen soll.
Der Aufruf der CMD sieht wie folgt aus:
Nach dem Ausführen bleibt das CMD-Fenster in der Taskleiste offen.
In der Batch steht als letzte Zeile "exit 0", sodass eigentlich die CMD geschlossen werden müsste.
Das Skript läuft auch ohne Fehler.
Der Task kann leider nur ausgeführt werden, wenn der User angemeldet ist (die Option "Unabhängig von der Benutzeranmeldung ausführen" ist nicht möglich).
Hat jemand eine Idee wie man das lösen?
ich habe ein Skript was über einen Task bei jeder User Anmeldung läuft.
Der Task startet eine CMD (die wiederum ein PowerShell-Skript startet), welche der User am besten nicht mitkriegen soll.
Der Aufruf der CMD sieht wie folgt aus:
cmd.exe /C start /min C:\_Local\01_Skripte\ClearDownloads\ClearDownloads.cmd > C:\_Local\01_Skripte\ClearDownloads\ClearDownloads_Debug.log 2>&1
In der Batch steht als letzte Zeile "exit 0", sodass eigentlich die CMD geschlossen werden müsste.
Das Skript läuft auch ohne Fehler.
Der Task kann leider nur ausgeführt werden, wenn der User angemeldet ist (die Option "Unabhängig von der Benutzeranmeldung ausführen" ist nicht möglich).
Hat jemand eine Idee wie man das lösen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 395927
Url: https://administrator.de/forum/cmd-fenster-nach-task-schliessen-395927.html
Ausgedruckt am: 26.12.2024 um 09:12 Uhr
16 Kommentare
Neuester Kommentar
Zitat von @Hyperlink.93:
Das exit bezieht sich sicher auf die ClearDownloads.cmd, das wird ja geschlossen.
Also einfach noch ein exit an die bat...
cmd.exe /C start /min C:\_Local\01_Skripte\ClearDownloads\ClearDownloads.cmd > C:\_Local\01_Skripte\ClearDownloads\ClearDownloads_Debug.log 2>&1
exit
Da fehlen Anführungszeichen nach dem Start für den Titel, les dir mal die Doku dazu durch!Das exit bezieht sich sicher auf die ClearDownloads.cmd, das wird ja geschlossen.
Also einfach noch ein exit an die bat...
cmd.exe /C start /min C:\_Local\01_Skripte\ClearDownloads\ClearDownloads.cmd > C:\_Local\01_Skripte\ClearDownloads\ClearDownloads_Debug.log 2>&1
exit
- Hab ich gerade getestet, bleibt aber dabei, dass das Fenster minimiert geöffnet bleibt
https://ss64.com/nt/start.html
cmd.exe /C start "" /min ........
Wenn du das komplett unsichtbar machen willst, entweder GPO oder via VBS und Run Methode Hidden starten.
Wozu aber extra noch ein extra CMD Skript wenn du sowieso Powershell startest??? Starte doch gleich das PS Skript aus der Aufgabenplanung, damit kannst du alles abfackeln!
Gruß A.
Zitat von @Hyperlink.93:
Die Batch nutze ich um Fehler der PowerShell in das Debug.log zu schreiben, wenn ich die PowerShell direkt starte sehen ich die Fehlermeldungen nicht. Vor allem die Fehlermeldungen wenn die PowerShell aufgrund der Executionpolicy o.ä. gar nicht erst startet
Sorry aber das ist ebenfalls Blödsinn!Die Batch nutze ich um Fehler der PowerShell in das Debug.log zu schreiben, wenn ich die PowerShell direkt starte sehen ich die Fehlermeldungen nicht. Vor allem die Fehlermeldungen wenn die PowerShell aufgrund der Executionpolicy o.ä. gar nicht erst startet
Außerdem gibt es -Executionpolicy ByPass
Tja keiner kennt den Inhalt deiner Skripte. Hier geht das einwandfrei:
c:\Test.cmd
Dann im Taskplaner:
Fertig. Fenster schließt sich von selbst wie zu erwarten war.
Aber wie gesagt würde ich das gleich per VBS und Run-Methode gleich unsichtbar starten.
oder direkt im Taskplaner mit Parameter -WindowStyle Hidden starten.
Du hast viele Möglichkeiten wie du siehst die alle funktionieren wenn man sie denn korrekt anwendet.
That's it.
Ciao.
c:\Test.cmd
@echo off
echo BlaBlaBla
powershell -Executionpolicy ByPass -NoProfile -Command "write-host 'Das ist ein Test'; sleep 2"
exit
Fertig. Fenster schließt sich von selbst wie zu erwarten war.
Aber wie gesagt würde ich das gleich per VBS und Run-Methode gleich unsichtbar starten.
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "cmd /c C:\script.cmd",0,False
Du hast viele Möglichkeiten wie du siehst die alle funktionieren wenn man sie denn korrekt anwendet.
That's it.
Ciao.
goto :EOF
Das ist dein Problem in Zeile 64. Damit überspringt du nämlich das Exit 0 am Ende der Batch und deshalb bleibt das Fenster auch offen . Und genau deshalb wollte ich den Code sehen.Also mach dir vor die letzte Zeile mit dem Exit noch eine Sprungmarke und springe diese an oder platziere das Exit an der Stelle
Keine Ursache. Frohe Festtage.