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
Rutina Get-Counter
získá data čítače výkonu přímo z instrumentace monitorování výkonu v rodině operačních systémů Windows. Get-Counter
získá údaje o výkonu z místního počítače nebo ze vzdálených počítačů.
Parametry můžete použít Get-Counter
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á data čítače 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 .
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. Get-Counter -ListSet
Pomocí příkazu zobrazíte lokalizované názvy.
Příklady
Příklad 1: Získání seznamu sady čí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
pomocí parametru ListSet s hvězdičkou (*
) získá seznam sad čítačů.
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 čí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
pomocí parametru Counter určuje cestu \Processor(_Total)\% Processor Time
čítače . Parametr SampleInterval nastaví dvousekundový interval pro kontrolu čítače. MaxSamples určuje, že se jedná o maximální počet pokusů o kontrolu čítače.
Příklad 3: Získání souvislých vzorků čítače
Tento příklad získá průběžné vzorky pro čítač každou sekundu. Příkaz zastavíte stisknutím kláves CTRL+C. Pokud chcete zadat 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
používá parametr Counter k určení čítače\Processor\% Processor Time
.
Parametr Continuous určuje, že se mají vzorky získat každou sekundu, dokud se příkaz nezastaví pomocí ctrl+C.
Příklad 4: Abecední seznam sad čítačů
Tento příklad používá kanál k získání sady seznamu čítačů a následnému seřazení seznamu podle abecedy.
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
pomocí parametru Property určuje, že objekty jsou seřazeny podle CounterSetName. Objekty se odesílají do kanálu do Format-Table
. Parametr AutoSize upraví šířky sloupců, 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
používá parametr ScriptBlock ke spuštění Get-Counter
příkazu. Get-Counter
pomocí parametru Counter určuje cestu \LogicalDisk(_Total)\% Free Space
čítače . Parametr MaxSamples určuje, že má být 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
se odešle do kanálu do Get-Counter
. Čítač je první parametr pozice a přijímá cestu uloženou v $DiskReads
. Název počítače určuje dva počítače a MaxSamples určuje, že 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 čí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é. 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. 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ý 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 Servers.txt
souboru. Názvy vzdálených počítačů jsou uloženy v $Servers
proměnné. Cesta \Processor(*)\% Processor Time
čítače je uložená $Counter
v proměnné. Get-Counter
pomocí parametru Counter určuje čítače v $Counter
proměnné. Parametr ComputerName určuje názvy počítačů v $Servers
proměnné.
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žina názvů cest. Pokud chcete najít úplný seznam cest čítačů, odeberte kanál (|
) a Where-Object
příkaz.
Jedná se $_
o automatickou proměnnou 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, aby vlastnost Paths vrátila každou cestu jako řetězec. Objekty se odesílají do kanálu do Where-Object
. Where-Object
používá proměnnou $_
ke zpracování každého objektu -like
a pomocí operátoru najít 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á formátované názvy cest, které obsahují instance pro čítače výkonu fyzického disku .
(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
pomocí parametru ListSet určuje sadu čítačů fyzického disku . Příkaz je uzavřen v závorkách tak, aby PathWithInstances vlastnost vrací 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 čítači 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, aby vlastnost Paths vrátila každou cestu jako řetězec. Cesty jsou uloženy v $MemCounters
proměnné. Get-Counter
pomocí parametru Counter určuje cesty čítače $MemCounters
v 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žíváme vlastnosti CounterSamples objektu pro zkoumání, výběr, ř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 $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 do Format-List
. Parametr Property 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. CounterSamples vlastnost 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 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 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 Counter k určení čítače \Processor(*)\% Processor Time
. Hodnoty jsou uloženy v $Counter
proměnné. Objekty uložené v $Counter.CounterSamples
kanálu se odesílají. Where-Object
používá blok skriptu k porovnání jednotlivých objektů s zadanou hodnotou 20
. Jedná se $_.CookedValue
o proměnnou 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 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 \Process(*)\% Processor Time
Counter určuje čítač pro všechny procesy v místním počítači. Výsledek je uložen v $Procs
proměnné. Proměnná $Procs
s CounterSamples vlastnost odešle PerformanceCounterSample objekty dolů 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 upraví šířky sloupců, aby se minimalizovalo zkrácení.
Parametry
-ComputerName
Určuje jeden název počítače nebo pole oddělený čárkami s názvy vzdálených počítačů. Použijte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény počítače.
Chcete-li 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 , tečka (.
) označuje 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ý 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 zadaný průběžný, získá vzorky, Get-Counter
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 vstupní jako pole oddělené čárkami, proměnnou nebo hodnoty z textového souboru. Řetězce cesty čítače můžete odeslat do kanálu 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
Položka \\ComputerName
je volitelná v cestě čítače výkonu. 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: | 1 |
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. Pomocí hvězdičky (*
) zadejte všechny sady čítačů. Zadejte jeden název nebo řetězec sady čítačů oddělený čárkami. Názvy sady čítačů můžete odeslat v kanálu.
K získání sady čítačů naformátovaných cest čítačů použijte parametr ListSet . Vlastnosti Cesty a PathsWithInstances každé sady čítačů obsahují jednotlivé cesty čítače formátované jako řetězec.
Řetězce cesty čítače můžete uložit do proměnné nebo pomocí kanálu odeslat řetězec jinému Get-Counter
příkazu.
Například pro odeslání každé cesty čítače procesoru do Get-Counter
:
Get-Counter -ListSet Processor | Get-Counter
Typ: | String[] |
Position: | 1 |
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. K získání konstantního proudu ukázek použijte parametr Continuous .
Pokud není zadaný parametr MaxSamples, Get-Counter
získá pouze jeden vzorek pro každý zadaný čítač.
Pokud chcete shromáždit velkou datovou sadu, spusťte Get-Counter
ji jako úlohu PowerShellu na pozadí. Další informace najdete v tématu Informace o úlohách.
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 jeden-druhý interval.
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 kanálu pro cesty čítače a názvy sady čítačů.
Výstupy
Při použití parametru ListSet vrátí tato rutina objekty CounterSet .
Ve výchozím nastavení a s parametrem Counter tato rutina vrací objekty PerformanceCounterSampleSet .
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á jeden-druhý interval mezi vzorky. Ke zvýšení intervalu použijte parametr SampleInterval .
Hodnoty MaxSamples a SampleInterval se vztahují na 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.