gelöst CMD-Fenster nach Task schließen

Mitglied: Hyperlink.93

Hyperlink.93 (Level 1) - Jetzt verbinden

17.12.2018 um 07:16 Uhr, 4619 Aufrufe, 16 Kommentare

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?
Mitglied: Stefan007
17.12.2018 um 07:33 Uhr
wo ist denn der Pfad zur PS Datei?
Bitte warten ..
Mitglied: sabines
17.12.2018, aktualisiert um 07:38 Uhr
Moin,

was genau macht das Skript und was spricht dagegen es als Benutzer Anmelde Skript per GPO laufen zu lassen.
Oder den Task per GPO erstellen etc?
Wie rufst Du das PS auf?

Gruss
Bitte warten ..
Mitglied: Xerebus
17.12.2018 um 08:24 Uhr
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
Bitte warten ..
Mitglied: Hyperlink.93
17.12.2018, aktualisiert um 08:53 Uhr
wo ist denn der Pfad zur PS Datei?
  • Die PS Datei liegt im selben Verzeichnis. Siehe auch meine Antwort auf die Frage(n) von Sabines.
Bitte warten ..
Mitglied: Hyperlink.93
17.12.2018, aktualisiert um 08:55 Uhr
was genau macht das Skript und was spricht dagegen es als Benutzer Anmelde Skript per GPO laufen zu lassen.
Oder den Task per GPO erstellen etc ?
  • Das Skript räumt den Downloads Ordner bei den Usern auf, sodass der nicht voll gemüllt wird. Ich möchte aber nicht den Usern das Recht "als Job" anmelden geben. Daher geht auch das mit der GPO nicht.

Wie rufst Du das PS auf?

  • Der PS Aufruf ist wie folgt aufgebaut:
Bitte warten ..
Mitglied: Hyperlink.93
17.12.2018, aktualisiert um 08:55 Uhr
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
Bitte warten ..
Mitglied: Xerebus
17.12.2018 um 10:04 Uhr
In die ClearDownloads.cmd ans ende auch ein exit.
Bitte warten ..
Mitglied: 137846
17.12.2018, aktualisiert um 11:06 Uhr
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

  • Hab ich gerade getestet, bleibt aber dabei, dass das Fenster minimiert geöffnet bleibt
Da fehlen Anführungszeichen nach dem Start für den Titel, les dir mal die Doku dazu durch!
https://ss64.com/nt/start.html
Dann ist dort auch ein Exit überflüssig denn das sagt der Parameter /c ja schon aus. Im File selbst nat. ein Exit.

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.
Bitte warten ..
Mitglied: Hyperlink.93
17.12.2018 um 15:09 Uhr
Zitat von 137846:

Da fehlen Anführungszeichen nach dem Start für den Titel, les dir mal die Doku dazu durch!
https://ss64.com/nt/start.html
Dann ist dort auch ein Exit überflüssig denn das sagt der Parameter /c ja schon aus. Im File selbst nat. ein Exit.

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.

Leider klappt das auch nicht *seufz*...
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
Bitte warten ..
Mitglied: 137846
17.12.2018, aktualisiert um 15:23 Uhr
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!
Außerdem gibt es -Executionpolicy ByPass
Bitte warten ..
Mitglied: Hyperlink.93
17.12.2018 um 15:31 Uhr
Zitat von 137846:

Sorry aber das ist ebenfalls Blödsinn!
Außerdem gibt es -Executionpolicy ByPass

Das ist korrekt aber für sämtliche Fälle eine Exception schreiben die dann den Status quasi abfragt und die Error Message in ein Log schreibt welches ich auswerten kann pro User bzw. pro passende Aktion ist einfach ätzend. Da ist der Fall mit dem CMD-Stderr einfacher... aber egal, darum geht es ja nicht, jeder hat seine Wege die er nutzt.
Mein Problem ist einfach, dass das CMD-Fenster nicht geschlossen wird.
Bitte warten ..
Mitglied: 137846
17.12.2018, aktualisiert um 16:49 Uhr
Tja keiner kennt den Inhalt deiner Skripte. Hier geht das einwandfrei:

c:\Test.cmd
Dann im Taskplaner:

screenshot - Klicke auf das Bild, um es zu vergrößern

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.
Bitte warten ..
Mitglied: Hyperlink.93
18.12.2018 um 07:34 Uhr
Danke schon mal für die Hilfe, mir ist/war nicht bewusst wie wichtig dir/euch der Code ist, da ich denke das an dem nichts falsch ist.
Es läuft ja, nur bleibt das CMD-Fenster nach dem es fertig ist noch in der Taskleiste geöffnet. Ich dachte und tippe immer noch darauf das es nur ein Fehler im Aufruf sein könnte... aber mal sehen, vielleicht entdeckst du/ihr doch noch was...

Archiv-Ordner Prüfung:
Prüfung auf Duplikate:
Prüfung des Alters der Datei:
Prüfung des Alters der archivierten Dateien:
Reminder Message Box wenn Dateien älter 3 Monate sind:
End-Meldung des Skriptes (danach kommt keine einzige Zeile mehr):

Funktion WriteLog:
Funktion GetDateTimeString:
Die Batch sieht wie folgt aus:
Der Aufruf im Task Scheduler sieht wie folgt aus:
tasksched - Klicke auf das Bild, um es zu vergrößern

Da nicht die komplette Zeile zusehen ist hier nochmal in Text-Form:
Die VBS Methode würde ja bedeuten (wenn ich es richtig verstanden habe), dass ich quasi noch ein drittes "Skript" brauche, korrekt?
Das würde ich gerne vermeiden.. und die PowerShell direkt starten hat halt wie gesagt gewisse Nachteile, wenn es um Fehlerbehandlungen geht.
In dem Skript wird es vielleicht nicht unbedingt notwendig sein, es gibt aber sicherlich auch Skripte die ggf. Fehler aufwerfen die man nicht sofort sieht oder beim Testen mitkriegt, welche dann durch den Aufruf über die CMD und dem Stderr ins Log analysiert und behoben werden können.
Bitte warten ..
Mitglied: 137846
LÖSUNG 18.12.2018, aktualisiert um 08:15 Uhr
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
Bitte warten ..
Mitglied: Hyperlink.93
18.12.2018 um 08:24 Uhr
Ah okay... das hatte ich extra hinzugefügt am Ende weil ich mir dachte das es fehlt!
Jedoch nicht bedacht das goto :EOF das dann natürlich überspringt.

Danke :D
Bitte warten ..
Mitglied: 137846
18.12.2018, aktualisiert um 09:19 Uhr
Keine Ursache. Frohe Festtage.
Bitte warten ..
Heiß diskutierte Inhalte
Windows Netzwerk
Netzwerkkomponent mit SD-Kartenslot
gelöst waddalosFrageWindows Netzwerk26 Kommentare

Hallo an alle, folgendes Problem gibt es bei uns im Unternehmen: Der Wareneingang soll jeden Eingang fotografieren und anschließend ...

Router & Routing
Wireguard VPN mit 2x RaspberryPI LAN zu LAN
gelöst danoneFrageRouter & Routing21 Kommentare

Hallo zusammen, ich habe mich die letzten Tage mit der grundsätzlichen Funktion von Wireguard auseinander gesetzt und konnte das ...

Server
File Portal mit Userverwaltung gesucht
McLionFrageServer16 Kommentare

Hallo zusammen, ich suche eine Art Fileserver im Webbrowser. Es gibt diese zwar wie Sand am Meer, jedoch ohne ...

Netzwerke
Heimnetzwerk erweitern
TellMyWifiLoveHerFrageNetzwerke11 Kommentare

Gott zum Gruße die Herrn und Damen, Ich habe bereits einige Seiten im großen weiten interwebz erforscht aber konnte ...

PHP
Fehler mit PHP-FPM
adriaanFragePHP10 Kommentare

Hallo guten Abend liebe Forenmitglieder, ich habe ein Problem. Nämlich habe ich ein Kontroll PHP Skript heruntergeladen und damals ...

Windows Server
Internetzugang über Terminalserver
Felix0201FrageWindows Server10 Kommentare

Hallo, ich habe folgendes Anliegen. Wir wollen einen Terminalserver für ca. 20-25 Nutzer bereitstellen. Ist es da besser den ...

Ähnliche Inhalte
LAN, WAN, Wireless
RConfig Scheduled Task
gelöst gelbie1907FrageLAN, WAN, Wireless4 Kommentare

Hallo zusammen. Ich habe mir das Tool rConfig heruntergeladen und einen CentOS Server aufgesetzt, auf dem das System läuft. ...

Windows 10
Sheduled task mit GUI
gelöst bk900042FrageWindows 104 Kommentare

Hallo Community, auf meinem VPS will ich sicherstellen, daß eine Applikation immer läuft. Um sie problemlos im gemischten Modus ...

Windows 7
Task beenden nach Zufallszeit
ZockervogelFrageWindows 77 Kommentare

Hallo, gibt es einem Möglichkeit einen Task zu einer Zufallszeit zu beenden ? ich stelle mir das so vor. ...

Batch & Shell
CMD startet CMD als Admin inkl. Skript
gelöst K-ist-KFrageBatch & Shell6 Kommentare

Hallo, ich möchte ein Skript (ohne Admin) starten, das ein Skript startet (und als Admin ausführt) Skript A: (liegt ...

Batch & Shell

CMD: Unterschiede bei cmd Dateien in der Ausführung

gelöst ralfkauskFrageBatch & Shell10 Kommentare

Hallo zusammen Ich habe gerade ein kleines Verständnisproblem. Durch ein Powershell Skript habe ich mir etliche .cmd Dateien erstellen ...

Batch & Shell

Powershell Task funktioniert nicht

gelöst Cougar77FrageBatch & Shell7 Kommentare

Hallo, mir passiert hier grade etwas komisches. Ich habe eine Zeile in meinem PS-Skript, das eigentlich nur eine einfache ...

Neue Fragen
Administrator Magazin
11 | 2020 Virtualisierung ist aus der IT nicht mehr wegzudenken. In der November-Ausgabe des IT-Administrator Magazins dreht sich der Schwerpunkt um das Thema "Server- und Storage-Virtualisierung". Darin erfahren Sie, wie sich die Virtualisierungstechnologie entwickelt hat, welche Varianten es im Bereich Server und Speicher gibt und wie ...
Neue Beiträge
Neue Jobangebote
Server- und Storage-VirtualisierungServer- und Storage-VirtualisierungBerechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid Cloud