Introdução


Como todos já sabemos os Poderes do Powershell são quase inacabáveis e uma coisa útil é podermos ver o 
uptime de um de nossos servidores, nesse artigo vou mostrar como utilizar uma consulta WMI para pegar o uptime dos servidores.

Pegando Uptime


Primeiro vamos ver o comando completo e depois vamos as explicações 

(Get-Date) - [System.Management.ManagementDateTimeconverter]::ToDateTime((gwmi win32_operatingSystem).lastbootuptime)

Bem removendo toda balela e manipulação de variaveis, temos no objeto wmi win32_operatingSystem a propriedade lastbootuptime, que nos retorna 
o horário do ultimo reboot, mas ainda não o uptime, porém a informação que ele nos retorna está toda bagunçada e está bem formatada, então vamos converte-la para o formato de data utilizando a classe System.Management.ManagementDateTimeconverter

(gwmi win32_operatingSystem).lastbootuptime
[System.Management.ManagementDateTimeconverter]::ToDateTime((gwmi win32_operatingSystem).lastbootuptime)
( gwmi é um alias para Get-WmiObject )

Agora já temos uma data mais amigável, porém somente com o horário do ultimo reboot, como já foi visto no artigo  Powershell, o nosso amigo Powershell consegue fazer soma e subtração de horários e datas, então para sabermos o uptime pegamos a data atual e reduzimos do ultimo horário de reboot.

(Get-Date) - [System.Management.ManagementDateTimeconverter]::ToDateTime((gwmi win32_operatingSystem).lastbootuptime)

Pronto, a informação simples para nós.

Esse artigo foi originalmente publicado por
Matheus Kamphorst | Blog: howtoserver.com