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 <Int32>]
   [-MaxSamples <Int64>]
   [-Continuous]
   [-ComputerName <String[]>]
   [<CommonParameters>]
Get-Counter
   [-ListSet] <String[]>
   [-ComputerName <String[]>]
   [<CommonParameters>]

Description

Tato rutina je dostupná jenom na platformě Windows.

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 .

Tato rutina byla znovu vyvolána 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. 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-Counterpouží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 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 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-JobGet-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-Counterpouží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-Counterpouží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-Counterpomocí 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.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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č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.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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

Poznámka:

V PowerShellu 7 Get-Counter nelze načíst vlastnost Popis sady čítačů. Popis je nastaven na $nullhodnotu .

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. 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.

Type:Int64
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 jeden-druhý interval.

Type:Int32
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

CounterSet

Při použití parametru ListSet vrátí tato rutina objekty CounterSet .

PerformanceCounterSampleSet

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.

V PowerShellu 7 nelze při použití parametru Get-Counter ListSet načíst vlastnost Popis sady čítačů. Popis je nastaven na $nullhodnotu .