Rufen Sie eine Liste von Prozessen ab, die dem Task-Manager in PowerShell ähneln

John Wachira 15 Februar 2024
Rufen Sie eine Liste von Prozessen ab, die dem Task-Manager in PowerShell ähneln

Dieser Artikel veranschaulicht, wie wir Leistungsmetriken von unserem lokalen Computer in PowerShell abrufen können. Wir verwenden das Cmdlet Get-Counter in PowerShell, um die Leistungszählerdaten aus dem Leistungsüberwachungsprogramm unter Windows abzurufen.

Verwenden Sie Get-Counter, um eine Liste von Prozessen zu erhalten, ähnlich dem Task-Manager in PowerShell

Wie bereits erwähnt, können wir mit dem Cmdlet Get-Counter alle verfügbaren Leistungsindikatoren auflisten und Daten von den Zählern überwachen und anzeigen. Das Cmdlet funktioniert sowohl für lokale als auch für Remotesysteme.

Das Cmdlet Get-Counter zeigt standardmäßig eine Reihe von Zählern in einem Ein-Sekunden-Intervall an. Da die meisten Zählersätze (Metriken) durch ACL (Zugriffskontrolllisten) geschützt sind, empfiehlt es sich, PowerShell als Administrator auszuführen.

Get-Counter

Get-Zähler

Die aufgeführten Standardindikatoren beziehen sich auf das Netzwerk, den Prozessor und den Arbeitsspeicher. Es listet auch einige Daten über die Festplatte auf.

Führen Sie den folgenden Befehl aus, um eine Liste aller Zählersätze auf einem lokalen Computer abzurufen.

Get-Counter -ListSet *

Zähler setzt

Durch Hinzufügen des Parameters ListSet und eines Sternchens (*) wird das Cmdlet Get-Counter angewiesen, eine Liste aller auf unserem Computer gesetzten Zähler abzurufen. Beachten Sie den Punkt (.) in der Spalte MachineName; dies repräsentiert unseren lokalen Computer.

Wir können einen Zählersatz auswählen und das Abtastintervall und die maximale Anzahl von Abtastungen angeben. Das folgende Beispiel ruft Metriken von allen Prozessoren auf unserem lokalen Computer ab.

Das Cmdlet ruft Daten in einem Intervall von drei Sekunden ab und zeigt vier Beispiele an.

Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 3 -MaxSamples 4

Prozessor-Metriken

Im obigen Befehl haben wir den Parameter Counter verwendet, um den Zählerpfad \Processor(_Total)\% Processor Time anzugeben. Dann setzen wir mit dem Parameter SampleInterval für den angegebenen Zähler ein Intervall von drei Sekunden.

Der MaxSamples-Parameter schreibt vier als maximale Anzahl von Malen vor, mit denen wir den Zähler überprüfen. Wenn Sie kontinuierliche Samples eines bestimmten Zählers abrufen möchten, verwenden Sie den Parameter -Continuous wie unten dargestellt:

Get-Counter -Counter "\Processor(_Total)\% Processor Time" -Continuous

Dadurch werden kontinuierlich Samples in einem Sekundenintervall abgerufen, bis Sie die Ausführung unterbrechen. Drücken Sie dazu CTRL+C.

Die Intervalle können Sie mit dem Parameter SampleInterval festlegen.

Sie können die Liste wie folgt alphabetisch sortieren:

Get-Counter -ListSet * |
  Sort-Object -Property CounterSetName |
    Format-Table CounterSetName, CounterSetType -AutoSize

alphabetische Zählersätze

Die Ergebnisse werden über die Pipeline zum Cmdlet Sort-Object übertragen. Der Parameter Property gibt vor, dass die CounterSet-Objekte nach CounterSetName sortiert werden sollen.

Die Ergebnisse werden dann über die Pipeline an Format-Table weitergegeben. Der Parameter AutoSize minimiert das Abschneiden, indem er die Spaltenbreite anpasst.

Wenn Sie eine Liste von Prozessen erhalten möchten, die denen ähneln, die im Windows-Task-Manager angezeigt werden, können Sie den folgenden Befehl verwenden:

Get-Counter "\Process(*)\Working Set - Private"

Zählersatz für laufende Prozesse

Führen Sie den folgenden Befehl aus, um die Anzahl der Handles abzurufen:

Get-Counter "\Process(*)\Handle Count"

Handle zählen

Kurz gesagt, das Cmdlet Get-Counter ist der ideale Befehl, wenn wir die Leistungsmetriken verschiedener Zählersätze sowohl in lokalen als auch in Remotesystemen überwachen möchten.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn