Heute mal ein bisschen Kommandozeilenspaß:
Wie kann ich eigentlich Tasks bzw. Prozesse von der Kommandozeile aus betrachten und beenden?
Das geht extrem einfach und vor allem mit Bordmitteln ohne extra Tools.
Zum Auswerten der Tasks öffnen wir uns zuerst mal eine Dosbox mit Ausführen -> Cmd.exe.
cmd.exe
Mit einem einfachen “tasklist” werden uns alle Tasks direkt in die Kommandozeile geworfen.
tasklist
Die Tasklist kann dann natürlich auch in eine Textdatei geschrieben werden z.B. direkt auf eine Festplatte oder auf einen UNC-Netzwerkpfad oder wohin auch immer.
tasklist >c:\tasks.txt
Wen nur bestimmte Prozesse interessieren kann mit Filtern arbeiten – eine Übersicht über alle Filter bekommt man mit dem “/?”-Parameter.
tasklist /?
Ein paar Beispiele für Filter:
tasklist /fi “memusage gt 25000″
Nur Prozesse mit einem Speicherverbraucht größer als 25MB werden angezeigt
tasklist /fi “username eq %username%”
Nur Prozesse des gerade angemeldeten Benutzers werden angezeigt.
Um erweiterte Informationen zu den gefundenen Tasks anzuzeigen gibt es den “/v” Switch (=verbose)
tasklist /fi “memusage gt 25000″ /v
Ihr seht schon das man damit viele spaßige Dinge tun kann.
Um nun Prozesse zu beenden gibt es das Konsolentool “taskkill.exe” das ebenfalls eine sehr ähnliche Syntax zu Tasklist.exe hat. Ich kann mir dabei frei aussuchen ob ich den Task anhand seiner PID, des Namens oder mehrere Tasks auf einmal anhand von den Tasklist Filterkriterien beenden möchte.
Einen einfachen Task beenden:
taskkill /im calc.exe
Hier wurde jetzt die erste Instanz des Taschenrechers beendet. Wenn ich sicher gehen will, dass alle Taschenrechner Instanzen beendet werden würde ich einen Filter benutzen:
taskkill /fi “imagename eq calc.exe”
Hiermit werden alle calc.exe-Prozesse beendet. Ohne Rückfragen! Alle offenen Dokumente etc. wären in diesem Fall ohne Rückfragen einfach weg.
Ihr habts sicherlich schon gesehen, dass tasklist und taskkill eine so ähnliche Syntax haben das ihr erst mit tasklist prüfen könnt ob euer Filter klappt und dann einfach den taskkill Befehl mit der gleichen Syntax senden.
Das sind alles tolle Möglichkeiten und kann sicher in Scripts gut weiterhelfen – richtig super ist aber auch die Möglichkeit via WMI die Tasks auf einem entfernten Remotesystem zu prüfen und natürlich auch zu kontrollieren:
Sowohl Tasklist als auch Taskkill verfügen über einen “/s” Switch mit dem die Verbindung mit einem Remotesystem aufgebaut wird – in Domänenumgebungen wird dabei die Benutzeranmeldung des PC genutzt auf dem das Script gestartet wird. Ich kann aber auch per “/u Benutzer /p Passwort” Switch einen Benutzernamen und ein Passwort zur Remoteanmeldung mit übergeben.
Hier ein Beispiel:
tasklist /s s1 /fi “imagename eq calc.exe”
Hiermit lasse ich mir von meinem Remotesystem “S1″ alle Taschenrecherprozesse anzeigen.
taskkill /s s1 /fi “imagename eq calc.exe”
Hiermit beende ich alle calc.exe Prozesse auf meinem Remotesystem “S1″ – Wie ihr wieder seht: Gleiche Syntax.
Nun geht raus und bastelt super tolle Skripte die euer Leben in Sachen Taskmanagement vereinfachen





Keine Kommentare »