Get-Counter
Hämtar prestandaräknardata från lokala datorer och fjärrdatorer.
Syntax
Get-Counter
[[-Counter] <String[]>]
[-SampleInterval <Int32>]
[-MaxSamples <Int64>]
[-Continuous]
[-ComputerName <String[]>]
[<CommonParameters>]
Get-Counter
[-ListSet] <String[]>
[-ComputerName <String[]>]
[<CommonParameters>]
Description
Den här cmdleten är endast tillgänglig på Windows-plattformen.
Cmdleten Get-Counter
hämtar prestandaräknardata direkt från instrumentationen för prestandaövervakning i Windows-serien med operativsystem. Get-Counter
hämtar prestandadata från en lokal dator eller fjärrdatorer.
Du kan använda parametrarna Get-Counter
för att ange en eller flera datorer, visa en lista över prestandaräknaruppsättningar och de instanser som de innehåller, ange exempelintervallen och ange det maximala antalet exempel. Utan parametrar Get-Counter
hämtar du prestandaräknardata för en uppsättning systemräknare.
Många räknaruppsättningar skyddas av åtkomstkontrollistor (ACL). Om du vill se alla räknaruppsättningar öppnar du PowerShell med alternativet Kör som administratör .
Den här cmdleten återinfördes i PowerShell 7.
Kommentar
Namn på prestandaräknare lokaliseras. Exemplen som visas här använder de engelska namnen på prestandaobjekt, räknare och instanser. Namnen kommer att vara olika i ett system som använder ett annat språk. Get-Counter -ListSet
Använd kommandot för att se de lokaliserade namnen.
Exempel
Exempel 1: Hämta listan med räknaruppsättningar
Det här exemplet hämtar den lokala datorns lista över räknaruppsättningar.
Get-Counter -ListSet *
CounterSetName : Processor
MachineName : .
CounterSetType : MultiInstance
Description : The Processor performance object consists of counters that measure aspects ...
computer that performs arithmetic and logical computations, initiates ...
computer can have multiple processors. The processor object represents ...
Paths : {\Processor(*)\% Processor Time, \Processor(*)\% User Time, ...
PathsWithInstances : {\Processor(0)\% Processor Time, \Processor(1)\% Processor Time, ...
Counter : {\Processor(*)\% Processor Time, \Processor(*)\% User Time, ...
Get-Counter
använder parametern ListSet med en asterisk (*
) för att hämta listan över räknaruppsättningar.
Punkten (.
) i kolumnen MachineName representerar den lokala datorn.
Exempel 2: Ange SampleInterval och MaxSamples
I det här exemplet hämtas räknardata för alla processorer på den lokala datorn. Data samlas in med två sekunders intervall tills det finns tre exempel.
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3
Timestamp CounterSamples
--------- --------------
6/18/2019 14:39:56 \\Computer01\processor(_total)\% processor time :
20.7144271584086
6/18/2019 14:39:58 \\Computer01\processor(_total)\% processor time :
10.4391790575511
6/18/2019 14:40:01 \\Computer01\processor(_total)\% processor time :
37.5968799396998
Get-Counter
använder parametern Counter för att ange räknarsökvägen \Processor(_Total)\% Processor Time
. Parametern SampleInterval anger ett intervall på två sekunder för att kontrollera räknaren. MaxSamples avgör att tre är det maximala antalet gånger för att kontrollera räknaren.
Exempel 3: Hämta kontinuerliga exempel på en räknare
Det här exemplet hämtar kontinuerliga exempel för en räknare varje sekund. Tryck på CTRL+C om du vill stoppa kommandot. Om du vill ange ett längre intervall mellan exempel använder du parametern SampleInterval .
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -Continuous
Timestamp CounterSamples
--------- --------------
6/19/2019 15:35:03 \\Computer01\processor(_total)\% processor time :
43.8522842937022
6/19/2019 15:35:04 \\Computer01\processor(_total)\% processor time :
29.7896844697383
6/19/2019 15:35:05 \\Computer01\processor(_total)\% processor time :
29.4962645638135
6/19/2019 15:35:06 \\Computer01\processor(_total)\% processor time :
25.5901500127408
Get-Counter
använder parametern Counter för att ange räknaren \Processor\% Processor Time
.
Parametern Kontinuerlig anger att du ska hämta exempel varje sekund tills kommandot stoppas med CTRL+C.
Exempel 4: Alfabetisk lista över räknaruppsättningar
I det här exemplet används pipelinen för att hämta räknarlistans uppsättning och sedan sortera listan i alfabetisk ordning.
Get-Counter -ListSet * |
Sort-Object -Property CounterSetName |
Format-Table CounterSetName, CounterSetType -AutoSize
CounterSetName CounterSetType
-------------- --------------
.NET CLR Data SingleInstance
.NET Data Provider for SqlServer SingleInstance
AppV Client Streamed Data Percentage SingleInstance
Authorization Manager Applications SingleInstance
BitLocker MultiInstance
Bluetooth Device SingleInstance
Cache SingleInstance
Client Side Caching SingleInstance
Get-Counter
använder parametern ListSet med en asterisk (*
) för att hämta en fullständig lista över räknaruppsättningar. CounterSet-objekten skickas ned i pipelinen. Sort-Object
använder egenskapsparametern för att ange att objekten sorteras efter CounterSetName. Objekten skickas ned i pipelinen till Format-Table
. Parametern AutoSize justerar kolumnbredderna för att minimera trunkeringen.
Punkten (.
) i kolumnen MachineName representerar den lokala datorn.
Exempel 5: Kör ett bakgrundsjobb för att hämta räknardata
I det här exemplet Start-Job
kör du ett Get-Counter
kommando som ett bakgrundsjobb på den lokala datorn.
Om du vill visa prestandaräknarens utdata från jobbet använder du cmdleten Receive-Job
.
Start-Job -ScriptBlock {Get-Counter -Counter "\LogicalDisk(_Total)\% Free Space" -MaxSamples 1000}
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Running True localhost Get-Counter -Counter
Start-Job
använder parametern ScriptBlock för att köra ett Get-Counter
kommando. Get-Counter
använder parametern Counter för att ange räknarsökvägen \LogicalDisk(_Total)\% Free Space
. Parametern MaxSamples anger att 1 000 exempel av räknaren ska hämtas.
Exempel 6: Hämta räknardata från flera datorer
I det här exemplet används en variabel för att hämta prestandaräknardata från två datorer.
$DiskReads = "\LogicalDisk(C:)\Disk Reads/sec"
$DiskReads | Get-Counter -ComputerName Server01, Server02 -MaxSamples 10
Timestamp CounterSamples
--------- --------------
6/21/2019 10:51:04 \\Server01\logicaldisk(c:)\disk reads/sec :
0
\\Server02\logicaldisk(c:)\disk reads/sec :
0.983050344269146
Variabeln $DiskReads
lagrar räknarsökvägen \LogicalDisk(C:)\Disk Reads/sec
. Variabeln $DiskReads
skickas ned i pipelinen till Get-Counter
. Räknaren är den första positionsparametern och accepterar sökvägen som lagras i $DiskReads
. ComputerName anger de två datorerna och MaxSamples anger att 10 exempel ska hämtas från varje dator.
Exempel 7: Hämta en räknares instansvärden från flera slumpmässiga datorer
Det här exemplet hämtar värdet för en prestandaräknare på 50 slumpmässiga fjärrdatorer i företaget. Parametern ComputerName använder slumpmässiga datornamn som lagras i en variabel. Om du vill uppdatera datornamnen i variabeln återskapar du variabeln.
Ett alternativ för servernamnen i parametern ComputerName är att använda en textfil. Till exempel:
-ComputerName (Get-Random (Get-Content -Path C:\Servers.txt) -Count 50)
Räknarsökvägen innehåller en asterisk (*
) i instansnamnet för att hämta data för var och en av fjärrdatorns processorer.
$Servers = Get-Random (Get-Content -Path C:\Servers.txt) -Count 50
$Counter = "\Processor(*)\% Processor Time"
Get-Counter -Counter $Counter -ComputerName $Servers
Timestamp CounterSamples
--------- --------------
6/20/2019 12:20:35 \\Server01\processor(0)\% processor time :
6.52610319637854
\\Server01\processor(1)\% processor time :
3.41030663625782
\\Server01\processor(2)\% processor time :
9.64189975649925
\\Server01\processor(3)\% processor time :
1.85240835619747
\\Server01\processor(_total)\% processor time :
5.35768447160776
Cmdleten Get-Random
använder Get-Content
för att välja 50 slumpmässiga datornamn från Servers.txt
filen. Fjärrdatornamnen lagras i variabeln $Servers
. Räknarens \Processor(*)\% Processor Time
sökväg lagras i variabeln $Counter
. Get-Counter
använder parametern Counter för att ange räknarna i variabeln $Counter
. Parametern ComputerName anger datornamnen i variabeln $Servers
.
Exempel 8: Använd egenskapen Path för att hämta formaterade sökvägsnamn
I det här exemplet används egenskapen Sökväg för en räknaruppsättning för att hitta de formaterade sökvägsnamnen för prestandaräknarna.
Pipelinen används med cmdleten Where-Object
för att hitta en delmängd av sökvägsnamnen. Ta bort pipelinen (|
) och Where-Object
kommandot för att hitta en fullständig lista över räknarsökvägar för räknaruppsättningar.
$_
är en automatisk variabel för det aktuella objektet i pipelinen.
Mer information finns i about_Automatic_Variables.
(Get-Counter -ListSet Memory).Paths | Where-Object { $_ -like "*Cache*" }
\Memory\Cache Faults/sec
\Memory\Cache Bytes
\Memory\Cache Bytes Peak
\Memory\System Cache Resident Bytes
\Memory\Standby Cache Reserve Bytes
\Memory\Standby Cache Normal Priority Bytes
\Memory\Standby Cache Core Bytes
\Memory\Long-Term Average Standby Cache Lifetime (s)
Get-Counter
använder parametern ListSet för att ange minnesräknaren. Kommandot omges av parenteser så att egenskapen Paths returnerar varje sökväg som en sträng. Objekten skickas ned i pipelinen till Where-Object
. Where-Object
använder variabeln $_
för att bearbeta varje objekt och använder operatorn -like
för att hitta matchningar för strängen *Cache*
. Asterisker (*
) är jokertecken för alla tecken.
Exempel 9: Använd egenskapen PathsWithInstances för att hämta formaterade sökvägsnamn
Det här exemplet hämtar de formaterade sökvägsnamnen som innehåller instanserna för Prestandaräknare för PhysicalDisk .
(Get-Counter -ListSet PhysicalDisk).PathsWithInstances
\PhysicalDisk(0 C:)\Current Disk Queue Length
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(0 C:)\% Disk Time
\PhysicalDisk(_Total)\% Disk Time
\PhysicalDisk(0 C:)\Avg. Disk Queue Length
\PhysicalDisk(_Total)\Avg. Disk Queue Length
\PhysicalDisk(0 C:)\% Disk Read Time
\PhysicalDisk(_Total)\% Disk Read Time
Get-Counter
använder parametern ListSet för att ange räknaruppsättningen PhysicalDisk . Kommandot omges av parenteser så att egenskapen PathsWithInstances returnerar varje sökvägsinstans som en sträng.
Exempel 10: Hämta ett enda värde för varje räknare i en räknaruppsättning
I det här exemplet returneras ett enda värde för varje prestandaräknare i den lokala datorns minnesräknare .
$MemCounters = (Get-Counter -ListSet Memory).Paths
Get-Counter -Counter $MemCounters
Timestamp CounterSamples
--------- --------------
6/19/2019 12:05:00 \\Computer01\memory\page faults/sec :
868.772077545597
\\Computer01\memory\available bytes :
9031176192
\\Computer01\memory\committed bytes :
8242982912
\\Computer01\memory\commit limit :
19603333120
Get-Counter
använder parametern ListSet för att ange minnesräknaren. Kommandot omges av parenteser så att egenskapen Paths returnerar varje sökväg som en sträng. Sökvägarna lagras i variabeln $MemCounters
. Get-Counter
använder parametern Counter för att ange räknarsökvägarna i variabeln $MemCounters
.
Exempel 11: Visa ett objekts egenskapsvärden
Egenskapsvärdena i PerformanceCounterSample-objektet representerar varje dataexempel. I det här exemplet använder vi egenskaperna för objektet CounterSamples för att undersöka, välja, sortera och gruppera data.
$Counter = "\\Server01\Process(Idle)\% Processor Time"
$Data = Get-Counter $Counter
$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 : 6/19/2019 12:20:49
Timestamp100NSec : 128606207528320000
Status : 0
DefaultScale : 0
TimeBase : 10000000
Räknarsökvägen lagras i variabeln $Counter
. Get-Counter
hämtar ett exempel på räknarvärdena och lagrar resultatet i variabeln $Data
. Variabeln $Data
använder egenskapen CounterSamples för att hämta objektets egenskaper. Objektet skickas ned i pipelinen till Format-List
. Egenskapsparametern använder ett asterisk*
() jokertecken för att välja alla egenskaper.
Exempel 12: Matrisvärden för prestandaräknare
I det här exemplet lagrar en variabel varje prestandaräknare. Egenskapen CounterSamples är en matris som kan visa specifika räknarvärden.
Om du vill visa varje räknarexempel använder du $Counter.CounterSamples
.
$Counter = Get-Counter -Counter "\Processor(*)\% Processor Time"
$Counter.CounterSamples[0]
Path InstanceName CookedValue
---- ------------ -----------
\\Computer01\processor(0)\% processor time 0 1.33997091699662
Get-Counter
använder parametern Counter för att ange räknaren \Processor(*)\% Processor Time
. Värdena lagras i variabeln $Counter
.
$Counter.CounterSamples[0]
visar matrisvärdet för det första räknarvärdet.
Exempel 13: Jämför prestandaräknarvärden
I det här exemplet hittar du den mängd processortid som används av varje processor på den lokala datorn. Egenskapen CounterSamples används för att jämföra räknardata med ett angivet värde.
Om du vill visa varje räknarexempel använder du $Counter.CounterSamples
.
$Counter = Get-Counter -Counter "\Processor(*)\% Processor Time"
$Counter.CounterSamples | Where-Object { $_.CookedValue -lt "20" }
Path InstanceName CookedValue
---- ------------ -----------
\\Computer01\processor(0)\% processor time 0 12.6398025240208
\\Computer01\processor(1)\% processor time 1 15.7598095767344
Get-Counter
använder parametern Counter för att ange räknaren \Processor(*)\% Processor Time
. Värdena lagras i variabeln $Counter
. Objekten som lagras i $Counter.CounterSamples
skickas ned i pipelinen. Where-Object
använder ett skriptblock för att jämföra varje objektvärde med ett angivet värde på 20
. $_.CookedValue
är en variabel för det aktuella objektet i pipelinen. Räknare med en CookedValue som är mindre än 20 visas.
Exempel 14: Sortera prestandaräknardata
Det här exemplet visar hur du sorterar prestandaräknardata. I exemplet hittas de processer på datorn som använder mest processortid under exemplet.
$Procs = Get-Counter -Counter "\Process(*)\% Processor Time"
$Procs.CounterSamples | Sort-Object -Property CookedValue -Descending |
Format-Table -Property Path, InstanceName, CookedValue -AutoSize
Path InstanceName CookedValue
---- ------------ -----------
\\Computer01\process(_total)\% processor time _total 395.464129650573
\\Computer01\process(idle)\% processor time idle 389.356575524695
\\Computer01\process(mssense)\% processor time mssense 3.05377706293879
\\Computer01\process(csrss#1)\% processor time csrss 1.52688853146939
\\Computer01\process(microsoftedgecp#10)\% processor time microsoftedgecp 1.52688853146939
\\Computer01\process(runtimebroker#5)\% processor time runtimebroker 0
\\Computer01\process(settingsynchost)\% processor time settingsynchost 0
\\Computer01\process(microsoftedgecp#16)\% processor time microsoftedgecp 0
Get-Counter
använder parametern Counter för att ange räknaren \Process(*)\% Processor Time
för alla processer på den lokala datorn. Resultatet lagras i variabeln $Procs
. Variabeln $Procs
med egenskapen CounterSamples skickar PerformanceCounterSample-objekten nedåt i pipelinen. Sort-Object
använder parametern Egenskap för att sortera objekten efter CookedValue i fallande ordning. Format-Table
använder parametern Egenskap för att välja kolumnerna för utdata. Parametern AutoSize justerar kolumnbredderna för att minimera trunkeringen.
Parametrar
-ComputerName
Anger ett datornamn eller en kommaavgränsad matris med fjärrdatornamn . Använd NetBIOS-namnet, en IP-adress eller datorns fullständigt kvalificerade domännamn.
Om du vill hämta prestandaräknardata från den lokala datorn undantar du parametern ComputerName .
För utdata, till exempel en ListSet som innehåller kolumnen MachineName , anger en punkt (.
) den lokala datorn.
Get-Counter
förlitar sig inte på PowerShell-fjärrkommunikation. Du kan använda parametern ComputerName även om datorn inte är konfigurerad för att köra fjärrkommandon.
Type: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Continuous
När Kontinuerlig har angetts Get-Counter
hämtar du exempel tills du trycker på CTRL+C. Exempel hämtas varje sekund för varje angiven prestandaräknare. Använd parametern SampleInterval för att öka intervallet mellan kontinuerliga exempel.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Counter
Anger sökvägen till en eller flera räknarsökvägar. Sökvägar är indata som en kommaavgränsad matris, en variabel eller värden från en textfil. Du kan skicka räknarsökvägssträngar nedåt i pipelinen till Get-Counter
.
Räknarsökvägar använder följande syntax:
\\ComputerName\CounterSet(Instance)\CounterName
\CounterSet(Instance)\CounterName
Till exempel:
\\Server01\Processor(*)\% User Time
\Processor(*)\% User Time
\\ComputerName
Är valfritt i en prestandaräknares sökväg. Om räknarsökvägen inte innehåller datornamnet Get-Counter
använder du den lokala datorn.
En asterisk (*
) i instansen är ett jokertecken för att hämta alla instanser av räknaren.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ListSet
Visar en lista över prestandaräknare på datorerna. Använd en asterisk (*
) för att ange alla räknaruppsättningar. Ange ett namn eller en kommaavgränsad sträng med räknaruppsättningsnamn. Du kan skicka räknaruppsättningsnamn nedåt i pipelinen.
Om du vill hämta en räknaruppsättningar med formaterade räknarsökvägar använder du parametern ListSet . Egenskaperna Paths och PathsWithInstances för varje räknaruppsättning innehåller de enskilda räknarsökvägarna som är formaterade som en sträng.
Du kan spara räknarsökvägssträngarna i en variabel eller använda pipelinen för att skicka strängen till ett annat Get-Counter
kommando.
Du kan till exempel skicka varje processorräknares sökväg till Get-Counter
:
Get-Counter -ListSet Processor | Get-Counter
Kommentar
I PowerShell 7 Get-Counter
kan du inte hämta egenskapen Description för räknaruppsättningen. Beskrivningen är inställd på $null
.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-MaxSamples
Anger antalet exempel som ska hämtas från varje angiven prestandaräknare. Om du vill hämta en konstant dataström med exempel använder du parametern Kontinuerlig .
Om parametern MaxSamples inte har angettsGet-Counter
hämtar bara ett exempel för varje angiven räknare.
Om du vill samla in en stor datamängd kör du Get-Counter
som ett PowerShell-bakgrundsjobb. Mer information finns i artikeln om jobb.
Type: | Int64 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SampleInterval
Anger antalet sekunder mellan exemplen för varje angiven prestandaräknare. Om parametern SampleInterval inte har angetts Get-Counter
använder du ett intervall på en sekund.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
String[]
Get-Counter
accepterar pipelineindata för räknarsökvägar och räknaruppsättningsnamn.
Utdata
Med parametern ListSet returnerar den här cmdleten CounterSet-objekt .
Som standard och med parametern Counter returnerar den här cmdleten PerformanceCounterSampleSet-objekt.
Kommentarer
Om inga parametrar anges Get-Counter
hämtar du ett exempel för varje angiven prestandaräknare. Använd parametrarna MaxSamples och Continuous för att hämta fler exempel.
Get-Counter
använder ett intervall på en sekund mellan exemplen. Använd parametern SampleInterval för att öka intervallet.
Värdena MaxSamples och SampleInterval gäller för alla räknare på varje dator i kommandot. Ange olika värden för olika räknare genom att ange separata Get-Counter
kommandon.
När du använder parametern Get-Counter
ListSet i PowerShell 7 kan du inte hämta egenskapen Description för räknaruppsättningen. Beskrivningen är inställd på $null
.
Relaterade länkar
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för