Script para obter o último registro de data e hora da reinicialização (2008r2)

4

Eu tenho uma lista de computadores integrados a anúncios e preciso de uma lista deles com o último tempo de reinicialização deles. Eu encontrei alguns comandos como Get-WmiObject -ClassName win32_operatingsystem -ComputerName xxx | select csname, lastbootuptime , mas não é o que eu preciso. Eu precisaria de um script porque há muitos computadores.

Eu não tenho experiência com o PowerShell, se alguém puder me ajudar com algumas sugestões.

PS C:\Users\XxX> Get-wmiobject win32_operatingsystem -ComputerName LC006909 | select csname, @{label='LastRestart';expression={$_.ConverToDateTime($_.LastBootUpTime)}}

csname                                                      LastRestart
------                                                      -----------
LC006909

Eu recebo esta saída ... vazia em LastRestart.

    
por Cranta Ionut 16.09.2015 / 12:57

4 respostas

4
A resposta de

Nixphoe está definitivamente correta, mas eu quero adicionar como obter lastbootuptime para os vários computadores (a saída também pode ser redirecionada para um arquivo se necessário):

Obtenha o último tempo de inicialização para várias máquinas

$compname = Get-Content -Path C:\computers.txt
foreach ($comp in $compname) {
    Get-WmiObject win32_operatingsystem -ComputerName $comp| select CSName, @{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}

}

C:\computers.txt - coloca nomes de host de computador um em linha aqui

    
por 16.09.2015 / 16:41
4

Para mim, systeminfo é muito lento. Se você tem o powershell 3, você deve ser capaz de usar algo como

Get-CimInstance -ComputerName $yourcomputerObj -ClassName win32_operatingsystem | select csname, lastbootuptime

ou

Get-WmiObject win32_operatingsystem -ComputerName $yourcomputerObj | select csname, @{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}

Link

    
por 16.09.2015 / 15:56
1

Existem várias maneiras de obter o último tempo de inicialização:

systeminfo | find /i "Boot Time"

faria o truque, por exemplo (em formato legível por humanos). Esteja ciente de diferentes idiomas aqui, na Alemanha, por exemplo, você teria que grep para "Systemstartzeit".

Você também pode tentar (independente do idioma) wmi:

wmic os get lastBootUpTime

que lhe dará o tempo de inicialização no formato invertido (como 20150915100340.494919 + 120)

    
por 16.09.2015 / 13:36
1

Eu sempre uso

systeminfo | find "Time"

quais saídas

System Boot Time: 16/09/2015, 08:41:28 Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London

    
por 16.09.2015 / 15:36