Get-Counter

A teljesítményszámláló adatait helyi és távoli számítógépekről szerzi be.

Syntax

Get-Counter
   [[-Counter] <String[]>]
   [-SampleInterval <Int32>]
   [-MaxSamples <Int64>]
   [-Continuous]
   [-ComputerName <String[]>]
   [<CommonParameters>]
Get-Counter
   [-ListSet] <String[]>
   [-ComputerName <String[]>]
   [<CommonParameters>]

Description

Ez a parancsmag csak a Windows platformon érhető el.

A Get-Counter parancsmag közvetlenül a Windows operációs rendszerek családjában található teljesítményfigyelési rendszerből szerzi be a teljesítményszámláló adatait. Get-Counter teljesítményadatokat kap egy helyi számítógépről vagy távoli számítógépről.

A paraméterekkel Get-Counter megadhat egy vagy több számítógépet, listázhatja a teljesítményszámláló-készleteket és az általuk tartalmazott példányokat, beállíthatja a mintaintervallumokat, és megadhatja a minták maximális számát. Paraméterek Get-Counter nélkül lekéri a rendszerszámlálók egy készletének teljesítményszámlálóinak adatait.

Számos számlálókészletet hozzáférés-vezérlési listák (ACL) védenek. Az összes számlálókészlet megtekintéséhez nyissa meg a PowerShellt a Futtatás rendszergazdaként beállítással.

Ezt a parancsmagot újra bevezették a PowerShell 7-ben.

Feljegyzés

A teljesítményszámlálók neve honosított. Az itt látható példák a teljesítményobjektumok, számlálók és példányok angol nevét használják. A nevek eltérőek lesznek egy másik nyelvet használó rendszeren. Get-Counter -ListSet A parancs használatával megtekintheti a honosított neveket.

Példák

1. példa: A számlálókészletek listájának lekérése

Ez a példa lekéri a helyi számítógép számlálókészleteinek listáját.

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 A ListSet paramétert csillaggal (*) használja a számlálókészletek listájának lekéréséhez. A MachineName oszlopban lévő pont (.) a helyi számítógépet jelöli.

2. példa: A SampleInterval és a MaxSamples megadása

Ez a példa lekéri a helyi számítógép összes processzorának számlálóadatait. Az adatokat két másodperces időközönként gyűjtjük, amíg három minta nem lesz.

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 a Számláló paraméter használatával adja meg a számláló elérési útját \Processor(_Total)\% Processor Time. A SampleInterval paraméter két másodperces időközt állít be a számláló ellenőrzéséhez. A MaxSamples azt határozza meg, hogy a számláló ellenőrzésének maximális száma három.

3. példa: Számláló folyamatos mintáinak lekérése

Ez a példa másodpercenként folyamatos mintákat kap egy számlálóhoz. A parancs leállításához nyomja le a CTRL C billentyűkombinációt.+ A minták közötti hosszabb időköz megadásához használja a SampleInterval paramétert .

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-CounterA Számláló paraméter használatával adja meg a számlálót\Processor\% Processor Time. A Folyamatos paraméter azt adja meg, hogy másodpercenként lekérje a mintákat, amíg a parancs le nem áll a CTRL C billentyűkombinációval+.

4. példa: Számlálókészletek betűrendes listája

Ez a példa a folyamat használatával lekéri a számlálólista-készletet, majd betűrendbe rendezi a listát.

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 A ListSet paramétert csillaggal (*) használja a számlálókészletek teljes listájának lekéréséhez. A CounterSet-objektumok a folyamaton keresztül lesznek elküldve. Sort-ObjectA Tulajdonság paraméter használatával adja meg, hogy az objektumok a CounterSetName szerint legyenek rendezve. A rendszer elküldi az objektumokat a folyamatnak Format-Table. Az AutoSize paraméter a csonkolás minimalizálása érdekében módosítja az oszlopszélességeket.

A MachineName oszlopban lévő pont (.) a helyi számítógépet jelöli.

5. példa: Háttérfeladat futtatása számlálóadatok lekéréséhez

Ebben a példában Start-Job egy Get-Counter parancsot futtat háttérfeladatként a helyi számítógépen. A feladat teljesítményszámlálójának kimenetének megtekintéséhez használja a Receive-Job parancsmagot.

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 parancs futtatásához használja a ScriptBlock paramétert Get-Counter . Get-Counter a Számláló paraméter használatával adja meg a számláló elérési útját \LogicalDisk(_Total)\% Free Space. A MaxSamples paraméter 1000 számlálómintát ad meg.

6. példa: Számlálóadatok lekérése több számítógépről

Ez a példa egy változót használ a teljesítményszámláló adatainak lekéréséhez két számítógépről.

$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

A $DiskReads változó tárolja a \LogicalDisk(C:)\Disk Reads/sec számláló elérési útját. A $DiskReads változót a rendszer elküldi a folyamatnak Get-Counter. A Számláló az első pozícióparaméter, és elfogadja a benne $DiskReadstárolt elérési utat. A ComputerName megadja a két számítógépet, a MaxSamples pedig 10 mintát szeretne lekérni minden számítógépről.

7. példa: Egy számláló példányértékének lekérése több véletlenszerű számítógépről

Ez a példa egy teljesítményszámláló értékét adja meg a vállalat 50 véletlenszerű, távoli számítógépén. A ComputerName paraméter egy változóban tárolt véletlenszerű számítógépneveket használ. A változó számítógépneveinek frissítéséhez hozza létre újra a változót.

A ComputerName paraméter kiszolgálóneveinek másik lehetősége egy szövegfájl használata. Példa:

-ComputerName (Get-Random (Get-Content -Path C:\Servers.txt) -Count 50)

A számláló elérési útja tartalmaz egy csillagot (*) a példány nevében, hogy lekérje a távoli számítógép egyes processzorainak adatait.

$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

A Get-Random parancsmag 50 véletlenszerű számítógépnevet választ Get-Content ki a Servers.txt fájlból. A távoli számítógépnevek a $Servers változóban vannak tárolva. A \Processor(*)\% Processor Time számláló elérési útja a $Counter változóban van tárolva. Get-CounterA Számláló paraméter használatával adja meg a változó számlálóit$Counter. A ComputerName paraméter megadja a változó számítógépneveit $Servers .

8. példa: Formázott elérési útnevek lekérése az Elérési út tulajdonság használatával

Ez a példa egy számlálókészlet Path tulajdonságával keresi meg a teljesítményszámlálók formázott elérési útjait.

A folyamat a parancsmaggal együtt használja az Where-Object elérési útnevek egy részhalmazának megkereséséhez. A számlálókészletek számlálóútvonalainak teljes listájának megkereséséhez távolítsa el a folyamatot (|) és Where-Object a parancsot.

Ez $_ a folyamat aktuális objektumának automatikus változója. További információ: 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 A ListSet paraméter használatával adja meg a Memóriaszámláló készletet. A parancs zárójelben van, így az Elérési utak tulajdonság sztringként adja vissza az egyes elérési utakat. A rendszer elküldi az objektumokat a folyamatnak Where-Object. Where-Object a változóval $_ dolgozza fel az egyes objektumokat, és az -like operátorral megkeresi a sztring *Cache*egyezéseit. A csillag (*) minden karakterhez helyettesítő karakterek.

9. példa: A PathsWithInstances tulajdonság használatával kérje le a formázott elérési utak nevét

Ez a példa a PhysicalDisk teljesítményszámlálók példányait tartalmazó formázott elérési utak nevét tartalmazza.

(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 A ListSet paraméter használatával adja meg a PhysicalDisk számlálókészletet. A parancs zárójelben van, így a PathsWithInstances tulajdonság sztringként adja vissza az egyes elérési utakat.

10. példa: Egyetlen érték lekérése minden számlálóhoz egy számlálókészletben

Ebben a példában a rendszer egyetlen értéket ad vissza a helyi számítógép Memória számlálókészletében lévő teljesítményszámlálókhoz.

$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 A ListSet paraméter használatával adja meg a Memóriaszámláló készletet. A parancs zárójelben van, így az Elérési utak tulajdonság sztringként adja vissza az egyes elérési utakat. Az elérési utak a $MemCounters változóban vannak tárolva. Get-CounterA Számláló paraméter használatával adja meg a változó számlálóútvonalait$MemCounters.

11. példa: Objektum tulajdonságértékének megjelenítése

A PerformanceCounterSample objektum tulajdonságértékei az egyes adatmintákat jelölik. Ebben a példában a CounterSamples objektum tulajdonságait használjuk az adatok vizsgálatához, kiválasztásához, rendezéséhez és csoportosításához.

$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

A számláló elérési útja a $Counter változóban van tárolva. Get-Counter lekéri a számláló értékeinek egy mintáját, és az eredményeket a $Data változóban tárolja. A $Data változó a CounterSamples tulajdonsággal szerzi be az objektum tulajdonságait. A rendszer elküldi az objektumot a folyamatnak Format-List. A Tulajdonság paraméter csillag (*) helyettesítő karakterrel választja ki az összes tulajdonságot.

12. példa: Teljesítményszámláló tömbértékek

Ebben a példában egy változó tárolja az egyes teljesítményszámlálókat. A CounterSamples tulajdonság egy tömb, amely képes megjeleníteni bizonyos számlálóértékeket.

Az egyes számlálóminták megjelenítéséhez használja a következőt $Counter.CounterSamples: .

$Counter = Get-Counter -Counter "\Processor(*)\% Processor Time"
$Counter.CounterSamples[0]

Path                                         InstanceName        CookedValue
----                                         ------------        -----------
\\Computer01\processor(0)\% processor time   0              1.33997091699662

Get-CounterA Számláló paraméter használatával adja meg a számlálót\Processor(*)\% Processor Time. Az értékek a $Counter változóban vannak tárolva. $Counter.CounterSamples[0] az első számláló értékének tömbértékét jeleníti meg.

13. példa: Teljesítményszámláló értékeinek összehasonlítása

Ez a példa a helyi számítógépen található egyes processzorok által felhasznált processzoridőt találja meg. A CounterSamples tulajdonság a számláló adatainak egy megadott értékhez való összehasonlítására szolgál.

Az egyes számlálóminták megjelenítéséhez használja a következőt $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-CounterA Számláló paraméter használatával adja meg a számlálót\Processor(*)\% Processor Time. Az értékek a $Counter változóban vannak tárolva. A rendszer elküldi a folyamaton belül a tárolt $Counter.CounterSamples objektumokat. Where-Object szkriptblokk használatával összehasonlítja az egyes objektumok értékét a megadott értékekkel 20. Ez $_.CookedValue a folyamat aktuális objektumának változója. A 20-nál kisebb CookedValue értékű számlálók jelennek meg.

14. példa: Teljesítményszámláló adatainak rendezése

Ez a példa bemutatja, hogyan rendezheti a teljesítményszámláló adatait. A példa megkeresi azokat a folyamatokat a számítógépen, amelyek a minta során a legtöbb processzoridőt használják.

$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 A Számláló paraméter használatával adja meg a \Process(*)\% Processor Time számlálót a helyi számítógépen található összes folyamathoz. Az eredmény a $Procs változóban lesz tárolva. A $Procs CounterSamples tulajdonsággal rendelkező változó elküldi a PerformanceCounterSample objektumokat a folyamaton. Sort-ObjectA Tulajdonság paraméter használatával rendezi az objektumokat a CookedValue szerintcsökkenő sorrendben. Format-Table A Tulajdonság paraméter használatával választja ki a kimenet oszlopait. Az AutoSize paraméter a csonkolás minimalizálása érdekében módosítja az oszlopszélességeket.

Paraméterek

-ComputerName

Egy számítógépnevet vagy távoli számítógépnevek vesszővel tagolt tömbét adja meg. Használja a NetBIOS-nevet, egy IP-címet vagy a számítógép teljes tartománynevét.

Ha teljesítményszámláló adatokat szeretne lekérni a helyi számítógépről, zárja ki a ComputerName paramétert . A MachineName oszlopot tartalmazó listSet kimenet esetén a pont (.) a helyi számítógépet jelöli.

Get-Counter nem támaszkodik a PowerShell-újraküldésre. Akkor is használhatja a ComputerName paramétert, ha a számítógép nincs távoli parancsok futtatására konfigurálva.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Continuous

Ha a Folyamatos parancs meg van adva, Get-Counter a CTRL C billentyűkombináció+lenyomásával lekéri a mintákat. A minták minden egyes megadott teljesítményszámlálóhoz másodpercenként lekértek. A SampleInterval paraméter használatával növelheti a folyamatos minták közötti intervallumot.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Counter

Egy vagy több számláló elérési útját adja meg. Az elérési utak vesszővel elválasztott tömbként, változóként vagy szövegfájlból származó értékekként jelennek meg. A számláló elérési útjának sztringjei a folyamaton Get-Counterlefelé küldhetők.

A számláló elérési útjai a következő szintaxist használják:

\\ComputerName\CounterSet(Instance)\CounterName

\CounterSet(Instance)\CounterName

Példa:

\\Server01\Processor(*)\% User Time

\Processor(*)\% User Time

A \\ComputerName teljesítményszámláló elérési útjának megadása nem kötelező. Ha a számláló elérési útja nem tartalmazza a számítógép nevét, Get-Counter használja a helyi számítógépet.

A példány csillaga (*) egy helyettesítő karakter a számláló összes példányának lekéréséhez.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-ListSet

A számítógépek teljesítményszámláló-készleteit sorolja fel. Csillag (*) használatával adja meg az összes számlálókészletet. Adjon meg egy nevet vagy egy vesszővel elválasztott karakterláncot a számlálókészletek neveiből. A számlálókészletek nevét a folyamaton keresztül is elküldheti.

Számlálókészletek formázott számlálóútvonalainak lekéréséhez használja a ListSet paramétert . Az egyes számlálókészletek Elérési utak és PathsWithInstances tulajdonságai sztringként formázott egyéni számlálóútvonalakat tartalmaznak.

Mentheti a számláló elérési útját egy változóban, vagy a folyamat használatával elküldheti a sztringet egy másik Get-Counter parancsnak.

Például az egyes processzorszámlálók elérési útjainak elküldéséhez:Get-Counter

Get-Counter -ListSet Processor | Get-Counter

Feljegyzés

A PowerShell 7-ben Get-Counter nem lehet lekérni a számlálókészlet Leírás tulajdonságát. A leírás értéke .$null

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-MaxSamples

Megadja az egyes teljesítményszámlálókból lekérendő minták számát. A minták folyamatos adatfolyamának lekéréséhez használja a Folyamatos paramétert.

Ha a MaxSamples paraméter nincs megadva, Get-Counter csak egy mintát kap minden megadott számlálóhoz.

Nagy adatkészlet gyűjtéséhez futtassa Get-Counter PowerShell-háttérfeladatként. További információkért lásd a feladatokat ismertető szakaszt.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SampleInterval

Az egyes megadott teljesítményszámlálók mintái közötti másodpercek számát adja meg. Ha a SampleInterval paraméter nincs megadva, Get-Counter egy másodperces időközt használ.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

String[]

Get-Counter Fogadja a folyamat bemenetét a számláló elérési útjaihoz és a számlálókészletek nevéhez.

Kimenetek

CounterSet

A ListSet paraméterrel ez a parancsmag CounterSet objektumokat ad vissza.

PerformanceCounterSampleSet

Ez a parancsmag alapértelmezés szerint a Counter paraméterrel a PerformanceCounterSampleSet objektumokat adja vissza.

Jegyzetek

Ha nincsenek megadva paraméterek, Get-Counter minden megadott teljesítményszámlálóhoz egy-egy mintát kap. További minták beszerzéséhez használja a MaxSamples és a Continuous paramétereket.

Get-Counter egy másodperces időközt használ a minták között. Az intervallum növeléséhez használja a SampleInterval paramétert.

A MaxSamples és a SampleInterval értékek a parancs minden számítógépének számlálójára vonatkoznak. Ha különböző értékeket szeretne beállítani a különböző számlálókhoz, adjon meg külön Get-Counter parancsokat.

A PowerShell 7-ben a ListSet paraméter Get-Counter használatakor nem lehet lekérni a számlálókészlet Description tulajdonságát. A leírás értéke .$null