Get-Counter
Získá data čítače výkonu z místních a vzdálených počítačů.
Syntax
Get-Counter
[[-Counter] <string[]>]
[-SampleInterval <int>]
[-MaxSamples <long>]
[-Continuous]
[-ComputerName <String[]>]
[<CommonParameters>]
Get-Counter
[-ListSet] <String[]>
[-ComputerName <String[]>]
[<CommonParameters>]
Description
Rutina Get-Counter
získá data čítače výkonu přímo z instrumentace monitorování výkonu v operačních systémech řady Windows. Get-Counter
získává data o výkonu z místního počítače nebo vzdálených počítačů.
Pomocí parametrů můžete Get-Counter
určit jeden nebo více počítačů, vypsat sady čítačů výkonu a instance, které obsahují, nastavit intervaly vzorků a zadat maximální počet vzorků. Bez parametrů Get-Counter
získá data čítačů výkonu pro sadu systémových čítačů.
Mnoho sad čítačů je chráněno seznamy řízení přístupu (ACL). Pokud chcete zobrazit všechny sady čítačů, otevřete PowerShell s možností Spustit jako správce .
Příklady
Příklad 1: Získání seznamu sad čítačů
Tento příklad získá seznam sad čítačů místního počítače.
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
použije parametr ListSet s hvězdičkou (*
) k získání seznamu sad čítačů.
Tečka (.
) ve sloupci MachineName představuje místní počítač.
Příklad 2: Zadejte SampleInterval a MaxSamples.
Tento příklad získá data čítače pro všechny procesory v místním počítači. Data se shromažďují ve dvousekundových intervalech, dokud nejsou k dispozici tři vzorky.
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
použije parametr Counter k určení cesty \Processor(_Total)\% Processor Time
čítače . Parametr SampleInterval nastaví dvousekundový interval pro kontrolu čítače. MaxSamples určuje, že tři je maximální počet opakování kontroly čítače.
Příklad 3: Získání průběžných vzorků čítače
Tento příklad získává průběžné vzorky pro čítač každou sekundu. Příkaz zastavíte stisknutím klávesy CTRL+C. Pokud chcete určit delší interval mezi ukázkami, použijte parametr 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
k určení čítače \Processor\% Processor Time
použije parametr Counter.
Parametr Continuous určuje, že se mají vzorky získávat každou sekundu, dokud se příkaz nezastaví klávesou CTRL+C.
Příklad 4: Abecední seznam sad čítačů
Tento příklad používá kanál k získání seznamu čítačů a následnému seřazení seznamu v abecedním pořadí.
Get-Counter -ListSet * | Sort-Object -Property CounterSetName | Format-Table -AutoSize
CounterSetName MachineName CounterSetType Description
-------------- ----------- -------------- -----------
.NET CLR Data . SingleInstance .Net CLR Data
.NET Data Provider for SqlServer . SingleInstance Counters for System.Data.SqlClient
AppV Client Streamed Data Percentage . SingleInstance Size of data streamed to disk ...
Authorization Manager Applications . SingleInstance The set of Counters for ...
BitLocker . MultiInstance BitLocker Drive Encryption ...
Bluetooth Device . SingleInstance Counters related to a remote ...
Cache . SingleInstance The Cache performance object ...
Client Side Caching . SingleInstance Performance counters for SMB ...
Get-Counter
Pomocí parametru ListSet s hvězdičkou (*
) získáte úplný seznam sad čítačů. Objekty CounterSet se odesílají do kanálu. Sort-Object
používá parametr Property k určení, že objekty jsou seřazeny podle CounterSetName. Objekty se posílají do kanálu .Format-Table
Parametr AutoSize upravuje šířky sloupců tak, aby se minimalizovalo zkrácení.
Tečka (.
) ve sloupci MachineName představuje místní počítač.
Příklad 5: Spuštění úlohy na pozadí pro získání dat čítačů
V tomto příkladu Start-Job
Get-Counter
spustí příkaz jako úlohu na pozadí na místním počítači.
Pokud chcete zobrazit výstup čítače výkonu z úlohy, použijte rutinu 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
ke spuštění Get-Counter
příkazu použije parametr ScriptBlock. Get-Counter
použije parametr Counter k určení cesty \LogicalDisk(_Total)\% Free Space
čítače . Parametr MaxSamples určuje, že se má získat 1 000 vzorků čítače.
Příklad 6: Získání dat čítače z více počítačů
Tento příklad používá proměnnou k získání dat čítačů výkonu ze dvou počítačů.
$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
Proměnná $DiskReads
ukládá cestu čítače \LogicalDisk(C:)\Disk Reads/sec
. Proměnná $DiskReads
se odešle do kanálu .Get-Counter
Čítač je parametr první pozice a přijímá cestu uloženou v $DiskReads
. ComputerName určuje dva počítače a MaxSamples určuje, aby se z každého počítače získalo 10 vzorků.
Příklad 7: Získání hodnot instancí čítače z více náhodných počítačů
Tento příklad získá hodnotu čítače výkonu na 50 náhodných vzdálených počítačích v podniku. Parametr ComputerName používá náhodné názvy počítačů uložené v proměnné. Pokud chcete aktualizovat názvy počítačů v proměnné, vytvořte proměnnou znovu.
Alternativou pro názvy serverů v parametru ComputerName je použití textového souboru. Příklad:
-ComputerName (Get-Random (Get-Content -Path C:\Servers.txt) -Count 50)
Cesta čítače obsahuje hvězdičku (*
) v názvu instance pro získání dat pro každý z procesorů vzdáleného počítače.
$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
Rutina Get-Random
používá Get-Content
k výběru 50 náhodných názvů počítačů ze souboruServers.txt . Názvy vzdálených počítačů jsou uloženy $Servers
v proměnné. Cesta \Processor(*)\% Processor Time
k čítači je uložená v $Counter
proměnné. Get-Counter
použije parametr Counter k určení čítačů v $Counter
proměnné. Parametr ComputerName určuje názvy počítačů v $Servers
proměnné.
Příklad 8: Použití vlastnosti Path k získání formátovaných názvů cest
Tento příklad používá vlastnost Path sady čítačů k vyhledání formátovaných názvů cest pro čítače výkonu.
Kanál se používá spolu s rutinou Where-Object
k vyhledání podmnožině názvů cest. Pokud chcete najít úplný seznam cest k čítačům, odeberte kanál (|
) a Where-Object
příkaz.
The $_
je automatická proměnná pro aktuální objekt v kanálu.
Další informace najdete v tématu 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
používá parametr ListSet k určení sady čítačů paměti . Příkaz je uzavřený v závorkách, takže vlastnost Paths vrátí každou cestu jako řetězec. Objekty se posílají do kanálu .Where-Object
Where-Object
použije proměnnou $_
ke zpracování každého objektu a použije parametr like k vyhledání shod pro řetězec *Cache*
. Hvězdičky (*
) jsou zástupné znaky pro všechny znaky.
Příklad 9: Použití vlastnosti PathsWithInstances k získání formátovaných názvů cest
Tento příklad získá formátované názvy cest, které obsahují instance pro čítače výkonu 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
používá parametr ListSet k určení sady čítačů PhysicalDisk . Příkaz je uzavřen v závorkách, takže PathWithInstances vlastnost vrátí každou instanci cesty jako řetězec.
Příklad 10: Získání jedné hodnoty pro každý čítač v sadě čítačů
V tomto příkladu se pro každý čítač výkonu v sadě čítačů paměti místního počítače vrátí jedna hodnota.
$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
používá parametr ListSet k určení sady čítačů paměti . Příkaz je uzavřený v závorkách, takže vlastnost Paths vrátí každou cestu jako řetězec. Cesty jsou uloženy v $MemCounters
proměnné. Get-Counter
použije parametr Counter k určení cest čítače v $MemCounters
proměnné.
Příklad 11: Zobrazení hodnot vlastností objektu
Hodnoty vlastností v objektu PerformanceCounterSample představují každou ukázku dat. V tomto příkladu použijeme vlastnosti objektu CounterSamples ke zkoumání, výběru, řazení a seskupení dat.
$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
Cesta k čítači je uložená $Counter
v proměnné. Get-Counter
získá jeden vzorek hodnot čítače a uloží výsledky do $Data
proměnné. Proměnná $Data
používá vlastnost CounterSamples k získání vlastností objektu. Objekt se odešle do kanálu .Format-List
Parametr Property používá k výběru všech vlastností zástupný znak hvězdičky (*
).
Příklad 12: Hodnoty pole čítačů výkonu
V tomto příkladu proměnná ukládá každý čítač výkonu. Vlastnost CounterSamples je pole, které může zobrazit konkrétní hodnoty čítače.
Pokud chcete zobrazit jednotlivé ukázky čítačů, použijte $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
použije parametr Counter k určení čítače \Processor(*)\% Processor Time
. Hodnoty jsou uloženy v $Counter
proměnné.
$Counter.CounterSamples[0]
zobrazí hodnotu pole pro první hodnotu čítače.
Příklad 13: Porovnání hodnot čítačů výkonu
Tento příklad najde čas procesoru používaný jednotlivými procesory v místním počítači. Vlastnost CounterSamples slouží k porovnání dat čítače se zadanou hodnotou.
Pokud chcete zobrazit jednotlivé ukázky čítačů, použijte $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
použije parametr Counter k určení čítače \Processor(*)\% Processor Time
. Hodnoty jsou uloženy v $Counter
proměnné. Objekty uložené v $Counter.CounterSamples
se odesílají kanálem. Where-Object
používá blok skriptu k porovnání hodnot jednotlivých objektů se zadanou hodnotou 20. Je $_.CookedValue
proměnná pro aktuální objekt v kanálu. Zobrazí se čítače s hodnotou CookedValue , která je menší než 20.
Příklad 14: Řazení dat čítače výkonu
Tento příklad ukazuje, jak seřadit data čítače výkonu. Příklad najde procesy v počítači, které během vzorku využívají nejvíce času procesoru.
$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
používá parametr Čítač k určení čítače \Process(*)\% Processor Time
pro všechny procesy v místním počítači. Výsledek se uloží do $Procs
proměnné . Proměnná $Procs
s vlastností CounterSamples odesílá objekty PerformanceCounterSample do kanálu. Sort-Object
pomocí parametru Property seřadí objekty podle CookedValue v sestupném pořadí. Format-Table
pomocí parametru Property vybere sloupce pro výstup. Parametr AutoSize upravuje šířky sloupců tak, aby se minimalizovalo zkrácení.
Parametry
-ComputerName
Určuje jeden název počítače nebo pole názvů vzdálených počítačů oddělené čárkami. Použijte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény počítače.
Pokud chcete získat data čítače výkonu z místního počítače, vylučte parametr ComputerName .
Pro výstup, jako je ListSet obsahující sloupec MachineName , označuje tečka (.
) místní počítač.
Get-Counter
nespoléhá na vzdálené komunikace PowerShellu. Parametr ComputerName můžete použít i v případě, že váš počítač není nakonfigurovaný ke spouštění vzdálených příkazů.
Type: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Continuous
Pokud je zadána nepřetržitá , získá vzorky, Get-Counter
dokud nestisknete klávesu CTRL+C. Vzorky se získávají každou sekundu pro každý zadaný čítač výkonu. Pomocí parametru SampleInterval prodlužte interval mezi průběžnými vzorky.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Counter
Určuje cestu k jedné nebo více cestám čítačů. Cesty jsou vstupní jako pole oddělené čárkami, proměnná nebo hodnoty z textového souboru. Řetězce cesty čítače můžete odeslat dolů kanálem do Get-Counter
.
Cesty čítačů používají následující syntaxi:
\\ComputerName\CounterSet(Instance)\CounterName
\CounterSet(Instance)\CounterName
Příklad:
\\Server01\Processor(*)\% User Time
\Processor(*)\% User Time
V \\ComputerName
cestě k čítači výkonu je volitelný. Pokud cesta k čítači neobsahuje název počítače, Get-Counter
použije místní počítač.
Hvězdička (*
) v instanci je zástupný znak pro získání všech instancí čítače.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ListSet
Seznamy čítače výkonu na počítačích. Pomocí hvězdičky (*
) zadejte všechny sady čítačů. Zadejte jeden název nebo řetězec oddělený čárkami názvů sady čítačů. Názvy čítačů můžete posílat dolů kanálem.
Pokud chcete získat čítače, naformátované cesty čítačů, použijte parametr ListSet . Vlastnosti Paths a PathsWithInstances každé sady čítačů obsahují jednotlivé cesty k čítačům formátované jako řetězec.
Můžete uložit řetězce cesty k čítači do proměnné nebo použít kanál k odeslání řetězce do jiného Get-Counter
příkazu.
Například k odeslání cesty k jednotlivým čítačům procesoru do Get-Counter
:
Get-Counter -ListSet Processor | Get-Counter
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-MaxSamples
Určuje počet vzorků, které se mají získat z každého zadaného čítače výkonu. Pokud chcete získat konstantní proud ukázek, použijte parametr Průběžné .
Pokud parametr MaxSamples není zadaný, Get-Counter
získá pouze jeden vzorek pro každý zadaný čítač.
Pokud chcete shromáždit velkou sadu dat, spusťte Get-Counter
jako úlohu PowerShellu na pozadí. Další informace najdete v tématu Informace o úlohách.
Type: | Long |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SampleInterval
Určuje počet sekund mezi vzorky pro každý zadaný čítač výkonu. Pokud parametr SampleInterval není zadaný, Get-Counter
použije se interval s jednou sekundou.
Type: | Int |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Vstupy
String[]
Get-Counter
přijímá vstup kanálu pro cesty čítače a názvy sady čítačů.
Výstupy
Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample
Pokud chcete zobrazit vlastnosti objektu, odešlete výstup v kanálu do Get-Member
. Výstupem jsou následující typy objektů:
Parametr ListSet : Microsoft.PowerShell.Commands.GetCounter.CounterSet
Parametr čítače : Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet
Vlastnost CounterSamples: Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample
Poznámky
Pokud nejsou zadány žádné parametry, Get-Counter
získá jeden vzorek pro každý zadaný čítač výkonu. Další ukázky získáte pomocí parametrů MaxSamples a Continuous .
Get-Counter
používá mezi vzorky interval s jednou sekundou. Pomocí parametru SampleInterval interval zvětšete.
Hodnoty MaxSamples a SampleInterval platí pro všechny čítače v každém počítači v příkazu . Pokud chcete nastavit různé hodnoty pro různé čítače, zadejte samostatné Get-Counter
příkazy.