Partager via


Get-Counter

Mis à jour: avril 2010

S'applique à: Windows PowerShell 2.0

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

Syntaxe

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

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

Description

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.

Paramètres

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

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

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\Processeur(2)\% temps utilisateur".

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.

Obligatoire ?

true

Position ?

2

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue)

Accepter les caractères génériques ?

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.

Obligatoire ?

true

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue, ByPropertyName)

Accepter les caractères génériques ?

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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

1

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.String[]

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

Sorties

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.

Remarques

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.

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





Exemple 2

C:\PS># Get-Counter

Description
-----------
Cette commande obtient les valeurs combinées « % temps processeur » (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 "\Processeur(_Total)\% temps processeur" -SampleInterval 2 -MaxSamples 3





Exemple 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





Exemple 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 Mémoire).paths

\Mémoire\Page Faults/sec
\Mémoire\Available Bytes
\Mémoire\Committed Bytes
\Mémoire\Commit Limit
\Mémoire\Write Copies/sec
\Mémoire\Transition Faults/sec
\Mémoire\Cache Faults/sec
\Mémoire\Demand Zero Faults/sec
\Mémoire\Pages/sec
\Mémoire\Pages Input/sec
...

La deuxième commande obtient les chemins d'accès qui incluent le mot « cache ».

C:\PS> (get-counter -listset Mémoire).paths | where {$_ -like "*cache*"}

\Mémoire\Cache Faults/sec
\Mémoire\Cache Bytes
\Mémoire\Cache Bytes Peak
\Mémoire\System Cache Resident Bytes
\Mémoire\Standby Cache Reserve Bytes
\Mémoire\Standby Cache Normal Priority Bytes
\Mémoire\Standby Cache Core Bytes





Exemple 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 = "\Disque logique(C:)\Lectures disque/s"

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





Exemple 6

C:\PS># Get-Counter

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

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





Exemple 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 = "\Processeur(*)\% temps DPC"

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





Exemple 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 (Mémoire) 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 Mémoire).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





Exemple 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\Processus(Idle)\% temps processeur" 

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\Processus(Idle)\% temps processeur
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.





Exemple 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 = "\Disque logique(_Total)\% d’espace"

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





Exemple 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 "\Disque logique(*)\% d’espace"





Exemple 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 « Disque logique\% d’espace » (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 "\Disque logique(_Total)\% d’espace" -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\\Disque logique(c:)\% d’espace libre, \\s1\\Disque logique(d:)\% d’espace libre, \\s1\\logicaldisk(_total)\% free space, \\s2\\Disque logique(c:)\% d’espace libre, \\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\\Disque logique(c:)\% d’espace libre       c:           0.327058823529412
\\s1\\Disque logique(d:)\% d’espace libre       d:            17.8952248493278
\\s1\\Disque logique(_Total)\% d’espace libre  _total        12.9994033060778
\\s2\\Disque logique(c:)\% d’espace libre       c:            75.0754805595626
\\s2\\Disque logique(_Total)\% d’espace libre  _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\\Disque logique(c:)\% d’espace libre       c:           0.327058823529412
\\s1\\Disque logique(_Total)\% d’espace libre  _total        12.9994033060778





Exemple 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\% temps processeur » (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 '\Processus(*)\% temps processeur' 


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\Processus(_total)\% temps processeur        _total        200.00641042078
\\server01\Processus(Idle)\% temps processeur          idle          200.00641042078
\\server01\Processus(explorer#1)\% temps processeur    explorer                    0
\\server01\Processus(dwm#1)\% temps processeur         dwm                         0
\\server01\Processus(taskeng#1)\% temps processeur     taskeng                     0
\\server01\Processus(taskhost#1)\% temps processeur    taskhost                    0
\\server01\Processus(winlogon)\% temps processeur      winlogon                    0
\\server01\Processus(csrss)\% temps processeur         csrss                       0





Exemple 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 "\Processus(*)\Plage de travail - Privée"

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





Exemple 15

C:\PS># Get-Counter

Description
-----------
Cette commande obtient une série d'échantillons du compteur « Processeur\% temps processeur » (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 "\Processeur(_Total)\% processor time" -continuous





Voir aussi

Concepts

Import-Counter
Export-Counter