Get-Counter
Yerel ve uzak bilgisayarlardan performans sayacı verilerini alır.
Sözdizimi
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'i performans sayacı verilerini doğrudan Windows işletim sistemleri ailesindeki performans izleme araçlarından alır.
Get-Counter
yerel bir bilgisayardan veya uzak bilgisayarlardan performans verilerini alır.
bir veya daha fazla bilgisayar belirtmek, performans sayacı kümelerini ve içerdikleri örnekleri listelemek, örnek aralıklarını ayarlamak ve en fazla örnek sayısını belirtmek için Get-Counter
parametrelerini kullanabilirsiniz. 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ştirilmiştir. 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. Yerelleştirilmiş adları görmek için Get-Counter -ListSet
komutunu kullanın.
Örnekler
Örnek 1: Sayaç seti listesini al
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.
.
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
sayaç yolunu belirtmek için \Processor(_Total)\% Processor Time
parametresini kullanır.
SampleInterval parametresi, sayacı denetlemek için iki saniyelik bir aralık ayarlar.
MaxSamples, sayacın denetlenebilmesi için en fazla üç kez olduğunu belirler.
Örnek 3: Sayacın sürekli örneklerini alma
Bu örnek, her saniye bir sayaç için sürekli olarak örnek alır. Komutu durdurmak için CTRL+Ctuşlarına 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 \Processor\% Processor Time
parametresini kullanır.
Sürekli parametresi, komut CTRL+Cile 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 iletilir.
Sort-Object
, nesnelerin counterSetName göre sıralanacağını belirtmek için Özelliği parametresini kullanır. Nesneler Format-Table
'a ulaşmak üzere işlem hattından gönderilir.
AutoSize parametresi, kesmeyi en aza indirmek için sütun genişliklerini ayarlar.
.
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
komutu çalıştırır.
İşin performans sayacı çıkışını görüntülemek için Receive-Job
cmdlet'ini 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
bir komutu çalıştırmak için Get-Counter
parametresini kullanır.
Get-Counter
sayaç yolunu belirtmek için \LogicalDisk(_Total)\% Free Space
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 \LogicalDisk(C:)\Disk Reads/sec
sayaç yolunu depolar.
$DiskReads
değişkeni Get-Counter
işlem hattına gönderilir.
Sayacı ilk konum parametresidir ve $DiskReads
içinde depolanan yolu kabul eder.
ComputerName iki bilgisayarı ve MaxSamples her bilgisayardan 10 örnek almayı 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ının alternatifi bir metin dosyası kullanmaktır. Mesela:
-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, Get-Content
dosyasından 50 rastgele bilgisayar adı seçmek için Servers.txt
'i kullanır. Uzak bilgisayar adları $Servers
değişkeninde depolanır.
\Processor(*)\% Processor Time
sayacının yolu $Counter
değişkeninde depolanır.
Get-Counter
, değişkenindeki sayaçları belirtmek için $Counter
parametresini kullanır.
ComputerName parametresi, $Servers
değişkenindeki 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 bir alt kümesini bulmak için Where-Object
cmdlet'iyle birlikte kullanılır. Sayaç setlerinin sayaç yollarının tam listesini bulmak için şunu yapın: 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 parantez içine alınır, böylece Yollar özelliği her yolu bir dize olarak döndürür. Nesneler Where-Object
'a ulaşmak üzere işlem hattından gönderilir.
Where-Object
her nesneyi işlemek için $_
değişkenini kullanır ve -like
dizesinin eşleşmelerini bulmak için *Cache*
işlecini kullanır. Yıldız işaretleri (*
) herhangi bir karakter için joker olarak kullanılabilir.
Ö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. komut parantez içine alınır, böylece PathsWithInstances özelliği her yol örneğini dize olarak döndürü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 parantez içine alınır, böylece Yollar özelliği her yolu bir dize olarak döndürür. Yollar $MemCounters
değişkeninde depolanır.
Get-Counter
, değişkenindeki sayaç yollarını belirtmek için $MemCounters
parametresini 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 $Counter
değişkeninde depolanır.
Get-Counter
sayaç değerlerinin bir örneğini alır ve sonuçları $Data
değişkeninde depolar.
$Data
değişkeni, nesnenin özelliklerini almak için CounterSamples özelliğini kullanır. Nesne Format-List
işlem hattına gönderilir.
Özelliği 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 $Counter.CounterSamples
kullanın.
$Counter = Get-Counter -Counter "\Processor(*)\% Processor Time"
$Counter.CounterSamples[0]
Path InstanceName CookedValue
---- ------------ -----------
\\Computer01\processor(0)\% processor time 0 1.33997091699662
Get-Counter
Sayacı parametresini kullanarak \Processor(*)\% Processor Time
sayacını belirtir. Değerler $Counter
değişkeninde 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. sayaç verilerini belirtilen bir değerle karşılaştırmak için CounterSamples özelliği kullanılır.
Her sayaç örneğini görüntülemek için $Counter.CounterSamples
kullanın.
$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ı parametresini kullanarak \Processor(*)\% Processor Time
sayacını belirtir. Değerler $Counter
değişkeninde depolanır.
$Counter.CounterSamples
içinde depolanan nesneler işlem hattına gönderilir.
Where-Object
, her nesne değerini belirtilen 20
değeriyle 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 CookedValue'ye sahip 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şlemler için sayacını belirtmek üzere \Process(*)\% Processor Time
parametresini kullanır. Sonuç $Procs
değişkeninde depolanır.
$Procs
özelliğine sahip değişkeni, PerformanceCounterSample nesnelerini işlem hattından aşağı gönderir.
Sort-Object
, nesneleri Azalan düzende CookedValue göre sıralamak için Özelliği parametresini kullanır.
Format-Table
çıktının sütunlarını seçmek için Özelliği parametresini kullanır.
AutoSize parametresi, kesmeyi en aza indirmek için sütun genişliklerini ayarlar.
Parametreler
-ComputerName
Bir bilgisayar adı veya virgülle ayrılmış bir dizi uzaktaki bilgisayar adını belirtir. NetBIOS adını, IP adresini veya bilgisayarın tam nitelikli 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 çıktı için, yerel bilgisayarı nokta (.
) gösterir.
Get-Counter
PowerShell uzaktan iletişimine dayanmaz. Bilgisayarınız uzak komutları çalıştıracak şekilde yapılandırılmamış olsa bile ComputerName parametresini kullanabilirsiniz.
Tür: | String[] |
Diğer adlar: | Cn |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Continuous
Sürekli belirtildiğinde, Get-Counter
CTRL+Ctuş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.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Get-Counter
için veri hattının aşağısına karşıt yol dizeleri gönderebilirsiniz.
Sayaç yolları aşağıdaki söz dizimini kullanır:
\\ComputerName\CounterSet(Instance)\CounterName
\CounterSet(Instance)\CounterName
Mesela:
\\Server01\Processor(*)\% User Time
\Processor(*)\% User Time
\\ComputerName
, bir performans sayacı yolunda kullanılabilir. Sayaç yolu bilgisayar adını içermiyorsa, Get-Counter
yerel bilgisayarı kullanır.
Örnekteki yıldız işareti (*
), sayacın tüm örneklerini elde etmek için bir joker karakterdir.
Tür: | String[] |
Position: | 0 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | 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, tek tek sayaç yollarını dize olarak biçimlendirilmiş şekilde içerir.
Sayaç yolu dizelerini bir değişkene kaydedebilir veya dizeyi başka bir Get-Counter
komutuna göndermek için işlem hattını kullanabilirsiniz.
Örneğin, 'ye her bir Get-Counter
sayaç yolunu göndermek amacıyla:
Get-Counter -ListSet Processor | Get-Counter
Not
PowerShell 7'de, Get-Counter
sayaç kümesinin Açıklama özelliğini geri alamıyor.
Açıklama$null
olarak ayarlanır.
Tür: | String[] |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | True |
-MaxSamples
Belirtilen her performans sayacından alınacak örnek sayısını belirtir. Sabit bir örnek akışı almak için Sürekli 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 Get-Counter
PowerShell arka plan işi olarak çalıştırın. Daha fazla bilgi için bkz. about_Jobs.
Tür: | Int64 |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | Int32 |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
String[]
Get-Counter
, sayaç yolları ve sayaç kümesi adları için işlem hattı girdisini kabul eder.
Çıkışlar
ListSet parametresiyle, bu cmdlet CounterSet nesneleri döndürür.
Varsayılan olarak ve Sayacı 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 Sürekli 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, Get-Counter
sayaç kümesinin Açıklama özelliğini alamaz.
Açıklama$null
olarak ayarlanır.