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




Inhaltsverzeichnis