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.
Get-Counter
Cmdlet 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 Get-Counter
parameter untuk menentukan satu atau beberapa komputer, mencantumkan kumpulan 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 melihat semua set penghitung, buka PowerShell dengan opsi Jalankan sebagai administrator .
Cmdlet ini diperkenalkan kembali di PowerShell 7.
Catatan
Nama penghitung kinerja dilokalkan. Contoh yang ditampilkan di sini menggunakan nama bahasa Inggris dari objek performa, penghitung, dan instans. Nama akan berbeda pada sistem yang menggunakan bahasa lain. Get-Counter -ListSet
Gunakan perintah untuk melihat nama yang dilokalkan.
Contoh
Contoh 1: Dapatkan daftar set 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 mengatur interval dua detik untuk memeriksa penghitung. MaxSamples menentukan bahwa tiga adalah jumlah maksimum waktu untuk 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 hingga perintah dihentikan dengan CTRL+C.
Contoh 4: Daftar alfabet set penghitung
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 tanda bintang (*
) untuk mendapatkan daftar lengkap set penghitung. Objek CounterSet dikirimkan ke alur. Sort-Object
menggunakan parameter Properti untuk menentukan bahwa objek diurutkan menurut CounterSetName. Objek dikirim ke alur ke Format-Table
. Parameter AutoSize menyesuaikan lebar kolom untuk meminimalkan pemotongan.
Titik (.
) di kolom MachineName mewakili komputer lokal.
Contoh 5: Menjalankan pekerjaan latar belakang untuk mendapatkan data penghitung
Dalam contoh ini, Start-Job
menjalankan Get-Counter
perintah sebagai pekerjaan latar belakang di komputer lokal.
Untuk melihat output penghitung kinerja dari pekerjaan, gunakan Receive-Job
cmdlet .
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 Get-Counter
perintah. Get-Counter
menggunakan parameter Penghitung untuk menentukan jalur penghitung \LogicalDisk(_Total)\% Free Space
. Parameter MaxSamples menentukan untuk mendapatkan 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 alur ke Get-Counter
. Penghitung 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 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. Contohnya:
-ComputerName (Get-Random (Get-Content -Path C:\Servers.txt) -Count 50)
Jalur penghitung menyertakan 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
Get-Random
Cmdlet menggunakan Get-Content
untuk memilih 50 nama komputer acak dari Servers.txt
file. Nama komputer jarak jauh disimpan dalam $Servers
variabel. Jalur \Processor(*)\% Processor Time
penghitung disimpan dalam $Counter
variabel. Get-Counter
menggunakan parameter Penghitung untuk menentukan penghitung dalam $Counter
variabel. Parameter ComputerName menentukan nama komputer dalam $Servers
variabel.
Contoh 8: Gunakan properti Jalur untuk mendapatkan nama jalur yang diformat
Contoh ini menggunakan properti Jalur dari kumpulan penghitung untuk menemukan nama jalur yang diformat untuk penghitung kinerja.
Alur digunakan dengan Where-Object
cmdlet untuk menemukan subset nama jalur. Untuk menemukan set penghitung daftar lengkap jalur penghitung, hapus alur (|
) dan Where-Object
perintah.
$_
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 set penghitung Memori. Perintah diapit dalam tanda kurung sehingga properti Jalur mengembalikan setiap jalur sebagai string. Objek dikirim ke alur ke Where-Object
. Where-Object
menggunakan variabel $_
untuk memproses setiap objek dan menggunakan -like
operator 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 nilai tunggal untuk setiap penghitung dalam set penghitung
Dalam contoh ini, satu nilai dikembalikan untuk setiap penghitung kinerja dalam 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 set penghitung Memori. Perintah diapit dalam tanda kurung sehingga properti Jalur mengembalikan setiap jalur sebagai string. Jalur disimpan dalam $MemCounters
variabel. Get-Counter
menggunakan parameter Penghitung untuk menentukan jalur penghitung dalam $MemCounters
variabel.
Contoh 11: Menampilkan nilai properti objek
Nilai properti dalam objek PerformanceCounterSample mewakili setiap sampel data. Dalam contoh ini kita menggunakan properti objek CounterSamples 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 $Counter
variabel. Get-Counter
mendapatkan satu sampel nilai penghitung dan menyimpan hasil dalam $Data
variabel. Variabel $Data
menggunakan properti CounterSamples untuk mendapatkan properti objek. Objek dikirimkan alur ke Format-List
. Parameter Properti menggunakan kartubebas tanda bintang (*
) untuk memilih semua properti.
Contoh 12: Nilai array penghitung kinerja
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 $Counter
variabel .
$Counter.CounterSamples[0]
menampilkan nilai array untuk nilai penghitung pertama.
Contoh 13: Membandingkan nilai penghitung kinerja
Contoh ini menemukan jumlah waktu prosesor yang digunakan oleh setiap prosesor di komputer lokal. Properti CounterSamples digunakan untuk membandingkan data penghitung dengan nilai tertentu.
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 $Counter
variabel . Objek yang disimpan di $Counter.CounterSamples
dikirim ke alur. Where-Object
menggunakan blok skrip untuk membandingkan setiap nilai objek dengan nilai tertentu dari 20
. $_.CookedValue
adalah variabel untuk objek saat ini dalam alur. Penghitung dengan CookedValue 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 di variabel $Procs
. Variabel $Procs
dengan properti CounterSamples mengirimkan objek PerformanceCounterSample ke bawah alur. Sort-Object
menggunakan parameter Properti untuk mengurutkan objek menurut CookedValue dalam urutan Menurut. Format-Table
menggunakan parameter Properti untuk memilih kolom untuk output. Parameter AutoSize menyesuaikan lebar kolom untuk meminimalkan pemotongan.
Parameter
-ComputerName
Menentukan satu nama komputer atau array nama komputer jarak jauh yang dipisahkan 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 powerShell jarak jauh. Anda dapat menggunakan parameter ComputerName meskipun komputer Anda tidak dikonfigurasi untuk menjalankan perintah jarak jauh.
Type: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Counter
Menentukan jalur ke satu atau beberapa jalur penghitung. Jalur adalah input sebagai array yang dipisahkan koma, variabel, atau nilai dari file teks. Anda dapat mengirim string jalur penghitung ke alur ke Get-Counter
.
Jalur penghitung menggunakan sintaks berikut:
\\ComputerName\CounterSet(Instance)\CounterName
\CounterSet(Instance)\CounterName
Contohnya:
\\Server01\Processor(*)\% User Time
\Processor(*)\% User Time
\\ComputerName
bersifat opsional di jalur penghitung kinerja. Jika jalur penghitung tidak menyertakan nama komputer, Get-Counter
gunakan komputer lokal.
Tanda bintang (*
) dalam instans adalah karakter kartubebas untuk mendapatkan semua instans penghitung.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ListSet
Mencantumkan set penghitung kinerja pada komputer. Gunakan tanda bintang (*
) untuk menentukan semua set penghitung. Masukkan satu nama atau string nama set penghitung yang dipisahkan koma. Anda dapat mengirim nama set penghitung ke alur.
Untuk mendapatkan jalur penghitung berformat set penghitung, gunakan parameter ListSet . Properti Paths and PathsWithInstances dari setiap set penghitung berisi jalur penghitung individual yang diformat sebagai string.
Anda dapat menyimpan string jalur penghitung dalam variabel atau menggunakan alur untuk mengirim string ke perintah lain Get-Counter
.
Misalnya untuk mengirim setiap jalur penghitung Prosesor ke Get-Counter
:
Get-Counter -ListSet Processor | Get-Counter
Catatan
Di PowerShell 7, Get-Counter
tidak dapat mengambil properti Deskripsi dari kumpulan penghitung. Deskripsi diatur ke $null
.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | Int64 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SampleInterval
Menentukan jumlah detik antara sampel untuk setiap penghitung kinerja yang ditentukan. Jika parameter SampleInterval tidak ditentukan, Get-Counter
gunakan interval satu detik.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
String[]
Get-Counter
menerima input alur 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 penghitung yang berbeda, masukkan perintah terpisah Get-Counter
.
Di PowerShell 7, saat menggunakan parameter ListSet , Get-Counter
tidak dapat mengambil properti Deskripsi dari kumpulan penghitung. Deskripsi diatur ke $null
.