Obtient des données de compteur de performance à partir des ordinateurs locaux et distants.

Sintaxis

Get-Counter [-Counter] <string[]> [-ComputerName <string[]>] [-Continuous] [-MaxSamples <Int64>] [-SampleInterval <int>] [<CommonParameters>]

Get-Counter -ListSet <string[]> [-ComputerName <string[]>] [<CommonParameters>]

Descripción

L'applet de commande Get-Counter obtient des données de compteur de performance en temps réel directement à partir de l'instrumentation d'analyse des performances dans Windows. Vous pouvez l'utiliser pour obtenir des données de performances à partir des ordinateurs locaux ou distants selon l'intervalle d'échantillonnage que vous spécifiez.

Sans paramètre, une commande « Get-Counter » obtient les données de compteur pour un ensemble de compteurs système.

Vous pouvez utiliser les paramètres de Get-Counter pour spécifier un ou plusieurs ordinateurs, pour répertorier les ensembles de compteurs de performance et les compteurs qu'ils contiennent, mais aussi pour définir la taille d'échantillon et l'intervalle d'échantillonnage.

Parámetros

-ComputerName <string[]>

Obtient des données à partir des ordinateurs spécifiés. Tapez le nom NetBIOS, une adresse IP ou le nom de domaine complet des ordinateurs. La valeur par défaut est l'ordinateur local.

Remarque : Get-Counter ne repose pas sur la communication à distance Windows PowerShell. Vous pouvez utiliser le paramètre ComputerName de Get-Counter même si votre ordinateur n'est pas configuré pour la communication à distance dans Windows PowerShell.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Continuous

Obtient des échantillons en continu jusqu'à ce que vous appuyiez sur CTRL+C. Par défaut, Get-Counter obtient un seul échantillon de compteur. Vous pouvez utiliser le paramètre SampleInterval pour définir l'intervalle pour l'échantillonnage continu.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Counter <string[]>

Obtient des données à partir des compteurs de performance spécifiés. Entrez un ou plusieurs chemins d'accès de compteurs. Les caractères génériques sont autorisés uniquement dans la valeur Instance. Vous pouvez également diriger des chaînes de chemin d'accès de compteur vers Get-Counter.

Chaque chemin d'accès de compteur a la forme suivante :

"[\\<NomOrdinateur>]\<EnsembleCompteurs>(<Instance>)\<NomCompteur>"

Par exemple :

"\\Server01\Processor(2)\% User Time".

L'élément <NomOrdinateur> est facultatif. Si vous ne l'indiquez pas, Get-Counter utilise la valeur du paramètre ComputerName.

Remarque : pour obtenir des chemins d'accès de compteurs au format correct, utilisez le paramètre ListSet pour obtenir un ensemble de compteurs de performance. Les propriétés Paths et PathsWithInstances de chaque ensemble de compteurs de performance contiennent les chemins d'accès de compteurs individuels exprimés sous la forme d'une chaîne. Vous pouvez enregistrer les chaînes des chemins d'accès des compteurs dans une variable ou diriger directement la chaîne vers une autre commande Get-Counter. Pour bénéficier d'une démonstration, reportez-vous aux exemples.

¿Requerido?

true

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

true (ByValue)

¿Aceptar caracteres comodín?

true

-ListSet <string[]>

Obtient les ensembles de compteurs de performance spécifiés sur les ordinateurs. Entrez les noms des ensembles de compteurs. Les caractères génériques sont autorisés. Vous pouvez également diriger les noms d'ensembles de compteurs vers Get-Counter.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByValue, ByPropertyName)

¿Aceptar caracteres comodín?

true

-MaxSamples <Int64>

Spécifie le nombre d'échantillons à obtenir de chaque compteur. La valeur par défaut est de 1 échantillon. Pour obtenir des échantillons en continu (aucune taille d'échantillon maximale), utilisez le paramètre Continuous.

Pour collecter un jeu de données très volumineux, envisagez d'exécuter une commande Get-Counter en tant que tâche en arrière-plan Windows PowerShell. Pour plus d'informations, consultez about_Jobs et Start-Job.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-SampleInterval <int>

Spécifie le temps en secondes entre deux échantillons. La valeur minimale et la valeur par défaut sont de 1 seconde.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

1

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.String[]

Vous pouvez diriger les chemins d'accès de compteurs et les noms d'ensembles de compteurs (ListSet) vers Get-Counter.

Salidas

Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample

Le paramètre ListSet obtient des objets Microsoft.PowerShell.Commands.GetCounter.CounterSet. Le paramètre Counter obtient des objets Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet. Chaque valeur de compteur est un objet Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample.

Notas

Les compteurs de performance sont souvent protégés par des listes de contrôle d'accès (ACL). Pour obtenir tous les compteurs de performance disponibles, ouvrez Windows PowerShell avec l'option « Exécuter en tant qu'administrateur ».

Par défaut, Get-Counter obtient un échantillon dans un intervalle d'échantillonnage d'une seconde. Pour modifier ce comportement, utilisez les paramètres MaxSamples et Continuous.

Les valeurs MaxSamples et SampleInterval que vous définissez s'appliquent à tous les compteurs de tous les ordinateurs de la commande. Pour définir des valeurs différentes pour certains compteurs, entrez des commandes Get-Counter distinctes pour chaque compteur.

Ejemplo 1

C:\PS># Get-Counter

Description
-----------
Cette commande obtient tous les ensembles de compteurs sur l'ordinateur local.

C:\PS> get-counter -ListSet *

Un grand nombre d'ensembles de compteurs étant protégés par des listes de contrôle d'accès (ACL), pour visualiser tous les ensembles de compteurs, ouvrez Windows PowerShell avec l'option « Exécuter en tant qu'administrateur » avant d'utiliser la commande Get-Counter.






Ejemplo 2

C:\PS># Get-Counter

Description
-----------
Cette commande obtient les valeurs combinées « % Processor Time » (Pourcentage de temps processeur) actuelles pour tous les processeurs de l'ordinateur local. Elle collecte des données toutes les deux secondes jusqu'à ce qu'elle possède trois valeurs. 

C:\PS> get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3






Ejemplo 3

C:\PS># Get-Counter

Description
-----------
Cette commande obtient une liste classée par ordre alphabétique des noms de tous les ensembles de compteurs sur l'ordinateur local.

C:\PS> get-counter -listset * | sort-object  countersetname | format-table countersetname






Ejemplo 4

C:\PS># Get-Counter

Description
-----------
Ces commandes utilisent la propriété Path d'un ensemble de compteurs pour rechercher les noms de chemins d'accès correctement mis en forme pour les compteurs de performance. Vous pouvez utiliser une commande comme celle-ci pour obtenir les chemins d'accès corrects de compteurs.

La première commande obtient les noms de chemins d'accès des compteurs de performance dans l'ensemble de compteurs Mémoire sur l'ordinateur local.  

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
...

La deuxième commande obtient les chemins d'accès qui incluent le mot « 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






Ejemplo 5

C:\PS># Get-Counter

Description
-----------
Ces commandes obtiennent les données du compteur Lectures disque/s à partir des ordinateurs Server01 et Server02. 

La première commande enregistre le chemin d'accès du compteur Lectures disque/s dans la variable $diskreads.

C:\PS> $diskreads = "\LogicalDisk(C:)\Disk Reads/sec"

La deuxième commande utilise un opérateur de pipeline (|) pour envoyer le chemin d'accès du compteur de la variable $diskreads à l'applet de commande Get-Counter. La commande utilise le paramètre MaxSamples pour limiter la sortie à 10 échantillons.

C:\PS> $diskreads | get-counter -computer Server01, Server02 -maxsamples 10






Ejemplo 6

C:\PS># Get-Counter

Description
-----------
Cette commande obtient les chemins d'accès correctement mis en forme des compteurs de performance Disque physique (PhysicalDisk), y compris les noms des instances. 

C:\PS> (get-counter -list physicaldisk).pathswithinstances






Ejemplo 7

C:\PS># Get-Counter

Description
-----------
Ces commandes obtiennent la valeur du compteur de performance « % DPC Time » (Pourcentage du temps DPC) sur 50 ordinateurs sélectionnés de façon aléatoire dans l'entreprise. 

La première commande utilise l'applet de commande Get-Content pour obtenir la liste des serveurs de l'entreprise à partir du fichier Servers.txt. Elle utilise l'applet de commande Get-Random pour sélectionner aléatoirement 50 noms de serveurs à partir du contenu du fichier Servers.txt. Les résultats sont enregistrés dans la variable $servers.

C:\PS> $servers = get-random (get-content servers.txt) -count 50

La deuxième commande enregistre le chemin d'accès de l'applet de commande « % DPC Time » (Pourcentage du temps DPC) dans la variable $Counter. Le chemin d'accès du compteur inclut un caractère générique dans le nom de l'instance pour obtenir les données sur tous les processeurs de tous les ordinateurs. 

C:\PS> $counter = "\Processor(*)\% DPC Time"

La troisième commande utilise l'applet de commande Get-Counter pour obtenir les valeurs des compteurs. Elle utilise le paramètre Counter pour spécifier les compteurs et le paramètre ComputerName pour spécifier les ordinateurs enregistrés dans la variable $servers.

C:\PS> get-counter -Counter $counter -computername $servers






Ejemplo 8

C:\PS># Get-Counter

Description
-----------
Ces commandes obtiennent une valeur unique pour tous les compteurs de performance dans l'ensemble de compteurs Mémoire (Memory) sur l'ordinateur local.

La première commande obtient les chemins d'accès des compteurs et les enregistre dans la variable $memCounters.

C:\PS> $memCounters = (get-counter -list memory).paths

La deuxième commande utilise l'applet de commande Get-Counter pour obtenir les données de compteur de chaque compteur. Elle utilise le paramètre Counter pour spécifier les compteurs dans $memCounters.

C:\PS> get-counter -counter $memCounters






Ejemplo 9

C:\PS># Get-Counter

Description
-----------
Cet exemple montre les valeurs de propriété dans l'objet PerformanceCounterSample qui représente chaque échantillon de données.

La première commande enregistre un chemin d'accès de compteur dans la variable $counter. 

C:\PS> $counter = "\\SERVER01\Process(Idle)\% Processor Time" 

La deuxième commande utilise l'applet de commande Get-Counter pour obtenir un échantillon des valeurs de compteur. Elle enregistre les résultats dans la variable $data.

C:\PS> $data = get-counter $counter

La troisième commande utilise l'applet de commande Format-List pour afficher toutes les propriétés CounterSamples de l'objet jeu d'échantillons sous forme de liste.

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

Vous pouvez utiliser les propriétés de l'objet CounterSamples pour examiner, sélectionner, trier et grouper les données.






Ejemplo 10

C:\PS># Get-Counter

Description
-----------
La commande exécute une commande Get-Counter en tant que tâche en arrière-plan. Pour plus d'informations, consultez Start-Job.

C:\PS> $counters = "\LogicalDisk(_Total)\% Free Space"

C:\PS> start-job -scriptblock {get-counter -counter $counters -maxsamples 1000)






Ejemplo 11

C:\PS># Get-Counter

Description
-----------
Cette commande utilise les applets de commande Get-Counter et Get-Random pour rechercher le pourcentage d'espace disque disponible sur 50 ordinateurs sélectionnés de façon aléatoire dans le fichier Servers.txt.

C:\PS> get-counter -computername (get-random servers.txt -count 50) -counter "\LogicalDisk(*)\% Free Space"






Ejemplo 12

C:\PS># Get-Counter

Description
-----------
Cet exemple montre comment associer des données de compteur à l'ordinateur d'où elles proviennent et comment manipuler les données.


La première commande utilise l'applet de commande Get-Counter pour obtenir la valeur du compteur « LogicalDisk\% Free Space » (Disque logique\Pourcentage d'espace libre) à partir de deux ordinateurs distants, S1 et S2. Elle enregistre le résultat dans la variable $a.

$a = get-counter "\LogicalDisk(_Total)\% Free Space" -comp s1, s2



La deuxième commande affiche les résultats dans la variable $a. Toutes les données sont stockées dans l'objet, mais il n'est pas facile de les consulter sous cette forme.

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"



La troisième commande affiche dans un tableau la valeur de la propriété CounterSamples de l'objet PerformanceCounterSampleSet que Get-Counter retourne. (Pour voir toutes les propriétés et les méthodes de l'objet, dirigez ce dernier vers l'applet de commande 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 propriété CounterSamples contient un objet PerformanceCounterSample avec ses propres propriétés et méthodes. La quatrième commande utilise une notation sous forme de tableau pour obtenir le premier échantillon de compteur et un opérateur de pipeline pour envoyer l'objet Échantillon de compteur à l'applet de commande Format-List, qui affiche toutes ses propriétés et méthodes dans une liste. Cet affichage montre la richesse des données dans chaque objet Échantillon de compteur.



La quatrième commande montre comment sélectionner des données à partir des échantillons de compteur. Elle utilise l'applet de commande Where-Object pour obtenir uniquement les échantillons de compteur dont le paramètre CookedValue a une valeur inférieure à 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






Ejemplo 13

C:\PS># Get-Counter

Description
-----------
Cet exemple montre comment trier les données de compteur de performance que vous récupérez. L'exemple recherche les processus sur l'ordinateur qui utilisent le plus de temps processeur pendant l'échantillonnage.

La première commande obtient le compteur « Process\% Processor Time » (Processus\Pourcentage de temps processeur) pour tous les processus de l'ordinateur. La commande enregistre les résultats dans la variable $p.

C:\PS> $p = get-counter '\Process(*)\% Processor Time' 


La deuxième commande obtient la propriété CounterSamples de l'objet jeu d'échantillons dans $p et elle classe les échantillons dans l'ordre décroissant en fonction de la valeur traitée de l'échantillon. La commande utilise l'applet de commande Format-Table et son paramètre AutoFormat pour positionner les colonnes dans le tableau. 

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






Ejemplo 14

C:\PS># Get-Counter

Description
-----------
Ces commandes recherchent sur l'ordinateur les processus présentant les plus grandes plages de travail. Elles répertorient les processus dans l'ordre décroissant en fonction de la taille de leur plage de travail. 

La première commande obtient un échantillon du compteur « Processus\Plage de travail - Privée » pour chaque processus. La commande enregistre les données de compteur dans la variable de $ws.

C:\PS> $ws = get-counter "\Process(*)\Working Set - Private"

La deuxième commande utilise un opérateur de pipeline (|) pour envoyer les données dans la propriété CounterSamples de la variable $ws vers l'applet de commande Sort-Object, où les données de processus sont classées dans l'ordre décroissant par la valeur de la propriété CookedValue. Un autre pipeline envoie les données triées vers l'applet de commande Format-Table, où les données sont organisées sous forme de tableau avec les colonnes InstanceName et 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
...






Ejemplo 15

C:\PS># Get-Counter

Description
-----------
Cette commande obtient une série d'échantillons du compteur « Processor\% Processor Time » (Processeur\Pourcentage de temps processeur) à une seconde d'intervalle (valeur par défaut). Pour arrêter la commande, appuyez sur CTRL+C.

C:\PS> get-counter -counter "\processor(_total)\% processor time" -continuous






Vea también




Tabla de contenido