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
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 *
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
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
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"
Führen Sie den folgenden Befehl aus, um die Anzahl der Handles abzurufen:
Get-Counter "\Process(*)\Handle Count"
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 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