Get-Counter
Získá data čítače výkonu z místních a vzdálených počítačů.
Syntaxe
GetCounterSet (Výchozí)
Get-Counter
[[-Counter] <String[]>]
[-SampleInterval <Int32>]
[-MaxSamples <Int64>]
[-Continuous]
[-ComputerName <String[]>]
[<CommonParameters>]
ListSetSet
Get-Counter
[-ListSet] <String[]>
[-ComputerName <String[]>]
[<CommonParameters>]
Description
Tato rutina je dostupná jenom na platformě Windows.
Cmdlet Get-Counter získává data čítače výkonu přímo z instrumentace monitorování výkonu v operačních systémech rodiny Windows.
Get-Counter získá údaje o výkonu z místního počítače nebo ze vzdálených počítačů.
Parametry Get-Counter můžete použít k určení jednoho nebo více počítačů, výpis sad čítačů výkonu a instancí, které obsahují, nastavení intervalů vzorku a určení maximálního počtu vzorků. Bez parametrů Get-Counter získává data výkonnostního čítače 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.
Tato rutina byla znovu zavedena v PowerShellu 7.
Poznámka:
Názvy čítačů výkonu jsou lokalizované. Zde uvedené příklady používají anglické názvy objektů výkonu, čítačů a instancí. Názvy se budou lišit v systému, který používá jiný jazyk. Pomocí příkazu Get-Counter -ListSet zobrazte lokalizované názvy.
Příklady
Příklad 1: Získání seznamu sady čítačů
Tento příklad získá seznam skupin čí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 k získání seznamu sad čítačů používá parametr ListSet s hvězdičkou (*).
Tečka (.) ve sloupci MachineName představuje místní počítač.
Příklad 2: Určení parametru SampleInterval a MaxSamples
Tento příklad získá data z čítače pro všechny procesory v místním počítači. Data se shromažďují v dvousekundových intervalech, dokud nebudou 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žívá parametr čítače k určení cesty čítače \Processor(_Total)\% Processor Time. Parametr SampleInterval nastaví dvousekundový interval pro kontrolu čítače.
MaxSamples určuje, že maximální počet kontrol čítače je tři.
Příklad 3: Získání kontinuálních vzorků čítače
Tento příklad sbírá průběžné vzorky pro čítač každou sekundu. Pokud chcete příkaz zastavit, stiskněte CTRL+C. Pokud chcete zadat delší interval mezi vzorky, 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 používá parametr \Processor\% Processor Time.
Parametr Continuous určuje, že se mají vzorky získávat každou sekundu, dokud se příkaz nezastaví pomocí CTRL+C.
Příklad 4: Abecední seznam sad čítačů
Tento příklad používá pipeline k získání seznamu čítačů a poté seřazuje seznam podle abecedy.
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 pomocí parametru ListSet s hvězdičkou (*) získáte úplný seznam sad čítačů. Objekty CounterSet se odesílají do potrubí.
Sort-Object používá parametr vlastnosti k určení, že objekty jsou seřazeny podle CounterSetName. Objekty se odesílají do kanálu Format-Table. Parametr AutoSize upraví šíř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 spustí příkaz Get-Counter 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í příkazu používá Get-Counter ScriptBlock.
Get-Counter používá parametr čítače k určení cesty čítače \LogicalDisk(_Total)\% Free Space. Parametr MaxSamples určuje získání 1000 vzorků čítače.
Příklad 6: Získání dat čítačů z více počítačů
Tento příklad používá proměnnou k získání dat čítače 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 je odeslána přes kanál k Get-Counter.
Čítač je první parametr pozice a přijímá cestu uloženou v $DiskReads.
ComputerName určuje dva počítače a MaxSamples určuje, že se z každého počítače získá 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 ukazatele výkonu na 50 náhodných vzdálených počítačích v organizaci. Parametr ComputerName používá náhodné názvy počítačů uložené v proměnné. Chcete-li aktualizovat názvy počítačů v proměnné, znovu vytvořte proměnnou.
Alternativou pro názvy serverů v parametru ComputerName je použití textového souboru. Napří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ý 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 souboru Servers.txt. Názvy vzdálených počítačů jsou uloženy v proměnné $Servers. Cesta čítače \Processor(*)\% Processor Time je uložená v proměnné $Counter.
Get-Counter používá parametr čítače k určení čítačů v proměnné $Counter. Parametr ComputerName určuje názvy počítačů v proměnné $Servers.
Příklad 8: Použití vlastnosti Cesta 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á s rutinou Where-Object k vyhledání podmnožiny názvů cest. Pokud chcete najít úplný seznam cest čítačů, odeberte kanál (|) a Where-Object příkaz.
$_ je automatická proměnná pro aktuální objekt v kanálu.
Viz about_Automatic_Variablespro více informací.
(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 ke specifikaci sady čítačů paměti . Příkaz je uzavřen v závorkách, aby vlastnost Cesty vracela každou cestu jako řetězec. Objekty se odesílají do kanálu Where-Object.
Where-Object používá proměnnou $_ ke zpracování každého objektu a pomocí operátoru -like vyhledá shody pro řetězec *Cache*. Hvězdičky (*) jsou zástupné znaky pro všechny znaky.
Příklad 9: Získání formátovaných názvů cest pomocí vlastnosti PathsWithInstances
Tento příklad získá zformá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 kulatých závorkách, aby vlastnost PathsWithInstances vrátila každou instanci cesty jako textový řetězec.
Příklad 10: Získání jedné hodnoty pro každý čítač v sadě čítačů
V tomto příkladu je pro každý čítač výkonu v sadě čítačů paměti místního počítače vrácena 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 ke specifikaci sady čítačů paměti . Příkaz je uzavřen v závorkách, aby vlastnost Cesty vracela každou cestu jako řetězec. Cesty jsou uloženy v proměnné $MemCounters.
Get-Counter používá parametr Counter k určení cest čítačů v proměnné $MemCounters.
Příklad 11: Zobrazení hodnot vlastností objektu
Hodnoty vlastností v objektu PerformanceCounterSample představují každou ukázku dat. V tomto příkladu používáme vlastnosti CounterSamples objekt k prozkoumá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 čítače je uložena v proměnné $Counter.
Get-Counter získá jeden vzorek hodnot čítače a uloží výsledky do proměnné $Data. Proměnná $Data používá vlastnost CounterSamples k získání vlastností objektu. Objekt je odeslán potrubím do Format-List. Parametr Vlastnost používá zástupný znak hvězdičky (*) k výběru všech vlastností.
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.
Chcete-li zobrazit jednotlivé vzorky čí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žívá parametr čítače k určení čítače \Processor(*)\% Processor Time. Hodnoty jsou uloženy v proměnné $Counter.
$Counter.CounterSamples[0] zobrazuje hodnotu pole pro první hodnotu počitadla.
Příklad 13: Porovnání hodnot čítačů výkonu
Tento příklad najde množství času procesoru používaného každým procesorem v místním počítači. Vlastnost CounterSamples slouží k porovnání dat čítače se zadanou hodnotou.
Chcete-li zobrazit jednotlivé vzorky čí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žívá parametr čítače k určení čítače \Processor(*)\% Processor Time. Hodnoty jsou uloženy v proměnné $Counter. Objekty uložené v $Counter.CounterSamples se odesílají do potrubí.
Where-Object používá blok skriptu k porovnání jednotlivých objektů s zadanou hodnotou 20.
$_.CookedValue je proměnná pro aktuální objekt v kanálu. Zobrazí se čítače, jejichž CookedValue 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 použí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 pomocí parametru Counter určuje čítač \Process(*)\% Processor Time pro všechny procesy v místním počítači. Výsledek se uloží do proměnné $Procs. Proměnná $Procs s vlastností CounterSamples odešle objekty PerformanceCounterSample dolů kanálem.
Sort-Object pomocí parametru vlastnost seřadí objekty podle CookedValue v pořadí Sestupně.
Format-Table pomocí parametru Vlastnost vybere sloupce výstupu. Parametr AutoSize upraví šířky sloupců tak, aby se minimalizovalo zkrácení.
Parametry
-ComputerName
Určuje jeden název počítače nebo pole oddělené čárkami vzdálených názvů počítačů. 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, například ListSet, který obsahuje sloupec MachineName, označuje místní počítač tečka (.).
Get-Counter nespoléhá na PowerShell remoting. Parametr ComputerName můžete použít i v případě, že váš počítač není nakonfigurovaný tak, aby spouštět vzdálené příkazy.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Kn |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Continuous
Pokud je zadán nepřetržitý, Get-Counter dostane vzorky, dokud nestisknete CTRL+C. Vzorky se získávají každou sekundu pro každý zadaný čítač výkonu. Pomocí parametru SampleInterval zvyšte interval mezi průběžnými vzorky.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
GetCounterSet
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Counter
Určuje cestu k jedné nebo více cestám čítače. Cesty jsou zadávány jako pole hodnot oddělené čárkami, proměnná nebo hodnoty z textového souboru. Řetězce cesty čítače můžete odeslat kanálem k Get-Counter.
Cesty čítačů používají následující syntaxi:
\\ComputerName\CounterSet(Instance)\CounterName
\CounterSet(Instance)\CounterName
Například:
\\Server01\Processor(*)\% User Time
\Processor(*)\% User Time
V cestě čítače výkonu je \\ComputerName nepovinný. Pokud cesta čítače 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.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | True |
| DontShow: | False |
Sady parametrů
GetCounterSet
| Position: | 0 |
| Povinné: | False |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | True |
| Hodnota ze zbývajících argumentů: | False |
-ListSet
Zobrazí seznam sad čítačů výkonu v počítačích. K určení všech sad čítačů použijte hvězdičku (*). Zadejte jeden název nebo řetězec sady čítačů oddělený čárkami. Názvy sady čítačů můžete odeslat v kanálu.
Chcete-li získat formátované cesty pro sady čítačů, použijte parametr ListSet. Cesty a PathsWithInstances jako vlastnosti každé sady čítačů obsahují jednotlivé cesty čítačů formátované jako řetězec.
Řetězce cesty čítače můžete uložit do proměnné nebo pomocí potrubí odeslat řetězec do jiného příkazu Get-Counter.
Pokud například chcete odeslat každou cestu čítače procesoruGet-Counter:
Get-Counter -ListSet Processor | Get-Counter
Poznámka:
V PowerShellu 7 Get-Counter nemůže načíst vlastnost Popis sady čítačů. Popis je nastaven na $null.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | True |
| DontShow: | False |
Sady parametrů
ListSetSet
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-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 nepřetržitý proud ukázek, použijte parametr Nepřetržitý.
Pokud není zadaný parametr MaxSamples, 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 naleznete v části about_Jobs.
Vlastnosti parametru
| Typ: | Int64 |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
GetCounterSet
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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 interval o jednu sekundu.
Vlastnosti parametru
| Typ: | Int32 |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
GetCounterSet
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
String
Get-Counter přijímá vstup z datového toku pro cesty počitadla a názvy sad počitadla.
Výstupy
CounterSet
S parametrem ListSet vrátí tato rutina CounterSet objekty.
PerformanceCounterSampleSet
Ve výchozím nastavení a s parametrem Counter vrátí tato rutina PerformanceCounterSampleSet objekty.
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á jednosekundový interval mezi vzorky. Ke zvýšení intervalu použijte parametr SampleInterval.
Hodnoty MaxSamples a SampleInterval platí pro všechny čítače na 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.
Pokud v PowerShellu 7 používáte parametr ListSet, Get-Counter nemůže načíst vlastnost Popis u sady čítačů. Popis je nastaven na $null.