Introdução


Mais importante que executar uma ação é verificar se a ação realmente pode ser executa de forma segura, evitando possíveis falhas, sejam essas falhas por erros de sistema ou falta de recursos, nós temos que prever este tipo de situação em nossos scripts.

Uma maneira simples de fazer essas verificações com Powershell é utilizando o cmdlet Get-Counter que nos retorna as informações dos contadores de performance. 

Utilizando cmdlet Get-Counter


O cmdlet Get-Counter pode ser utilizado tanto para nos retornar informações sobre os contadores locais como remotos, sua sintaxe é simples, abaixo temos um exemplo de como verificar o contador de memoria na maquina local.

Get-Counter -Counter "\Memory\Available Bytes"



Porém essa informação ainda não é exatamente o que queremos, temos que separar a propriedade que contém o valor retornado para isso vamos isolar o comando dentro de parenteses e colocar a propriedade CounterSamples após isso.

(Get-Counter -Counter "\Memory\Available Bytes").CounterSamples



Ainda não temos somente a informação desejada, que é a propriedade CookedValue, mas podemos seleciona-la adicionando mais uma propriedade ao comando acima.

(Get-Counter -Counter "\Memory\Available Bytes").CounterSamples.CookedValue



Agora basta dividirmos esse valor para ficar mais fácil de visualizar quanta memoria disponível o servidor possui.

"{0:N2}" -f ((Get-Counter -Counter "\Memory\Available Bytes").CounterSamples.CookedValue / 1GB)



Temos então a quantidade de memoria livre na estação local, se quisermos pegar estas informações de outros servidores da rede utilizamos a seguinte sintaxe:

((Get-Counter -Counter "\\Servidor01\Memory\Available Bytes").CounterSamples.CookedValue / 1GB)

Alguns contadores como os de processador possuem uma característica diferente para entendermos como pegar as informações desses contadores vamos começar utilizando o parametro -ListSet.

Get-Counter -ListSet "Processor"



Vendo essa saída conseguimos perceber que ele possui instancias para cada núcleo, se quisermos o total podemos utilizar a instancia Processor(_Total) que nos trás as informações.

Get-Counter -Counter "\Processor(_Total)\% Processor Time"



Podemos encontrar todos os contadores que podem ser encontrados no console Performance Monitor.

Referências


Esse artigo foi escrito utilizando a própria documentação disponível no Powershell.

Este artigo foi originalmente publicado por:
Matheus Kamphorst | Blog: http://howtoserver.com web statistics