Compartilhar via


Get-Counter

Aplica-se a: Windows PowerShell 2.0

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\Processador(2)\% tempo de usuário".

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 "% tempo de processador" 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 "\Processador(_Total)\% tempo de processador" -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 Memória).paths

\Memória\Page Faults/sec
\Memória\Available Bytes
\Memória\Committed Bytes
\Memória\Commit Limit
\Memória\Write Copies/sec
\Memória\Transition Faults/sec
\Memória\Cache Faults/sec
\Memória\Demand Zero Faults/sec
\Memória\Pages/sec
\Memória\Pages Input/sec
...

O segundo comando obtém os nomes dos caminhos que incluem "cache".

C:\PS> (get-counter -listset Memória).paths | where {$_ -like "*cache*"}

\Memória\Cache Faults/sec
\Memória\Cache Bytes
\Memória\Cache Bytes Peak
\Memória\System Cache Resident Bytes
\Memória\Standby Cache Reserve Bytes
\Memória\Standby Cache Normal Priority Bytes
\Memória\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 = "\Processador(*)\% tempo de DPC"

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 Memória 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 Memória).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\Processo(Idle)\% tempo de processador" 

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\Processo(Idle)\% tempo de processador
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)\% de espaço livre"

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(*)\% de espaço livre"





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\% de espaço livre" de dois computadores remotos, S1 e S2. Ele salva o resultado na variável $a.

$a = get-counter "\LogicalDisk(_Total)\% de espaço livre" -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:)\% de espaço livre, \\s1\\LogicalDisk(d:)\% de espaço livre, \\s1\\LogicalDisk(_Total)\% de espaço livre, \\s2\\LogicalDisk(c:)\% de espaço livre, \\s2\\LogicalDisk(_Total)\% de espaço livre

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:)\% de espaço livre       c:           0.327058823529412
\\s1\\LogicalDisk(d:)\% de espaço livre       d:            17.8952248493278
\\s1\\LogicalDisk(_Total)\% de espaço livre   _total        12.9994033060778
\\s2\\LogicalDisk(c:)\% de espaço livre       c:            75.0754805595626
\\s2\\LogicalDisk(_Total)\% de espaço livre   _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:)\% de espaço livre       c:           0.327058823529412
\\s1\\LogicalDisk(_Total)\% de espaço livre   _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 "Processo\% tempo de processador" para todos os processos no computador. O comando salva os resultados na variável $p.

C:\PS> $p = get-counter '\Processo(*)\% tempo de processador' 


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\Processo(_total)\% tempo de processador        _total        200.00641042078
\\server01\Processo(Idle)\% tempo de processador          idle          200.00641042078
\\server01\Processo(explorer#1)\% tempo de processador    explorer                    0
\\server01\Processo(dwm#1)\% tempo de processador         dwm                         0
\\server01\Processo(taskeng#1)\% tempo de processador     taskeng                     0
\\server01\Processo(taskhost#1)\% tempo de processador    taskhost                    0
\\server01\Processo(winlogon)\% tempo de processador      winlogon                    0
\\server01\Processo(csrss)\% tempo de processador         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 "Processo\Working- Set - Private" para cada processo. Ele salva os dados de contador na variável $ws.

C:\PS> $ws = get-counter "\Processo(*)\Conjunto de trabalho - particular"

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 Processador\% tempo de processador no intervalo padrão de um segundo. Para interromper o comando, pressione CTRL+C.

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





Consulte também

Conceitos

Import-Counter
Export-Counter