Get-Counter
Získá data čítače výkonu z místních a vzdálených počítačů.
Syntaxe
Get-Counter
[[-Counter] <String[]>]
[-SampleInterval <Int32>]
[-MaxSamples <Int64>]
[-Continuous]
[-ComputerName <String[]>]
[<CommonParameters>]
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 cmdlet 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.
Další informace naleznete v části 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 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.
Typ: | String[] |
Aliasy: | Cn |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
-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
.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | 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 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 najdete v tématu about_Jobs.
Typ: | Int64 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
String[]
Get-Counter
přijímá vstup z datového toku pro cesty počitadla a názvy sad počitadla.
Výstupy
S parametrem ListSet vrátí tato rutina CounterSet objekty.
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
.