Obtém dados de contadores de performance de computadores remotos e locais.

Sintaxe

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

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

Descrição

O cmdlet Get-Counter obtém dados do contador de desempenho em tempo real diretamente da instrumentação de monitoramento de desempenho do Windows. Você pode usar isso para obter dados de desempenho dos computadores locais ou remotos no intervalo de exemplo especificado.

Sem parâmetros, um comando "Get-Counter" obtém dados do contador para um conjunto de contadores do sistema.

Você pode usar os parâmetros de Get-Counter para especificar um ou mais computadores, listar os conjuntos de contadores de desempenho e os contadores que eles contêm, definir as dimensões e o intervalo do exemplo.

Parâmetros

-ComputerName <string[]>

Obtém dados dos computadores especificados. Digite o nome NetBIOS, um endereço IP ou os nomes de domínio totalmente qualificados dos computadores. O valor padrão é o computador local.

Observação: Get-Counter não depende da comunicação remota do Windows PowerShell. Você pode usar o parâmetro ComputerName de Get-Counter mesmo se o computador não estiver configurado para a comunicação remota do Windows PowerShell.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Continuous

Obtém amostras continuamente até que você pressione CTRL+C. Por padrão, Get-Counter obtém somente uma amostra do contador. Você pode usar o parâmetro SampleInterval para definir o intervalo da amostragem contínua.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Counter <string[]>

Obtém dados dos contadores de desempenho especificados. Insira um ou mais caminhos de contador. Curingas são permitidos apenas no valor Instance. Também é possível enviar por pipe cadeias de caracteres de caminhos de contadores para Get-Counter.

Cada caminho de contador tem o seguinte formato:

"[\\<ComputerName>]\<CounterSet>(<Instance>)\<CounterName>"

Por exemplo:

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

O elemento <ComputerName> é opcional. Se omitido, Get-Counter usará o valor do parâmetro ComputerName.

Observação: para obter caminhos de contador corretamente formatados, use o parâmetro ListSet para obter um conjunto de contadores de desempenho. As propriedades Paths e PathsWithInstances de cada conjunto de contadores de desempenho contêm os caminhos dos contadores individuais formatados como uma cadeia de caracteres. Você pode salvar as cadeias de caracteres de caminho de contador em uma variável ou pode enviar essa cadeia por pipe diretamente para outro comando Get-Counter. Para obter uma demonstração, consulte os exemplos.

Necessário?

true

Posição?

2

Valor padrão

Aceitar entrada do pipeline?

true (ByValue)

Aceitar caracteres curinga?

true

-ListSet <string[]>

Obtém os conjuntos de contadores de desempenho especificados nos computadores. Insira os nomes dos conjuntos de contadores. Os caracteres curinga são permitidos. Também é possível enviar por pipe nomes de conjuntos de contadores para Get-Counter.

Necessário?

true

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

true (ByValue, ByPropertyName)

Aceitar caracteres curinga?

true

-MaxSamples <Int64>

Especifica o número de amostras a ser obtido de cada contador. O valor padrão é 1 amostra. Para obter amostras continuamente (sem máximo de amostras), use o parâmetro Continuous.

Para coletar um conjunto de dados muito grande, você pode executar um comando Get-Counter como uma função em segundo plano do Windows PowerShell. Para obter mais informações, consulte about_Jobs e Start-Job.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-SampleInterval <int>

Especifica a hora entre exemplos em segundos. O valor mínimo e o valor padrão são 1 segundo.

Necessário?

false

Posição?

named

Valor padrão

1

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

System.String[]

Você pode enviar por pipe caminhos de contadores e nomes de conjuntos de contadores (ListSet) para Get-Counter.

Saídas

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

O parâmetro ListSet obtém objetos Microsoft.PowerShell.Commands.GetCounter.CounterSet. O parâmetro Counter obtém objetos Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet. Cada valor de contador é um objeto Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample.

Observações

Com frequência, os contadores de desempenho são protegidos por ACLs (listas de controle de acesso). Para obter todos os contadores de desempenho disponíveis, abra o Windows PowerShell com a opção "Executar como administrador".

Por padrão, Get-Counter obtém uma amostra durante um intervalo de exemplo de um segundo. Para alterar esse comportamento, use os parâmetros MaxSamples e Continuous.

Os valores de MaxSamples e SampleInterval definidos por você se aplicam a todos os contadores em todos os computadores no comando. Para definir valores diferentes para contadores diferentes, insira comandos Get-Counter separados para cada contador.

Exemplo 1

C:\PS># Get-Counter

Descrição
-----------
Este comando obtém todos os conjuntos de contadores no computador local.

C:\PS> get-counter -ListSet *

Como muitos dos conjuntos de contadores são protegidos por ACLs (listas de controle de acesso), para ver todos os conjuntos de contadores, abra o Windows PowerShell com a opção "Executar como administrador" antes de usar o comando Get-Counter.






Exemplo 2

C:\PS># Get-Counter

Descrição
-----------
Este comando obtém os valores combinados de "% Processor Time" atuais para todos os processadores no computador local. Ele coleta dados a cada dois segundos até ter três valores. 

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






Exemplo 3

C:\PS># Get-Counter

Descrição
-----------
Esse comando obtém uma lista em ordem alfabética dos nomes de todos os conjuntos de contadores no computador local.

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






Exemplo 4

C:\PS># Get-Counter

Descrição
-----------
Esses comandos usam a propriedade Path de um conjunto de contadores para localizar os nomes de caminho formatados corretamente para os contadores de desempenho. Você pode usar um comando como esse para obter os nomes dos caminhos de contador corretos.

O primeiro comando obtém os nomes dos caminhos dos contadores de desempenho no conjunto de contadores de memória no computador 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
...

O segundo comando obtém os nomes dos caminhos que incluem "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






Exemplo 5

C:\PS># Get-Counter

Descrição
-----------
Esses comandos obtêm os dados do contador Disk Reads/sec dos computadores Server01 e Server02. 

O primeiro comando salva um caminho de contador Leituras de disco/s na variável $diskreads.

C:\PS> $diskreads = "\LogicalDisk(C:)\Leituras de disco/s"

O segundo comando usa um operador de pipeline (|) para enviar o caminho do contador na variável $diskreads para o cmdlet Get-Counter. O comando usa o parâmetro MaxSamples para limitar a saída a 10 amostras.

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






Exemplo 6

C:\PS># Get-Counter

Descrição
-----------
Este comando obtém os nomes dos caminhos formatados corretamente dos contadores de desempenho PhysicalDisk, incluindo os nomes de instância. 

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






Exemplo 7

C:\PS># Get-Counter

Descrição
-----------
Esses comandos obtêm o valor do contador de desempenho "% DPC Time" em 50 computadores selecionados aleatoriamente na empresa. 

O primeiro comando usa o cmdlet Get-Content para obter a lista de servidores corporativos do arquivo Servers.txt. Ele usa o cmdlet Get-Random para selecionar aleatoriamente 50 nomes de servidor do conteúdo do arquivo Servers.txt. Os resultados são armazenados na variável $servers.

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

O segundo comando salva o caminho do contador no cmdlet "% DPC Time" na variável $Counter. O caminho de contador inclui um caractere curinga no nome de instância para obter os dados em todos os processadores em cada dos computadores. 

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

O terceiro comando usa o cmdlet Get-Counter para obter os valores do contador. Ele usa o parâmetro Counter para especificar os contadores e o parâmetro ComputerName para especificar os computadores salvos na variável $servers.

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






Exemplo 8

C:\PS># Get-Counter

Descrição
-----------
Esses comandos obtêm um único valor para todos os contadores de desempenho no conjunto de contadores Memory no computador local.

O primeiro comando obtém os caminhos de contador e os salva na variável $memCounters.

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

O segundo comando usa o cmdlet Get-Counter para obter os dados de contador para cada contador. Ele usa o parâmetro Counter para especificar os contadores em $memCounters.

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






Exemplo 9

C:\PS># Get-Counter

Descrição
-----------
Este exemplo mostra os valores de propriedade no objeto PerformanceCounterSample que representa cada exemplo de dados.

O primeiro comando salva um caminho de contador na variável $counter. 

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

O segundo comando usa o cmdlet Get-Counter para obter um exemplo dos valores de contador. Ele salva os resultados na variável $data.

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

O terceiro comando usa o cmdlet Format-List para exibir todas as propriedades da propriedade CounterSamples do objeto do conjunto de amostras como uma lista.

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

Você pode usar as propriedades do objeto CounterSamples para examinar, selecionar, classificar e agrupar os dados.






Exemplo 10

C:\PS># Get-Counter

Descrição
-----------
O comando executa um comando Get-Counter como um trabalho em segundo plano. Para obter mais informações, consulte Start-Job.

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

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






Exemplo 11

C:\PS># Get-Counter

Descrição
-----------
Este comando usa os cmdlets Get-Counter e Get-Random para localizar o percentual de espaço livre em disco de 50 computadores selecionados aleatoriamente no arquivo Servers.txt.

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






Exemplo 12

C:\PS># Get-Counter

Descrição
-----------
Este exemplo mostra como associar dados de contador ao computador no qual eles foram originados, e como manipular os dados.


O primeiro comando usa o cmdlet Get-Counter para obter o valor do contador "LogicalDisk \% Free Space" de dois computadores remotos, S1 e S2. Ele salva o resultado na variável $a.

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



O segundo comando exibe os resultados na variável $a. Todos os dados são armazenados no objeto, mas não é fácil ver isso nesse formulário.

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"



O terceiro comando exibe em uma tabela o valor da propriedade CounterSamples do objeto PerformanceCounterSampleSet que Get-Counter retorna. (Para ver todas as propriedades e todos os métodos do objeto, envie-o por pipe para o 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

A propriedade CounterSamples contém um objeto PerformanceCounterSample com suas próprias propriedades e métodos. O quarto comando usa notação matricial para obter o primeiro exemplo de contador e um operador de pipeline para enviar o objeto do exemplo de contador para o cmdlet Format-List, que exibe todas as suas propriedades e métodos em uma lista. Essa exibição mostra detalhadamente os dados em cada objeto de exemplo de contador.



O quarto comando mostra como selecionar dados dos exemplos de contador. Ele usa o cmdlet Where-Object para obter apenas os exemplos de contador com CookedValue inferior a 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






Exemplo 13

C:\PS># Get-Counter

Descrição
-----------
Este exemplo mostra como classificar os dados do contador de desempenho que você recupera. O exemplo localiza os processos no computador que estiver usando o maior tempo do processador durante o exemplo.

O primeiro comando obtém o contador "Process\% Processor Time" para todos os processos no computador. O comando salva os resultados na variável $p.

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


O segundo comando obtém a propriedade CounterSamples do objeto do conjunto de exemplos em $p e classifica os exemplos em ordem decrescente com base no valor processado do exemplo. O comando usa o cmdlet Format-Table e o parâmetro AutoFormat para posicionar as colunas na tabela. 

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






Exemplo 14

C:\PS># Get-Counter

Descrição
-----------
Estes comandos localizam os processos no computador com os maiores conjuntos de trabalho. Eles listam os processos em ordem decrescente com base no tamanho do conjunto de trabalho. 

O primeiro comando obtém um exemplo do contador "Process\Working- Set - Private" para cada processo. Ele salva os dados de contador na variável $ws.

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

O segundo comando usa um operador de pipeline (|) para enviar os dados da propriedade CounterSamples da variável $ws para o cmdlet Sort-Object, onde os dados de processo são classificados em ordem decrescente pelo valor da propriedade CookedValue. Outro pipeline envia os dados classificados para o cmdlet Format-Table, onde os dados são formatados como uma tabela com as colunas 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
...






Exemplo 15

C:\PS># Get-Counter

Descrição
-----------
Este comando obtém uma série de amostras do contador Processor\% Processor Time no intervalo padrão de um segundo. Para interromper o comando, pressione CTRL+C.

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






See Also




Sumário