Ottiene dati del contatore delle prestazioni da computer locali e remoti.
Sintassi
Get-Counter [-Counter] <string[]> [-ComputerName <string[]>] [-Continuous] [-MaxSamples <Int64>] [-SampleInterval <int>] [<CommonParameters>] Get-Counter -ListSet <string[]> [-ComputerName <string[]>] [<CommonParameters>]
Descrizione
Il cmdlet Get-Counter ottiene in diretta i dati del contatore delle prestazioni in tempo reale direttamente dalla strumentazione del monitoraggio delle prestazioni in Windows. È possibile utilizzarlo per ottenere dati relativi alle prestazioni dai computer locali o remoti nell'intervallo dell'esempio specificato.
Senza parametri, un comando "Get-Counter" ottiene dati per un set di contatori del sistema.
È possibile utilizzare i parametri di Get-Counter per specificare uno o più computer, elencare i set di contatori delle prestazioni e i contatori in essi contenuti e impostare l'intervallo e le dimensioni dell'esempio.
Parametri
-ComputerName <string[]>
Ottiene dati computer specificati. Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o i nomi di dominio completi dei computer. Il valore predefinito è il computer locale.
Nota: Get-Counter non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-Counter anche se il computer non è configurato per la comunicazione remota in Windows PowerShell.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Continuous
Ottiene continuamente esempi finché non si preme CTRL+C. Per impostazione predefinita, Get-Counter ottiene un solo esempio di contatore. È possibile utilizzare il parametro SampleInterval per impostare l'intervallo per il campionamento continuo.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Counter <string[]>
Ottiene dati dai contatori di prestazioni specificati. Immettere uno o più percorsi di contatori. I caratteri jolly sono consentiti solo nel valore Instance. È inoltre possibile reindirizzare stringhe di percorsi di contatori a Get-Counter.
Il percorso di ciascun contatore dispone del formato seguente:
"[\\<ComputerName>]\<CounterSet>(<Instance>)\<CounterName>"
Ad esempio:
"\\Server01\Processor(2)\% User Time".
L'elemento <ComputerName> è facoltativo. Se lo si omette, Get-Counter utilizza il valore del parametro ComputerName.
Nota: per ottenere percorsi di contatori formattati correttamente, utilizzare il parametro ListSet per ottenere un set di contatori delle prestazioni. Le proprietà Paths e PathsWithInstances di ciascun set di contatori di prestazioni contengono i singoli percorsi dei contatori formattati come stringa. È possibile salvare le stringhe dei percorsi dei contatori in una variabile, oppure reindirizzare la stringa direttamente a un altro comando Get-Counter. Per una dimostrazione, vedere gli esempi.
Obbligatorio? |
true |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
true |
-ListSet <string[]>
Ottiene i set di contatori delle prestazioni specificati nei computer. Immettere i nomi dei set di contatori. È consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare nomi di set di contatori a Get-Counter.
Obbligatorio? |
true |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue, ByPropertyName) |
Accettare caratteri jolly? |
true |
-MaxSamples <Int64>
Specifica il numero di esempi da ottenere da ciascun contatore. Il valore predefinito è 1 esempio. Per ottenere continuamente esempi (dimensione massima di esempio non impostata), utilizzare il parametro Continuous.
Per raccogliere un set di dati di grandi dimensioni, eseguire un comando Get-Counter come processo in background di Windows PowerShell. Per ulteriori informazioni, vedere about_Jobs e Start-Job.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-SampleInterval <int>
Specifica il tempo in secondi tra gli esempi. Il valore minimo e il valore predefinito sono 1 secondo.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
1 |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.String[] È possibile reindirizzare nomi di set di contatori (ListSet) e percorsi di contatori a Get-Counter. |
Output |
Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample Il parametro ListSet ottiene oggetti Microsoft.PowerShell.Commands.GetCounter.CounterSet. Il parametro Counter ottiene oggetti Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet. Ogni valore di contatore è un oggetto Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample. |
Note
I contatori delle prestazioni sono spesso protetti da elenchi di controllo di accesso (ACL). Per ottenere tutti i contatori delle prestazioni disponibili, aprire Windows PowerShell con l'opzione "Esegui come amministratore".
Per impostazione predefinita, Get-Counter ottiene un esempio durante un intervallo di esempio di un secondo. Per modificare questo comportamento, utilizzare i parametri MaxSamples e Continuous.
I valori MaxSamples e SampleInterval impostati si applicano a tutti i contatori in tutti i computer nel comando. Per impostare valori diversi per contatori diversi, immettere comandi Get-Counter separati per ciascun contatore.
Esempio 1
C:\PS># Get-Counter Descrizione ----------- Questo comando ottiene tutti i set di contatori nel computer locale. C:\PS> get-counter -ListSet * Poiché molti set di contatori sono protetti da elenchi di controllo di accesso (ACL), per visualizzare tutti i set di contatori, aprire Windows PowerShell con l'opzione "Esegui come amministratore" prima di utilizzare il comando Get-Counter.
Esempio 2
C:\PS># Get-Counter Descrizione ----------- Questo comando ottiene i valori combinati "% Processor Time" correnti per tutti i processori nel computer locale. Raccoglie dati ogni due secondi finché non dispone di tre valori. C:\PS> get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3
Esempio 3
C:\PS># Get-Counter Descrizione ----------- Questo comando ottiene un elenco ordinato alfabeticamente dei nomi di tutti i set di contatori nel computer locale. C:\PS> get-counter -listset * | sort-object countersetname | format-table countersetname
Esempio 4
C:\PS># Get-Counter Descrizione ----------- Questi comandi utilizzano la proprietà Path di un set di contatori per trovare i nomi dei percorsi correttamente formattati per i contatori delle prestazioni. È possibile utilizzare un comando come questo per ottenere i nomi corretti dei percorsi dei contatori. Il primo comando ottiene i nomi dei percorsi dei contatori delle prestazioni nel contatore Memory impostato nel computer locale. C:\PS> (get-counter -listset memory).paths \Memory\Page Faults/sec \Memory\Available Bytes \Memory\Committed Bytes \Memory\Commit Limit \Memory\Write Copies/sec \Memory\Transition Faults/sec \Memory\Cache Faults/sec \Memory\Demand Zero Faults/sec \Memory\Pages/sec \Memory\Pages Input/sec ... Il secondo comando ottiene i nomi dei percorsi che includono "cache". C:\PS> (get-counter -listset memory).paths | where {$_ -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
Esempio 5
C:\PS># Get-Counter Descrizione ----------- Questi comandi ottengono i dati del contatore Disk Reads/sec dai computer Server01 e Server02. Il primo comando salva un percorso del contatore Disk Reads/sec nella variabile $diskreads. C:\PS> $diskreads = "\LogicalDisk(C:)\Disk Reads/sec" Il secondo comando utilizza un operatore pipeline (|) per inviare il percorso del contatore nella variabile $diskreads al cmdlet Get-Counter. Il comando utilizza il parametro MaxSample per limitare l'output a 10 esempi. C:\PS> $diskreads | get-counter -computer Server01, Server02 -maxsamples 10
Esempio 6
C:\PS># Get-Counter Descrizione ----------- Questo comando ottiene i nomi dei percorsi formattati correttamente per i contatori delle prestazioni PhysicalDisk, inclusi i nomi delle istanze. C:\PS> (get-counter -list physicaldisk).pathswithinstances
Esempio 7
C:\PS># Get-Counter Descrizione ----------- Questi comandi ottengono il valore del contatore delle prestazioni "% DPC Time" in 50 computer selezionati casualmente nell'organizzazione. Il primo comando utilizza il cmdlet Get-Content per ottenere l'elenco dei server dell'organizzazione dal file Servers.txt. Utilizza il cmdlet Get-Random per selezionare in modo casuale 50 nomi di server dal contenuto del file Servers.txt. I risultati vengono salvati nella variabile $servers. C:\PS> $servers = get-random (get-content servers.txt) -count 50 Il secondo comando salva il percorso del contatore nel cmdlet "% DPC Time" nella variabile $Counter. Il percorso del contatore include un carattere jolly nel nome dell'istanza per ottenere i dati in tutti i processori in ciascun computer. C:\PS> $counter = "\Processor(*)\% DPC Time" Il terzo comando utilizza il cmdlet Get-Counter per ottenere i valori del contatore. Utilizza il parametro Counter per specificare i contatori e il parametro ComputerName per specificare i computer salvati nella variabile $servers. C:\PS> get-counter -Counter $counter -computername $servers
Esempio 8
C:\PS># Get-Counter Descrizione ----------- Questi comandi ottengono un singolo valore per tutti i contatori delle prestazioni nel contatore della memoria impostato nel computer locale. Il primo comando ottiene i percorsi dei contatori e li salva nella variabile $memCounters. C:\PS> $memCounters = (get-counter -list memory).paths Il secondo comando utilizza il cmdlet Get-Counter per ottenere i dati dei contatori per ciascun contatore. Utilizza il parametro Counter per specificare i contatori in $memCounters. C:\PS> get-counter -counter $memCounters
Esempio 9
C:\PS># Get-Counter Descrizione ----------- In questo esempio vengono illustrati i valori delle proprietà nell'oggetto PerformanceCounterSample che rappresenta ciascun esempio di dati. Il primo comando salva un percorso del contatore nella variabile $counter. C:\PS> $counter = "\\SERVER01\Process(Idle)\% Processor Time" Il secondo comando utilizza il cmdlet Get-Counter per ottenere un esempio dei valori dei contatori. I risultati vengono salvati nella variabile $data. C:\PS> $data = get-counter $counter Il terzo comando utilizza il cmdlet Format-List per visualizzare tutte le proprietà della proprietà CounterSamples dell'oggetto set di esempi come elenco. C:\PS> $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 : 7/15/2008 6:39:12 PM Timestamp100NSec : 128606207528320000 Status : 0 DefaultScale : 0 TimeBase : 10000000 È possibile utilizzare le proprietà dell'oggetto CounterSamples per esaminare, selezionare, ordinare e raggruppare i dati.
Esempio 10
C:\PS># Get-Counter Descrizione ----------- Il comando esegue un comando Get-Counter come processo in background. Per ulteriori informazioni, vedere Start-Job. C:\PS> $counters = "\LogicalDisk(_Total)\% Free Space" C:\PS> start-job -scriptblock {get-counter -counter $counters -maxsamples 1000)
Esempio 11
C:\PS># Get-Counter Descrizione ----------- Questo comando utilizza i cmdlet Get-Counter e Get-Random per trovare la percentuale di spazio libero su disco nei 50 computer selezionati casualmente dal file Servers.txt. C:\PS> get-counter -computername (get-random servers.txt -count 50) -counter "\LogicalDisk(*)\% Free Space"
Esempio 12
C:\PS># Get-Counter Descrizione ----------- In questo esempio viene illustrato come associare dati del contatore al computer in cui hanno avuto origine e come modificare i dati. Il primo comando utilizza il cmdlet Get-Counter per ottenere il valore del contatore "LogicalDisk \% Free Space" da due computer remoti, S1 e S2. Il risultato viene salvato nella variabile $a. $a = get-counter "\LogicalDisk(_Total)\% Free Space" -comp s1, s2 Nel secondo comando vengono visualizzati i risultati nella variabile $a. Tutti i dati vengono archiviati nell'oggetto, ma non è facile visualizzarli in questo formato. C:\PS> $a Counter Paths: \\s1\\logicaldisk(c:)\% free space, \\s1\\logicaldisk(d:)\% free space, \\s1\\logicaldisk(_total)\% free space, \\s2\\logicaldisk(c:)\% free space, \\s2\\logicaldisk(_total)\% free space Timestamp : 7/15/2008 5:09:08 PM Cooked Values : "0.327058823529412", "17.8952248493278", "12.9994033060778", "75.0754805595626", "75.0754805595626" Il terzo comando visualizza in una tabella il valore della proprietà CounterSamples dell'oggetto PerformanceCounterSampleSet restituito da Get-Counter. (Per visualizzare tutte le proprietà e i metodi dell'oggetto, reindirizzarlo al cmdlet Get-Member). C:\PS> $a.countersamples | format-table -auto Path InstanceName CookedValue ---- ------------ ----------- \\s1\\logicaldisk(c:)\% free space c: 0.327058823529412 \\s1\\logicaldisk(d:)\% free space d: 17.8952248493278 \\s1\\logicaldisk(_total)\% free space _total 12.9994033060778 \\s2\\logicaldisk(c:)\% free space c: 75.0754805595626 \\s2\\logicaldisk(_total)\% free space _total 75.0754805595626 La proprietà CounterSamples contiene un oggetto PerformanceCounterSample con i relativi metodi e proprietà. Il quarto comando utilizza la notazione di matrice per ottenere il primo esempio di contatore e un operatore pipeline per inviare l'oggetto esempio di contatore al cmdlet Format-List che visualizza tutte le proprietà e i metodi in un elenco. In questa visualizzazione viene mostrata la ricchezza di dati in ciascun oggetto esempio di contatore. Il quarto comando illustra come selezionare dati dagli esempi di contatore. Utilizza il cmdlet Where-Object per ottenere solo gli esempi di contatore con il valore di CookedValue minore di 15. C:\PS> $a.countersamples | where {$_.cookedvalue -lt 15} Path InstanceName CookedValue ---- ------------ ----------- \\s1\\logicaldisk(c:)\% free space c: 0.327058823529412 \\s1\\logicaldisk(_total)\% free space _total 12.9994033060778
Esempio 13
C:\PS># Get-Counter Descrizione ----------- In questo esempio viene illustrato come ordinare i dati del contatore delle prestazioni recuperati. Nell'esempio vengono trovati i processi nel computer che utilizzano la maggior parte del tempo del processore durante il campionamento. Il primo comando ottiene il contatore "Process\% Processor Time" per tutti i processi nel computer. I risultati vengono salvati nella variabile $p. C:\PS> $p = get-counter '\Process(*)\% Processor Time' Il secondo comando ottiene la proprietà CounterSamples dell'oggetto esempio impostato in $p e ordina gli esempi in ordine decrescente in base al valore cooked dell'esempio. Il comando utilizza il cmdlet Format-Table e il parametro AutoFormat per sistemare le colonne nella tabella. C:\PS> $p.CounterSamples | sort-object -property CookedValue -Descending | format-table -auto Path InstanceName CookedValue ---- ------------ ----------- \\server01\process(_total)\% processor time _total 200.00641042078 \\server01\process(idle)\% processor time idle 200.00641042078 \\server01\process(explorer#1)\% processor time explorer 0 \\server01\process(dwm#1)\% processor time dwm 0 \\server01\process(taskeng#1)\% processor time taskeng 0 \\server01\process(taskhost#1)\% processor time taskhost 0 \\server01\process(winlogon)\% processor time winlogon 0 \\server01\process(csrss)\% processor time csrss 0
Esempio 14
C:\PS># Get-Counter Descrizione ----------- Questi comandi trovano i processi nel computer con i working set di dimensioni maggiori. Elencano i processi in ordine decrescente in base alla dimensione del relativo working set. Il primo comando ottiene un esempio del contatore "Process\Working Set - Private" per ciascun processo. Il comando salva i dati del contatore nella variabile $ws. C:\PS> $ws = get-counter "\Process(*)\Working Set - Private" Il secondo comando utilizza un operatore pipeline (|) per inviare i dati nella proprietà CounterSamples della variabile $ws al cmdlet Sort-Object in cui i dati del processo vengono ordinati in ordine decrescente in base al valore della proprietà CookedValue. Un'altra pipeline invia i dati ordinati al cmdlet Format-Table in cui i dati vengono formattati come tabella con le colonne InstanceName e CookedValue. C:\PS> $ws.countersamples | sort-object -property cookedvalue -descending | format-table -property InstanceName, CookedValue -auto InstanceName CookedValue ------------ ----------- _total 162983936 svchost 40370176 powershell 15110144 explorer 14135296 svchost 10928128 svchost 9027584 ...
Esempio 15
C:\PS># Get-Counter Descrizione ----------- Questo comando ottiene una serie di esempi del contatore Processor\%Processor Time all'intervallo di un secondo predefinito. Per interrompere il comando, premere CTRL+C. C:\PS> get-counter -counter "\processor(_total)\% processor time" -continuous
Vedere anche