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-Counter
A 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-Object
A 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 $DiskReads
tá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-Counter
A 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-Counter
A 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-Counter
A 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-Counter
A 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-Object
A 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-Counter
lefelé 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
A ListSet paraméterrel ez a parancsmag CounterSet objektumokat ad vissza.
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
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: