Get-Counter
Yerel ve uzak bilgisayarlardan performans sayacı verilerini alır.
Syntax
Get-Counter
[[-Counter] <String[]>]
[-SampleInterval <Int32>]
[-MaxSamples <Int64>]
[-Continuous]
[-ComputerName <String[]>]
[<CommonParameters>]
Get-Counter
[-ListSet] <String[]>
[-ComputerName <String[]>]
[<CommonParameters>]
Description
Bu cmdlet yalnızca Windows platformunda kullanılabilir.
Get-Counter
Cmdlet, performans sayacı verilerini doğrudan Windows işletim sistemi ailesindeki performans izleme araçlarından alır. Get-Counter
yerel bir bilgisayardan veya uzak bilgisayarlardan performans verilerini alır.
Parametreleri kullanarak Get-Counter
bir veya daha fazla bilgisayar belirtebilir, performans sayacı kümelerini ve içerdikleri örnekleri listeleyebilir, örnek aralıklarını ayarlayabilir ve en fazla örnek sayısını belirtebilirsiniz. Parametreler olmadan, Get-Counter
bir dizi sistem sayacı için performans sayacı verilerini alır.
Birçok sayaç kümesi erişim denetim listeleri (ACL) tarafından korunur. Tüm sayaç kümelerini görmek için Yönetici olarak çalıştır seçeneğiyle PowerShell'i açın.
Bu cmdlet PowerShell 7'de yeniden tanıtıldı.
Not
Performans sayacı adları yerelleştirilir. Burada gösterilen örneklerde performans nesnelerinin, sayaçların ve örneklerin İngilizce adları kullanılır. Başka bir dil kullanan bir sistemde adlar farklı olacaktır. Get-Counter -ListSet
Yerelleştirilmiş adları görmek için komutunu kullanın.
Örnekler
Örnek 1: Sayaç kümesi listesini alma
Bu örnek, yerel bilgisayarın sayaç kümeleri listesini alır.
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
, sayaç kümelerinin listesini almak için ListSet parametresini yıldız işaretiyle (*
) kullanır.
MachineName sütunundaki nokta (.
), yerel bilgisayarı temsil eder.
Örnek 2: SampleInterval ve MaxSamples değerlerini belirtin
Bu örnek, yerel bilgisayardaki tüm işlemciler için sayaç verilerini alır. Veriler üç örnek olana kadar iki saniyelik aralıklarla toplanır.
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
counter yolunu \Processor(_Total)\% Processor Time
belirtmek için Counter parametresini kullanır. SampleInterval parametresi, sayacı denetlemek için iki saniyelik bir aralık ayarlar. MaxSamples , sayacın denetlenebilmesi için en fazla üç sayı olduğunu belirler.
Örnek 3: Sayacın sürekli örneklerini alma
Bu örnekler her saniye bir sayaç için sürekli örnekler alır. Komutu durdurmak için CTRL C tuşuna+basın. Örnekler arasında daha uzun bir aralık belirtmek için SampleInterval parametresini kullanın.
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
sayacını belirtmek için Counter parametresini \Processor\% Processor Time
kullanır.
Sürekli parametresi, komut CTRL+C ile durdurulana kadar her saniye örneklerin alınmasını belirtir.
Örnek 4: Sayaç kümelerinin alfabetik listesi
Bu örnek, sayaç listesi kümesini almak ve ardından listeyi alfabetik sırada sıralamak için işlem hattını kullanır.
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
, sayaç kümelerinin tam listesini almak için ListSet parametresini yıldız işaretiyle (*
) kullanır. CounterSet nesneleri işlem hattına gönderilir. Sort-Object
, nesnelerin CounterSetName'e göre sıralandığını belirtmek için Property parametresini kullanır. Nesneler işlem hattına Format-Table
gönderilir. AutoSize parametresi, kesmeyi en aza indirmek için sütun genişliklerini ayarlar.
MachineName sütunundaki nokta (.
), yerel bilgisayarı temsil eder.
Örnek 5: Sayaç verilerini almak için arka plan işi çalıştırma
Bu örnekte, Start-Job
yerel bilgisayarda arka plan işi olarak bir Get-Counter
komut çalıştırır.
İşin performans sayacı çıkışını görüntülemek için cmdlet'ini Receive-Job
kullanın.
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
komut Get-Counter
çalıştırmak için ScriptBlock parametresini kullanır. Get-Counter
counter yolunu \LogicalDisk(_Total)\% Free Space
belirtmek için Counter parametresini kullanır. MaxSamples parametresi, sayacın 1000 örneğini almayı belirtir.
Örnek 6: Birden çok bilgisayardan sayaç verilerini alma
Bu örnek, iki bilgisayardan performans sayacı verilerini almak için bir değişken kullanır.
$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
$DiskReads
değişkeni sayaç yolunu depolar\LogicalDisk(C:)\Disk Reads/sec
. $DiskReads
değişkeni işlem hattına Get-Counter
gönderilir. Sayaç , ilk konum parametresidir ve içinde $DiskReads
depolanan yolu kabul eder. ComputerName iki bilgisayarı belirtir ve MaxSamples her bilgisayardan 10 örnek almak için belirtir.
Örnek 7: Birden çok rastgele bilgisayardan sayacın örnek değerlerini alma
Bu örnek, kuruluştaki 50 rastgele uzak bilgisayarda bir performans sayacının değerini alır. ComputerName parametresi bir değişkende depolanan rastgele bilgisayar adlarını kullanır. Değişkendeki bilgisayar adlarını güncelleştirmek için değişkeni yeniden oluşturun.
ComputerName parametresindeki sunucu adları için alternatif olarak bir metin dosyası kullanabilirsiniz. Örneğin:
-ComputerName (Get-Random (Get-Content -Path C:\Servers.txt) -Count 50)
Sayaç yolu, uzak bilgisayarın işlemcilerinin her birine ait verileri almak için örnek adında bir yıldız işareti (*
) içerir.
$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
Get-Random
Cmdlet, dosyadan Servers.txt
50 rastgele bilgisayar adı seçmek için kullanırGet-Content
. Uzak bilgisayar adları değişkeninde $Servers
depolanır. Sayacın \Processor(*)\% Processor Time
yolu değişkende $Counter
depolanır. Get-Counter
değişkenindeki sayaçları belirtmek için Counter parametresini $Counter
kullanır. ComputerName parametresi değişkendeki $Servers
bilgisayar adlarını belirtir.
Örnek 8: Biçimlendirilmiş yol adlarını almak için Path özelliğini kullanma
Bu örnek, performans sayaçlarının biçimlendirilmiş yol adlarını bulmak için bir sayaç kümesinin Path özelliğini kullanır.
İşlem hattı, yol adlarının Where-Object
bir alt kümesini bulmak için cmdlet'iyle birlikte kullanılır. Sayaç kümeleri, sayaç yollarının tam listesini bulmak için işlem hattını (|
) ve Where-Object
komutunu kaldırın.
$_
, işlem hattındaki geçerli nesne için otomatik bir değişkendir.
Daha fazla bilgi için bkz . 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
, Bellek sayaç kümesini belirtmek için ListSet parametresini kullanır. Komut, Paths özelliğinin her yolu dize olarak döndürmesi için parantez içine alınır. Nesneler işlem hattına Where-Object
gönderilir. Where-Object
her nesneyi işlemek için değişkenini $_
kullanır ve dizesinin -like
*Cache*
eşleşmelerini bulmak için işlecini kullanır. Yıldız işaretleri (*
), herhangi bir karakter için joker karakterdir.
Örnek 9: Biçimlendirilmiş yol adlarını almak için PathsWithInstances özelliğini kullanma
Bu örnek, PhysicalDisk performans sayaçlarının örneklerini içeren biçimlendirilmiş yol adlarını alır.
(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
, PhysicalDisk sayaç kümesini belirtmek için ListSet parametresini kullanır. PathsWithInstances özelliğinin her yol örneğini dize olarak döndürmesi için komut parantez içine alınır.
Örnek 10: Sayaç kümesindeki her sayaç için tek bir değer alma
Bu örnekte, yerel bilgisayarın Bellek sayaç kümesindeki her performans sayacı için tek bir değer döndürülür.
$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
, Bellek sayaç kümesini belirtmek için ListSet parametresini kullanır. Komut, Paths özelliğinin her yolu dize olarak döndürmesi için parantez içine alınır. Yollar değişkeninde $MemCounters
depolanır. Get-Counter
değişkenindeki sayaç yollarını belirtmek için Counter parametresini $MemCounters
kullanır.
Örnek 11: Nesnenin özellik değerlerini görüntüleme
PerformanceCounterSample nesnesindeki özellik değerleri her veri örneğini temsil eder. Bu örnekte verileri incelemek, seçmek, sıralamak ve gruplandırmak için CounterSamples nesnesinin özelliklerini kullanacağız.
$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
Sayaç yolu değişkeninde $Counter
depolanır. Get-Counter
sayaç değerlerinin bir örneğini alır ve sonuçları değişkende $Data
depolar. değişkeni, $Data
nesnenin özelliklerini almak için CounterSamples özelliğini kullanır. nesnesi işlem hattına Format-List
gönderilir. Property parametresi, tüm özellikleri seçmek için yıldız işareti (*
) joker karakteri kullanır.
Örnek 12: Performans sayacı dizi değerleri
Bu örnekte, bir değişken her performans sayacını depolar. CounterSamples özelliği, belirli sayaç değerlerini görüntüleyebilen bir dizidir.
Her sayaç örneğini görüntülemek için kullanın $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
sayacını belirtmek için Counter parametresini \Processor(*)\% Processor Time
kullanır. Değerler değişkeninde $Counter
depolanır.
$Counter.CounterSamples[0]
, ilk sayaç değeri için dizi değerini görüntüler.
Örnek 13: Performans sayacı değerlerini karşılaştırma
Bu örnek, yerel bilgisayardaki her işlemci tarafından kullanılan işlemci süresi miktarını bulur. CounterSamples özelliği, sayaç verilerini belirtilen değerle karşılaştırmak için kullanılır.
Her sayaç örneğini görüntülemek için kullanın $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
sayacını belirtmek için Counter parametresini \Processor(*)\% Processor Time
kullanır. Değerler değişkeninde $Counter
depolanır. içinde $Counter.CounterSamples
depolanan nesneler işlem hattına gönderilir. Where-Object
her nesne değerini belirtilen değeriyle 20
karşılaştırmak için bir betik bloğu kullanır. $_.CookedValue
, işlem hattındaki geçerli nesne için bir değişkendir. 20'den küçük bir CookedValue içeren sayaçlar görüntülenir.
Örnek 14: Performans sayacı verilerini sıralama
Bu örnek, performans sayacı verilerinin nasıl sıralanacağını gösterir. Örnek, bilgisayardaki örnek sırasında en fazla işlemci süresini kullanan işlemleri bulur.
$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
, yerel bilgisayardaki tüm işlemlerin sayacını \Process(*)\% Processor Time
belirtmek için Counter parametresini kullanır. Sonuç değişkeninde $Procs
depolanır. CounterSamples özelliğine sahip değişken PerformanceCounterSample nesnelerini işlem hattına gönderir.$Procs
Sort-Object
Nesneleri Azalan düzende CookedValue'ya göre sıralamak için Property parametresini kullanır. Format-Table
çıktının sütunlarını seçmek için Property parametresini kullanır. AutoSize parametresi, kesmeyi en aza indirmek için sütun genişliklerini ayarlar.
Parametreler
-ComputerName
Bir bilgisayar adını veya uzak bilgisayar adlarının virgülle ayrılmış dizisini belirtir. NetBIOS adını, IP adresini veya bilgisayarın tam etki alanı adını kullanın.
Yerel bilgisayardan performans sayacı verilerini almak için ComputerName parametresini hariç tutun.
MachineName sütununu içeren ListSet gibi bir çıkış için, yerel bilgisayarı bir nokta (.
) gösterir.
Get-Counter
PowerShell uzaktan iletişimini etkilemez. Bilgisayarınız uzak komutları çalıştıracak şekilde yapılandırılmamış olsa bile ComputerName parametresini kullanabilirsiniz.
Type: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Continuous
Sürekli belirtildiğinde, Get-Counter
CTRL+C tuşuna basana kadar örnekler alır. Belirtilen her performans sayacı için her saniye örnekler alınır. Sürekli örnekler arasındaki aralığı artırmak için SampleInterval parametresini kullanın.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Counter
Bir veya daha fazla sayaç yolunun yolunu belirtir. Yollar, bir metin dosyasından virgülle ayrılmış bir dizi, değişken veya değer olarak girilir. İşlem hattının Get-Counter
aşağısına sayaç yolu dizeleri gönderebilirsiniz.
Sayaç yolları aşağıdaki söz dizimini kullanır:
\\ComputerName\CounterSet(Instance)\CounterName
\CounterSet(Instance)\CounterName
Örneğin:
\\Server01\Processor(*)\% User Time
\Processor(*)\% User Time
\\ComputerName
bir performans sayacı yolunda isteğe bağlıdır. Sayaç yolu bilgisayar adını içermiyorsa yerel Get-Counter
bilgisayarı kullanır.
Örnekteki yıldız işareti (*
), sayacın tüm örneklerini almak için bir joker karakterdir.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ListSet
Bilgisayarlardaki performans sayacı kümelerini listeler. Tüm sayaç kümelerini belirtmek için yıldız işareti (*
) kullanın. Bir ad veya virgülle ayrılmış bir sayaç kümesi adı dizesi girin. İşlem hattında sayaç kümesi adları gönderebilirsiniz.
Sayaç kümeleri biçimlendirilmiş sayaç yollarını almak için ListSet parametresini kullanın. Her sayaç kümesinin Paths ve PathsWithInstances özellikleri, dize olarak biçimlendirilmiş tek tek sayaç yollarını içerir.
Sayaç yolu dizelerini bir değişkene kaydedebilir veya işlem hattını kullanarak dizeyi başka bir Get-Counter
komuta gönderebilirsiniz.
Örneğin, her İşlemci sayacı yolunu adresine göndermek için Get-Counter
:
Get-Counter -ListSet Processor | Get-Counter
Not
PowerShell 7'de sayaç Get-Counter
kümesinin Description özelliği alınamıyor. Açıklama olarak $null
ayarlanır.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-MaxSamples
Belirtilen her performans sayacından alınacak örnek sayısını belirtir. Sürekli bir örnek akışı almak için Continuous parametresini kullanın.
MaxSamples parametresi belirtilmezse, Get-Counter
belirtilen her sayaç için yalnızca bir örnek alır.
Büyük bir veri kümesi toplamak için PowerShell arka plan işi olarak çalıştırın Get-Counter
. Daha fazla bilgi için bkz. İşler hakkında.
Type: | Int64 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SampleInterval
Belirtilen her performans sayacı için örnekler arasındaki saniye sayısını belirtir. SampleInterval parametresi belirtilmezse, Get-Counter
bir saniyelik bir aralık kullanır.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
String[]
Get-Counter
sayaç yolları ve sayaç kümesi adları için işlem hattı girişini kabul eder.
Çıkışlar
ListSet parametresiyle, bu cmdlet CounterSet nesnelerini döndürür.
Varsayılan olarak ve Counter parametresiyle bu cmdlet PerformanceCounterSampleSet nesnelerini döndürür.
Notlar
Parametre belirtilmezse, Get-Counter
belirtilen her performans sayacı için bir örnek alır. Daha fazla örnek almak için MaxSamples ve Continuous parametrelerini kullanın.
Get-Counter
örnekler arasında bir saniyelik bir aralık kullanır. Aralığı artırmak için SampleInterval parametresini kullanın.
MaxSamples ve SampleInterval değerleri, komuttaki her bilgisayardaki tüm sayaçlara uygulanır. Farklı sayaçlar için farklı değerler ayarlamak için ayrı Get-Counter
komutlar girin.
PowerShell 7'de ListSet parametresi kullanılırken sayaç Get-Counter
kümesinin Description özelliği alınamıyor. Açıklama olarak $null
ayarlanır.
İlişkili Bağlantılar
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin