Get-Counter
Mendapatkan data penghitung kinerja dari komputer lokal dan jarak jauh.
Sintaks
Get-Counter
[[-Counter] <String[]>]
[-SampleInterval <Int32>]
[-MaxSamples <Int64>]
[-Continuous]
[-ComputerName <String[]>]
[<CommonParameters>]
Get-Counter
[-ListSet] <String[]>
[-ComputerName <String[]>]
[<CommonParameters>]
Deskripsi
Cmdlet ini hanya tersedia di platform Windows.
cmdlet Get-Counter
mendapatkan data penghitung kinerja langsung dari instrumentasi pemantauan performa dalam keluarga sistem operasi Windows.
Get-Counter
mendapatkan data performa dari komputer lokal atau komputer jarak jauh.
Anda dapat menggunakan parameter Get-Counter
untuk menentukan satu atau beberapa komputer, mencantumkan set penghitung kinerja dan instans yang dikandungnya, mengatur interval sampel, dan menentukan jumlah maksimum sampel. Tanpa parameter, Get-Counter
mendapatkan data penghitung kinerja untuk sekumpulan penghitung sistem.
Banyak set penghitung dilindungi oleh daftar kontrol akses (ACL). Untuk menampilkan semua set penghitung, buka PowerShell dengan opsi Jalankan sebagai administrator.
Cmdlet ini diperkenalkan kembali di PowerShell 7.
Nota
Nama penghitung kinerja dilokalkan. Contoh yang diperlihatkan di sini menggunakan nama-nama dalam bahasa Inggris untuk objek kinerja, penghitung, dan instans. Nama akan berbeda pada sistem yang menggunakan bahasa lain. Gunakan perintah Get-Counter -ListSet
untuk melihat nama yang dilokalkan.
Contoh
Contoh 1: Dapatkan daftar kumpulan penghitung
Contoh ini mendapatkan daftar set penghitung komputer lokal.
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
menggunakan parameter ListSet dengan tanda bintang (*
) untuk mendapatkan daftar set penghitung.
Titik (.
) di kolom MachineName mewakili komputer lokal.
Contoh 2: Tentukan SampleInterval dan MaxSamples
Contoh ini mendapatkan data penghitung untuk semua prosesor di komputer lokal. Data dikumpulkan pada interval dua detik hingga ada tiga sampel.
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
menggunakan parameter Penghitung untuk menentukan jalur penghitung \Processor(_Total)\% Processor Time
. Parameter SampleInterval menetapkan interval dua detik untuk memeriksa penghitung.
MaxSamples menentukan bahwa tiga adalah jumlah maksimum berapa kali memeriksa penghitung.
Contoh 3: Mendapatkan sampel berkelanjutan dari penghitung
Contoh ini mendapatkan sampel berkelanjutan untuk penghitung setiap detik. Untuk menghentikan perintah, tekan CTRL+C. Untuk menentukan interval yang lebih panjang antara sampel, gunakan parameter 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-Counter
menggunakan parameter Penghitung untuk menentukan penghitung \Processor\% Processor Time
.
Parameter Berkelanjutan menentukan untuk mendapatkan sampel setiap detik sampai perintah dihentikan dengan CTRL+C.
Contoh 4: Daftar himpunan penghitung secara alfabetis
Contoh ini menggunakan alur untuk mendapatkan kumpulan daftar penghitung lalu mengurutkan daftar dalam urutan alfabet.
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
menggunakan parameter ListSet dengan asterisk (*
) untuk mendapatkan daftar set penghitung yang lengkap. Objek CounterSet dikirimkan ke dalam jalur proses.
Sort-Object
menggunakan parameter Properti untuk menentukan bahwa objek diurutkan menurut CounterSetName. Objek dikirimkan melalui saluran ke Format-Table
. Parameter AutoSize menyesuaikan lebar kolom untuk meminimalkan pemotongan.
Titik (.
) di kolom MachineName mewakili komputer lokal.
Contoh 5: Menjalankan tugas latar belakang untuk mendapatkan data penghitung
Dalam contoh ini, Start-Job
menjalankan perintah Get-Counter
sebagai pekerjaan latar belakang di komputer lokal.
Untuk melihat output penghitung kinerja dari pekerjaan, gunakan cmdlet 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
menggunakan parameter ScriptBlock untuk menjalankan perintah Get-Counter
.
Get-Counter
menggunakan parameter Penghitung untuk menentukan jalur penghitung \LogicalDisk(_Total)\% Free Space
. Parameter MaxSamples menentukan pengambilan 1000 sampel penghitung.
Contoh 6: Mendapatkan data penghitung dari beberapa komputer
Contoh ini menggunakan variabel untuk mendapatkan data penghitung kinerja dari dua komputer.
$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
Variabel $DiskReads
menyimpan jalur penghitung \LogicalDisk(C:)\Disk Reads/sec
. Variabel $DiskReads
dikirim ke bawah alur ke Get-Counter
.
Counter adalah parameter posisi pertama dan menerima jalur yang disimpan di $DiskReads
.
ComputerName menentukan dua komputer dan MaxSamples menentukan untuk mendapatkan 10 sampel dari setiap komputer.
Contoh 7: Mendapatkan nilai instans penghitung dari beberapa komputer yang dipilih secara acak
Contoh ini mendapatkan nilai penghitung kinerja pada 50 komputer jarak jauh acak di perusahaan. Parameter ComputerName menggunakan nama komputer acak yang disimpan dalam variabel. Untuk memperbarui nama komputer dalam variabel, buat ulang variabel.
Alternatif untuk nama server dalam parameter ComputerName adalah menggunakan file teks. Misalnya:
-ComputerName (Get-Random (Get-Content -Path C:\Servers.txt) -Count 50)
Jalur penghitung mencakup tanda bintang (*
) dalam nama instans untuk mendapatkan data untuk setiap prosesor komputer jarak jauh.
$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
Cmdlet Get-Random
menggunakan Get-Content
untuk memilih 50 nama komputer acak dari file Servers.txt
. Nama komputer jarak jauh disimpan dalam variabel $Servers
. Jalur penghitung \Processor(*)\% Processor Time
disimpan dalam variabel $Counter
.
Get-Counter
menggunakan parameter Penghitung untuk menentukan penghitung dalam variabel $Counter
. Parameter ComputerName menentukan nama komputer dalam variabel $Servers
.
Contoh 8: Gunakan properti Jalur untuk mendapatkan nama jalur yang diformat
Contoh ini menggunakan properti Jalur dari set penghitung untuk mencari nama jalur yang telah diformat untuk penghitung kinerja.
Alur digunakan dengan cmdlet Where-Object
untuk menemukan subset nama jalur. Untuk menemukan set penghitung daftar lengkap jalur penghitung, hapus alur (|
) dan perintah Where-Object
.
$_
adalah variabel otomatis untuk objek saat ini dalam alur.
Untuk informasi selengkapnya, lihat 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
menggunakan parameter ListSet untuk menentukan penghitung Memori. Perintah diapit dalam tanda kurung sehingga properti Jalur mengembalikan setiap jalur sebagai string. Objek dikirimkan melalui saluran ke Where-Object
.
Where-Object
menggunakan variabel $_
untuk memproses setiap objek dan menggunakan operator -like
untuk menemukan kecocokan untuk string *Cache*
. Tanda bintang (*
) adalah kartubebas untuk karakter apa pun.
Contoh 9: Gunakan properti PathsWithInstances untuk mendapatkan nama jalur yang diformat
Contoh ini mendapatkan nama jalur berformat yang menyertakan instans untuk penghitung kinerja PhysicalDisk.
(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
menggunakan parameter ListSet untuk menentukan kumpulan penghitung PhysicalDisk. Perintah diapit dalam tanda kurung sehingga properti PathsWithInstances mengembalikan setiap instans jalur sebagai string.
Contoh 10: Dapatkan satu nilai untuk setiap penghitung dalam kelompok penghitung
Dalam contoh ini, satu nilai dikembalikan untuk setiap penghitung kinerja di set penghitung Memori komputer lokal.
$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
menggunakan parameter ListSet untuk menentukan penghitung Memori. Perintah diapit dalam tanda kurung sehingga properti Jalur mengembalikan setiap jalur sebagai string. Jalur disimpan dalam variabel $MemCounters
.
Get-Counter
menggunakan parameter Penghitung untuk menentukan jalur penghitung dalam variabel $MemCounters
.
Contoh 11: Menampilkan nilai properti objek
Nilai properti dalam objek PerformanceCounterSample mewakili setiap sampel data. Dalam contoh ini kita menggunakan properti CounterSamples objek untuk memeriksa, memilih, mengurutkan, dan mengelompokkan data.
$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
Jalur penghitung disimpan dalam variabel $Counter
.
Get-Counter
mendapatkan satu sampel nilai penghitung dan menyimpan hasilnya dalam variabel $Data
. Variabel $Data
menggunakan properti CounterSamples untuk mendapatkan properti objek. Objek dikirim melalui alur ke Format-List
. Parameter Properti menggunakan karakter pengganti tanda bintang (*
) untuk memilih semua properti.
Contoh 12: Nilai array penghitung performa
Dalam contoh ini, variabel menyimpan setiap penghitung kinerja. Properti CounterSamples adalah array yang dapat menampilkan nilai penghitung tertentu.
Untuk menampilkan setiap sampel penghitung, gunakan $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
menggunakan parameter Penghitung untuk menentukan penghitung \Processor(*)\% Processor Time
. Nilai disimpan dalam variabel $Counter
.
$Counter.CounterSamples[0]
menampilkan nilai array untuk nilai penghitung pertama.
Contoh 13: Bandingkan nilai metrik kinerja
Contoh ini menemukan jumlah waktu prosesor yang digunakan oleh setiap prosesor di komputer lokal. Properti CounterSamples digunakan untuk membandingkan data penghitung terhadap nilai yang ditentukan.
Untuk menampilkan setiap sampel penghitung, gunakan $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
menggunakan parameter Penghitung untuk menentukan penghitung \Processor(*)\% Processor Time
. Nilai disimpan dalam variabel $Counter
. Objek yang disimpan di $Counter.CounterSamples
disalurkan ke dalam jalur pemrosesan.
Where-Object
menggunakan blok skrip untuk membandingkan setiap nilai objek dengan nilai 20
tertentu.
$_.CookedValue
adalah variabel untuk objek saat ini dalam pipeline. Penghitung dengan nilai dimasak yang kurang dari 20 ditampilkan.
Contoh 14: Mengurutkan data penghitung kinerja
Contoh ini menunjukkan cara mengurutkan data penghitung kinerja. Contoh menemukan proses di komputer yang menggunakan waktu prosesor terbanyak selama sampel.
$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
menggunakan parameter Penghitung untuk menentukan penghitung \Process(*)\% Processor Time
untuk semua proses di komputer lokal. Hasilnya disimpan dalam variabel $Procs
. Variabel $Procs
dengan properti CounterSamples mengirimkan objek PerformanceCounterSample ke dalam pipeline.
Sort-Object
menggunakan parameter Properti untuk mengurutkan objek menurut CookedValue dalam urutan turun.
Format-Table
menggunakan parameter Properti untuk memilih kolom untuk output. Parameter AutoSize menyesuaikan lebar kolom untuk meminimalkan pemotongan.
Parameter
-ComputerName
Mengacu pada satu nama komputer atau array nama komputer jarak jauh yang dipisahkan dengan koma. Gunakan nama NetBIOS, alamat IP, atau nama domain komputer yang sepenuhnya memenuhi syarat.
Untuk mendapatkan data penghitung kinerja dari komputer lokal, kecualikan parameter ComputerName.
Untuk output seperti ListSet yang berisi kolom MachineName, titik (.
) menunjukkan komputer lokal.
Get-Counter
tidak mengandalkan pengereman PowerShell jarak jauh. Anda dapat menggunakan parameter ComputerName meskipun komputer Anda tidak dikonfigurasi untuk menjalankan perintah jarak jauh.
Jenis: | String[] |
Alias: | Cn |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Continuous
Saat Berkelanjutan ditentukan, Get-Counter
mendapatkan sampel hingga Anda menekan CTRL+C. Sampel diperoleh setiap detik untuk setiap penghitung kinerja yang ditentukan. Gunakan parameter SampleInterval untuk meningkatkan interval antara sampel berkelanjutan.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Counter
Menentukan jalur ke satu atau lebih jalur penghitung. Jalur dapat berupa array dengan elemen yang dipisahkan oleh koma, variabel, atau nilai dari file teks. Anda dapat mengirim string jalur penghitung ke alur Get-Counter
.
Jalur penghitung menggunakan sintaks berikut:
\\ComputerName\CounterSet(Instance)\CounterName
\CounterSet(Instance)\CounterName
Misalnya:
\\Server01\Processor(*)\% User Time
\Processor(*)\% User Time
\\ComputerName
bersifat opsional dalam jalur penghitung kinerja. Jika jalur penghitung tidak menyertakan nama komputer, Get-Counter
menggunakan komputer lokal.
Tanda bintang (*
) dalam instans adalah karakter wildcard untuk mendapatkan semua instans dari penghitung.
Jenis: | String[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | True |
-ListSet
Mencantumkan set penghitung kinerja pada komputer. Gunakan tanda bintang (*
) untuk menentukan semua kumpulan penghitung. Masukkan satu nama atau string nama kumpulan penghitung yang dipisahkan koma. Anda dapat mengirim nama set penghitung ke pipeline.
Untuk mendapatkan jalur berformat penghitung set, gunakan parameter ListSet. Jalur dan Jalur DenganInstansi dari properti setiap set penghitung berisi jalur penghitung individu yang diformat sebagai string.
Anda dapat menyimpan string jalur penghitung dalam variabel atau menggunakan alur untuk mengirim string ke perintah Get-Counter
lain.
Misalnya untuk mengirim setiap jalur penghitung Prosesor ke Get-Counter
:
Get-Counter -ListSet Processor | Get-Counter
Nota
Di PowerShell 7, Get-Counter
tidak dapat mengambil properti Deskripsi dari kumpulan penghitung.
Deskripsi diatur ke $null
.
Jenis: | String[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | True |
-MaxSamples
Menentukan jumlah sampel yang akan didapatkan dari setiap penghitung kinerja yang ditentukan. Untuk mendapatkan aliran sampel yang konstan, gunakan parameter Berkelanjutan.
Jika parameter MaxSamples tidak ditentukan, Get-Counter
hanya mendapatkan satu sampel untuk setiap penghitung yang ditentukan.
Untuk mengumpulkan himpunan data besar, jalankan Get-Counter
sebagai pekerjaan latar belakang PowerShell. Untuk informasi selengkapnya, lihat about_Jobs.
Jenis: | Int64 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SampleInterval
Menentukan jumlah detik di antara setiap sampel untuk setiap penghitung kinerja yang ditentukan. Jika parameter SampleInterval tidak ditentukan, Get-Counter
menggunakan interval satu detik.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
String[]
Get-Counter
menerima input pipeline untuk jalur penghitung dan nama set penghitung.
Output
Dengan parameter ListSet, cmdlet ini mengembalikan objek CounterSet.
Secara default dan dengan parameter Penghitung, cmdlet ini mengembalikan objek PerformanceCounterSampleSet.
Catatan
Jika tidak ada parameter yang ditentukan, Get-Counter
mendapatkan satu sampel untuk setiap penghitung kinerja yang ditentukan. Gunakan parameter MaxSamples dan Continuous untuk mendapatkan lebih banyak sampel.
Get-Counter
menggunakan interval satu detik antar sampel. Gunakan parameter SampleInterval untuk meningkatkan interval.
Nilai MaxSamples dan SampleInterval berlaku untuk semua penghitung pada setiap komputer dalam perintah. Untuk mengatur nilai yang berbeda untuk masing-masing penghitung, masukkan perintah Get-Counter
secara terpisah.
Di PowerShell 7, saat menggunakan parameter ListSet, Get-Counter
tidak dapat mengambil kembali properti Description dari kumpulan penghitung.
Deskripsi diatur ke $null
.