News Ticker

Powershell 4: Prozesse anzeigen und Dateien filtern

powershell-getchilditem In dem letzten Artikel zur Powershell ging es ja darum wie man diese zum Rechnen einsetzen kann. Heute möchte ich euch ein paar Befehle zeigen welche bereits in der Powershell integriert sind und mit welchen ihr ein paar Daten von eurem Computer abfragen könnt, diese Befehle nennen sich Cmdlets.

So ein Cmdlet ist nach folgenden Muster aufgebaut Verb-Befehl aber am besten erkennt man es an einem Beispiel. In dem aller ersten Artikel zur Power Shell hatte ich ja schon den Befehl get-help vorgestellt. Dieser ist auch nach dem gleichen Chema aufgebaut, zunächst sagt man das man sich etwas anzeigen lassen möchte. Dann kommt der Bindestrich und dahinter der jeweilige Befehl.

Prozesse anzeigen und stoppen
Jetzt möchten wir uns aber nicht nur die Hilfedatei anzeigen lassen sondern lieber ein paar interessantere dinge. Wie wäre es z.B. wenn wir uns wie im Taskmanager einmal die aktuell laufenden Befehle anzeigen lassen. Das ganze geht sehr einfach man muss dazu nur folgenden Befehl eingeben:

get-process

Der Befehl ist ja eigentlich schon sehr selbsterklärend, man möchte sich die Prozesse anzeigen lassen und schreibt daher wieder das get. Damit dann auch die Prozesse ausgegeben werden muss dahinter das process stehen.
Jetzt starten wir am besten einmal den Editor (notepad) und geben danach wieder den get-process Befehl ein. Nun schauen wir wo im Ausgabefenster unter “ProcessName” notepad steht.
powershell-get-process
Dann schauen wir welche ID dieser Prozess hat, wie man es auf dem Screenshot sehen kann hat er bei mir die ID 1024. Um den Prozess jetzt wieder zu stoppen geben wir folgenden Befehl ein.

stop-process 1024

Hier auch wieder zur Erklärung, mit dem stop geben wir an was wir eigentlich machen wollen, dahinter wieder auf was wir uns eigentlich beziehen. Mit der ID definieren wir dann welcher Prozess gestoppt werden soll. Wenn man diesen Befehl eingegeben hat sollte Editor von der Powershell geschlossen werden.

Suchen und Filtern von Dateien
Wenn man in einem Ordner ist und nur Dateien sucht welche ein bestimmtes Wort im Namen haben kann das schon sehr lange dauern. Hier kann einem die Powershell auch helfen. Man kann einfach ein Verzeichnis festlegen auf welches man sich beziehen möchte und in diesem kann man dann nach bestimmten Mustern suchen.
Sagen wir z.B. das wir in dem Ordner C:\Temp ein paar Dateien suchen möchte, dazu geben wir diesen Befehl ein damit die Powershell in den Ordner wechselt.

Set-Location C:\Temp

Sagen wir mal das wir uns jetzt alle Logdateien anzeigen möchten aber keine Datei welche das Wort “setup” enthält. Dazu müssen wir also nach der Dateinendung .log Filtern und ausschließen dass das Wort Filter im Dateiname enthalten ist. Das ist mit diesem Befehl möglich:

Get-ChildItem *.log -Exclude *setup*

Wir geben wieder mit dem get an das wir etwas erhalten bzw. ausgegeben haben möchten. Danach sagen wir mit dem Befehl ChildItem sagen wir eine Liste der angegebenen Elemente haben möchte. Das *.log steht dafür das wir uns nur Dateien anzeigen lassen wollen welche am Schluss mit .log enden. Der * davor sagt aus das es ganz egal ist was davor in dem Dateiname steht. Mit dem Parameter –Exclude geben wir an das es aber ein oder mehre Ausschlusskriterien gibt welche Dateien nicht angezeigt werden sollen. Und zwar wenn in dem Dateinamen das Wort setup vor kommt, hier ist es jetzt egal ob Setup groß oder klein geschrieben ist. Mit den * davor und dahinter geben wir an das es ganz egal ist was vor oder hinter dem Setup steht.

Hier geht es zu den bisherigen Teilen der Artikelserie Powershell:
Powershell 1: Einführung in die Shell von Microsoft
Powershell 2: PowerGUI Entwicklungsumgebung für die Powershell
Powershell 3: Variablen erstellen und mit diesen Rechnen