Ruft Leistungsindikatordaten von lokalen Computern und Remotecomputern ab.
Syntax
Get-Counter [-Counter] <string[]> [-ComputerName <string[]>] [-Continuous] [-MaxSamples <Int64>] [-SampleInterval <int>] [<CommonParameters>] Get-Counter -ListSet <string[]> [-ComputerName <string[]>] [<CommonParameters>]
Beschreibung
Das Cmdlet "Get-Counter" ruft Live-Leistungsindikatordaten in Echtzeit direkt von der Leistungsüberwachungsinstrumentation in Windows ab. Hiermit können Sie Leistungsdaten von den lokalen oder Remotecomputern im angegebenen Stichprobenintervall abrufen.
Wenn keine Parameter angegeben werden, ruft der Befehl "Get-Counter" Leistungsindikatordaten für einen Satz von Systemleistungsindikatoren ab.
Mit den Parametern von "Get-Counter" können Sie einen oder mehrere Computer angeben, die Leistungsindikatorsätze und die enthaltenen Indikatoren auflisten und die Stichprobengröße und das Intervall festlegen.
Parameter
-ComputerName <string[]>
Ruft Daten von den angegebenen Computern ab. Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen der Computer ein. Der Standardwert ist der lokale Computer.
Hinweis: "Get-Counter" beruht nicht auf Windows PowerShell-Remoting. Sie können den ComputerName-Parameter von Get-Counter auch dann verwenden, wenn der Computer nicht für Remoting in Windows PowerShell konfiguriert ist.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Continuous
Ruft kontinuierlich Stichproben ab, bis Sie STRG+C drücken. Standardmäßig ruft "Get-Counter" nur einen Leistungsindikatorwert ab. Mit dem SampleInterval-Parameter können Sie das Intervall für die kontinuierliche Stichprobenerfassung festlegen.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Counter <string[]>
Ruft Daten aus den angegebenen Leistungsindikatoren ab. Geben Sie einen oder mehrere Leistungsindikatorpfade ein. Platzhalter sind nur im Wert "Instance" zulässig. Sie können Indikatorpfadzeichenfolgen auch über die Pipeline an Get-Counter übergeben.
Jeder Leistungsindikatorpfad weist das folgende Format auf:
"[\\<Computername>]\<Indikatorsatz>(<Instanz>)\<Indikatorname>"
Beispiel:
"\\Server01\Processor(2)\% User Time".
Das Element <ComputerName> ist optional. Wenn Sie das Element weglassen, verwendet Get-Counter den Wert des ComputerName-Parameters.
Hinweis: Um ordnungsgemäß formatierte Leistungsindikatorpfade abzurufen, verwenden Sie den ListSet-Parameter zum Abrufen eines Leistungsindikatorsatzes. Die Eigenschaften "Paths" und "PathsWithInstances" jedes Leistungsindikatorsatzes enthalten die einzelnen als Zeichenfolge formatierten Leistungsindikatorpfade. Sie können die Leistungsindikatorpfad-Zeichenfolgen in einer Variablen speichern oder die Zeichenfolge über die Pipeline direkt an einen anderen Get-Counter-Befehl übergeben. Dies wird in den Beispielen veranschaulicht.
Erforderlich? |
true |
Position? |
2 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue) |
Platzhalterzeichen akzeptieren? |
true |
-ListSet <string[]>
Ruft die angegebenen Leistungsindikatorsätze auf den Computern ab. Geben Sie die Namen der Leistungsindikatorsätze ein. Platzhalter sind zulässig. Sie können die Namen der Leistungsindikatorsätze auch über die Pipeline an Get-Counter übergeben.
Erforderlich? |
true |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue, ByPropertyName) |
Platzhalterzeichen akzeptieren? |
true |
-MaxSamples <Int64>
Gibt die Anzahl an Stichproben an, die von den einzelnen Indikatoren abgerufen werden sollen. Der Standardwert ist 1 Messwert als Stichprobe. Um kontinuierlich (ohne maximale Stichprobengröße) Stichproben abzurufen, verwenden Sie den Continuous-Parameter.
Um ein sehr großes Dataset zu sammeln, können Sie den Befehl "Get-Counter" als Windows PowerShell-Hintergrundauftrag ausführen. Weitere Informationen finden Sie unter "about_Jobs" und "Start-Job".
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-SampleInterval <int>
Gibt die Zeit zwischen den Stichproben in Sekunden an. Der Mindestwert und der Standardwert ist jeweils 1 Sekunde.
Erforderlich? |
false |
Position? |
named |
Standardwert |
1 |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.String[] Sie können Leistungsindikatorpfade und Namen von Leistungsindikatorsätzen (ListSet) über die Pipeline an Get-Counter übergeben. |
Ausgaben |
Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample Der ListSet-Parameter ruft Microsoft.PowerShell.Commands.GetCounter.CounterSet-Objekte ab. Der Counter-Parameter ruft Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet-Objekte ab. Jeder Leistungsindikatorwert ist ein Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample-Objekt. |
Hinweise
Leistungsindikatoren werden oft durch Zugriffssteuerungslisten (ACLs) geschützt. Um alle verfügbaren Leistungsindikatoren abzurufen, öffnen Sie Windows PowerShell mit der Option "Als Administrator ausführen".
Standardmäßig ruft "Get-Counter" Stichproben mit einem einsekündigen Messintervall ab. Um dieses Verhalten zu ändern, verwenden Sie den MaxSamples-Parameter und den Continuous-Parameter.
Die für MaxSamples und SampleInterval festgelegten Werte werden auf alle Leistungsindikatoren für alle Computer im Befehl angewendet. Um andere Werte für andere Leistungsindikatoren festzulegen, geben Sie separate Get-Counter-Befehle für die einzelnen Leistungsindikatoren ein.
Beispiel 1
C:\PS># Get-Counter Beschreibung ----------- Dieser Befehl ruft alle Leistungsindikatorsätze auf dem lokalen Computer ab. C:\PS> get-counter -ListSet * Da viele Indikatorsätze durch Zugriffssteuerungslisten (ACLs) geschützt werden, öffnen Sie zum Anzeigen aller Leistungsindikatorsätze Windows PowerShell mit der Option "Als Administrator ausführen", bevor Sie den Befehl "Get-Counter" verwenden.
Beispiel 2
C:\PS># Get-Counter Beschreibung ----------- Der Befehl ruft die aktuellen kombinierten Werte "Prozessorzeit (%)" für alle Prozessoren auf dem lokalen Computer ab. Alle zwei Sekunden werden Daten erfasst, bis drei Werte vorliegen. C:\PS> get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3
Beispiel 3
C:\PS># Get-Counter Beschreibung ----------- Dieser Befehl ruft eine alphabetisch sortierte Liste der Namen aller Leistungsindikatorsätze auf dem lokalen Computer ab. C:\PS> get-counter -listset * | sort-object countersetname | format-table countersetname
Beispiel 4
C:\PS># Get-Counter Beschreibung ----------- Diese Befehle verwenden die Path-Eigenschaft eines Leistungsindikatorsatzes, um die ordnungsgemäß formatierten Pfadnamen für die Leistungsindikatoren zu suchen. Sie können einen Befehl wie diesen verwenden, um die richtigen Leistungsindikatorpfad-Namen abzurufen. Der erste Befehl ruft die Pfadnamen der Leistungsindikatoren im Speicherindikatorsatz auf dem lokalen Computer ab. C:\PS> (get-counter -listset memory).paths \Speicher\Seitenfehler/s \Speicher\Verfügbare Bytes \Speicher\Zugesicherte Bytes \Speicher\Zusagegrenze \Speicher\Schreibkopien/s \Speicher\Wechselfehler/s \Speicher\Cachefehler/s \Speicher\Nullforderungsfehler/s \Speicher\Seiten/s \Speicher\Seiteneingabe/s ... Der zweite Befehl ruft die Pfadnamen ab, die "cache" enthalten. C:\PS> (get-counter -listset memory).paths | where {$_ -like "*cache*"} \Speicher\Cachefehler/s \Speicher\Cachebytes \Speicher\Cachebytes (max.) \Speicher\Systemcache: Residente Bytes \Speicher\Standbycache-Reservebytes \Speicher\Standbycache- Bytes mit normaler Priorität \Speicher\Standbycache-Kernbytes
Beispiel 5
C:\PS># Get-Counter Beschreibung ----------- Diese Befehle rufen die Leistungsindikatordaten "Lesevorgänge/s" von den Computern "Server01" und "Server02" ab. Der erste Befehl speichert den Leistungsindikatorpfad "Lesevorgänge/s" in der Variablen "$diskreads". C:\PS> $diskreads = "\LogicalDisk(C:)\Disk Reads/sec" Im zweiten Befehl wird der Leistungsindikatorpfad in der Variablen "$diskreads" mit einem Pipelineoperator (|) an das Cmdlet "Get-Counter" gesendet. Der Befehl verwendet den MaxSamples-Parameter, um die Ausgabe auf 10 Stichproben zu beschränken. C:\PS> $diskreads | get-counter -computer Server01, Server02 -maxsamples 10
Beispiel 6
C:\PS># Get-Counter Beschreibung ----------- Dieser Befehl ruft die ordnungsgemäß formatierten Pfadnamen für die PhysicalDisk-Leistungsindikatoren einschließlich der Instanznamen ab. C:\PS> (get-counter -list physicaldisk).pathswithinstances
Beispiel 7
C:\PS># Get-Counter Beschreibung ----------- Diese Befehle rufen den Wert des Leistungsindikators "DPC-Zeit (%)" auf 50 zufällig ausgewählten Computern im Unternehmen ab. Der erste Befehl verwendet das Cmdlet "Get-Content", um die Liste der Unternehmensserver aus der Datei "Servers.txt" abzurufen. Mit dem Cmdlet "Get-Random" werden 50 Servernamen aus der Datei "Servers.txt" nach dem Zufallsprinzip ausgewählt. Die Ergebnisse werden in der Variablen "$servers" gespeichert. C:\PS> $servers = get-random (get-content servers.txt) -count 50 Der zweite Befehl speichert den Leistungsindikatorpfad für das Cmdlet "DPC-Zeit (%)" in der Variablen "$Counter". Der Leistungsindikatorpfad schließt ein Platzhalterzeichen im Instanznamen ein, um die Daten über alle Prozessoren auf jedem Computer abzurufen. C:\PS> $counter = "\Processor(*)\% DPC Time" Der dritte Befehl verwendet das Cmdlet "Get-Counter", um die Leistungsindikatorwerte abzurufen. Mit dem Counter-Parameter werden die Leistungsindikatoren und mit dem ComputerName-Parameter die in der Variablen "$servers" gespeicherten Computer angegeben. C:\PS> get-counter -Counter $counter -computername $servers
Beispiel 8
C:\PS># Get-Counter Beschreibung ----------- Diese Befehle rufen einen einzelnen Wert für alle Leistungsindikatoren im Leistungsindikatorsatz "Speicher" auf dem lokalen Computer ab. Der erste Befehl ruft die Leistungsindikatorpfade ab und speichert sie in der Variablen "$memCounters". C:\PS> $memCounters = (get-counter -list memory).paths Der zweite Befehl verwendet das Cmdlet "Get-Counter", um die Leistungsindikatordaten für jeden Leistungsindikator abzurufen. Mit dem Counter-Parameter werden die in "$memCounters" gespeicherten Leistungsindikatoren angegeben. C:\PS> get-counter -counter $memCounters
Beispiel 9
C:\PS># Get-Counter Beschreibung ----------- In diesem Beispiel werden die Eigenschaftenwerte im PerformanceCounterSample-Objekt veranschaulicht, das die einzelnen Datensätze darstellt. Der erste Befehl speichert einen Leistungsindikatorpfad in der Variablen "$counter". C:\PS> $counter = "\\SERVER01\Process(Idle)\% Processor Time" Der zweite Befehl verwendet das Cmdlet "Get-Counter", um eine Stichprobe der Leistungsindikatorwerte abzurufen. Die Ergebnisse werden in der Variablen "$data" gespeichert. C:\PS> $data = get-counter $counter Der dritte Befehl verwendet das Cmdlet "Format-List", um alle Eigenschaften der CounterSamples-Eigenschaft des Strichprobensatzobjekts als Liste anzuzeigen. C:\PS> $data.countersamples | format-list -property * Path : \\SERVER01\process(idle)\% processor time InstanceName : idle CookedValue : 198.467899571389 RawValue : 14329160321003 SecondValue : 128606459528326201 MultipleCount : 1 CounterType : Timer100Ns Timestamp : 15.07.2008 18:39:12 Timestamp100NSec : 128606207528320000 Status : 0 DefaultScale : 0 TimeBase : 10000000 Sie können die Eigenschaften des CounterSamples-Objekts verwenden, um die Daten zu überprüfen, auszuwählen, zu sortieren und zu gruppieren.
Beispiel 10
C:\PS># Get-Counter Beschreibung ----------- Der Befehl führt den Befehl "Get-Counter" als Hintergrundauftrag aus. Weitere Informationen finden Sie unter "Start-Job". C:\PS> $counters = "\LogicalDisk(_Total)\% Free Space" C:\PS> start-job -scriptblock {get-counter -counter $counters -maxsamples 1000)
Beispiel 11
C:\PS># Get-Counter Beschreibung ----------- Dieser Befehl verwendet die Cmdlets "Get-Counter" und "Get-Random", um den Prozentsatz an freiem Speicherplatz auf 50 zufällig aus der Datei "Servers.txt" ausgewählten Computern zu ermitteln. C:\PS> get-counter -computername (get-random servers.txt -count 50) -counter "\LogicalDisk(*)\% Free Space"
Beispiel 12
C:\PS># Get-Counter Beschreibung ----------- In diesem Beispiel wird gezeigt, wie Leistungsindikatordaten dem Computer zugeordnet werden, von dem sie stammen, und wie die Daten bearbeitet werden. Der erste Befehl verwendet das Cmdlet "Get-Counter", um den Leistungsindikatorwert "LogicalDisk\% Free Space" von zwei Remotecomputern, S1 und S2, abzurufen. Das Ergebnis wird in der Variablen "$a" gespeichert. $a = get-counter "\LogicalDisk(_Total)\% Free Space" -comp s1, s2 Der zweite Befehl zeigt die Ergebnisse in der Variablen "$a" an. Alle Daten werden im Objekt gespeichert, aber die Anzeige in dieser Form ist nicht unkompliziert. C:\PS> $a Counter Paths: \\s1\\logicaldisk(c:)\% free space, \\s1\\logicaldisk(d:)\% free space, \\s1\\logicaldisk(_total)\% free space, \\s2\\logicaldisk(c:)\% free space, \\s2\\logicaldisk(_total)\% free space Timestamp : 15.07.2008 17:09:08 Cooked Values : "0.327058823529412", "17.8952248493278", "12.9994033060778", "75.0754805595626", "75.0754805595626" Der dritte Befehl zeigt den Wert der CounterSamples-Eigenschaft des von Get-Counter zurückgegebenen PerformanceCounterSampleSet-Objekts in einer Tabelle an. (Um alle Eigenschaften und Methoden des Objekts anzuzeigen, übergeben Sie es über die Pipeline an das Cmdlet "Get-Member".) C:\PS> $a.countersamples | format-table -auto Path InstanceName CookedValue ---- ------------ ----------- \\s1\\logicaldisk(c:)\% free space c: 0.327058823529412 \\s1\\logicaldisk(d:)\% free space d: 17.8952248493278 \\s1\\logicaldisk(_total)\% free space _total 12.9994033060778 \\s2\\logicaldisk(c:)\% free space c: 75.0754805595626 \\s2\\logicaldisk(_total)\% free space _total 75.0754805595626 Die CounterSamples-Eigenschaft enthält ein PerformanceCounterSample-Objekt mit eigenen Eigenschaften und Methoden. Der vierte Befehl verwendet die Arraynotation, um die erste Leistungsindikatorstichprobe abzurufen, und einen Pipelineoperator, um das Leistungsindikatorstichproben-Objekt an das Cmdlet "Format-List" zu senden, das alle zugehörigen Eigenschaften und Methoden in einer Liste anzeigt. Anhand der Anzeige wird der Umfang der Daten in den einzelnen Leistungsindikatorstichproben-Objekten deutlich. Der vierte Befehl zeigt, wie Daten aus den Leistungsindikatorstichproben ausgewählt werden. Dabei wird das Cmdlet "Where-Object" verwendet, um nur die Leistungsindikatorstichproben mit einem kleineren CookedValue als 15 abzurufen. C:\PS> $a.countersamples | where {$_.cookedvalue -lt 15} Path InstanceName CookedValue ---- ------------ ----------- \\s1\\logicaldisk(c:)\% free space c: 0.327058823529412 \\s1\\logicaldisk(_total)\% free space _total 12.9994033060778
Beispiel 13
C:\PS># Get-Counter Beschreibung ----------- In diesem Beispiel wird gezeigt, wie die abgerufenen Leistungsindikatordaten sortiert werden. Im Beispiel werden die Prozesse auf dem Computer gesucht, die während der Stichprobenentnahme am meisten Prozessorzeit verwenden. Der erste Befehl ruft den Leistungsindikator "Prozess\Prozessorzeit (%)" für alle Prozesse auf dem Computer ab. Anschließend werden die Ergebnisse in der Variablen "$p" gespeichert. C:\PS> $p = get-counter '\Process(*)\% Processor Time' Der zweite Befehl ruft die CounterSamples-Eigenschaft des Stichprobensatzobjekts in $p ab und sortiert die Stichproben in absteigender Reihenfolge auf Grundlage des Cooked Value der Stichprobe. Der Befehl verwendet das Cmdlet "Format-Table" und dessen AutoFormat-Parameter, um die Spalten in der Tabelle zu positionieren. C:\PS> $p.CounterSamples | sort-object -property CookedValue -Descending | format-table -auto Path InstanceName CookedValue ---- ------------ ----------- \\server01\process(_total)\% processor time _total 200.00641042078 \\server01\process(idle)\% processor time idle 200.00641042078 \\server01\process(explorer#1)\% processor time explorer 0 \\server01\process(dwm#1)\% processor time dwm 0 \\server01\process(taskeng#1)\% processor time taskeng 0 \\server01\process(taskhost#1)\% processor time taskhost 0 \\server01\process(winlogon)\% processor time winlogon 0 \\server01\process(csrss)\% processor time csrss 0
Beispiel 14
C:\PS># Get-Counter Beschreibung ----------- Diese Befehle suchen die Prozesse auf dem Computer mit den größten Workingsets. Die Prozesse werden in absteigender Reihenfolge nach ihrer Workingsetgröße aufgelistet. Der erste Befehl ruft eine Stichprobe des Leistungsindikators "Process\Working Set - Private" für jeden Prozess ab. Der Befehl speichert die Leistungsindikatordaten in der Variablen "$ws". C:\PS> $ws = get-counter "\Process(*)\Working Set - Private" Der zweite Befehl verwendet einen Pipelineoperator (|), um die Daten in der CounterSamples-Eigenschaft der Variablen "$ws" an das Cmdlet "Sort-Object" zu senden. Hier werden die Prozessdaten in absteigender Reihenfolge nach dem Wert der CookedValue-Eigenschaft sortiert. Eine andere Pipeline sendet die sortierten Daten an das Cmdlet "Format-Table". Hier werden die Daten als Tabelle mit InstanceName- und CookedValue-Spalten formatiert. C:\PS> $ws.countersamples | sort-object -property cookedvalue -descending | format-table -property InstanceName, CookedValue -auto InstanceName CookedValue ------------ ----------- _total 162983936 svchost 40370176 powershell 15110144 explorer 14135296 svchost 10928128 svchost 9027584 ...
Beispiel 15
C:\PS># Get-Counter Beschreibung ----------- Mit diesem Befehl wird eine Stichprobenserie vom Leistungsindikator "Prozessor\Prozessorzeit (%)" mit dem Standardintervall von einer Sekunde abgerufen. Um den Befehl zu beenden, drücken Sie STRG+C. C:\PS> get-counter -counter "\processor(_total)\% processor time" -continuous
Siehe auch