Questão Como posso saber quando o Windows foi reiniciado pela última vez?


Como posso saber quando meu computador executando o Windows 7 foi reiniciado pela última vez?

Eu prefiro uma solução que não envolve pesquisar o log de eventos, mas algo como wmic ou talvez cmd comandos.


87


origem




Respostas:


systeminfo comando é quase certo o que você precisa. No Inglês Windows 7 você também pode fazer:

systeminfo | find /i "Boot Time"

Ou com a ajuda de WMIC:

wmic os get lastbootuptime

A principal diferença entre o Windows 7 e o Windows XP é que no Windows 7 a Microsoft pode mostrar apenas o último tempo de inicialização.


Também no Gerenciador de Tarefas:

enter image description here


144



Além disso, existe alguma lista acumulativa da última reinicializaçãos ? - Royi Namir
@RoyiNamir: Com alguns googling lista de reinicializações (parece muito similar): Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 } - m0nhawk
é powershell .....? - Royi Namir
Você também pode ver a lista no visualizador de eventos da seguinte forma: howtogeek.com/72420/…  Tenho certeza que você pode consultar isso com o PowerShell Get-WinEvent mas eu não investiguei nada disso. - Bacon Bits
Esteja ciente que systeminfo está localizado. assim "Boot Time" só é válido para versões em inglês do Windows. - Markus Mitterauer


Uma outra maneira de fazer isso é usar a seguinte linha de comando que funciona no Windows XP e no Windows 7:

net statistics workstation

Tem a vantagem de ser mais rápido que o systeminfo alternativa ao formatar a data (que wmic não). Você também recebe algumas outras informações que podem ser úteis se você estiver realmente usando este comando para depurar um computador (já que você está pedindo especificamente cmd, Estou assumindo que você não está fazendo isso programaticamente).

Você pode encontrar mais informações sobre o net statistics comando aqui: http://technet.microsoft.com/pt-br/library/bb490714.aspx

Aqui está um exemplo do resultado (usando uma cópia em francês do Windows 7 Pro SP1 x64, a linguagem de usuário não importa muito para a linha de comando):

example

(o nome do computador é propositalmente desfocado)


Mais detalhes sobre http://en.wikipedia.org/wiki/Uptime sobre a precisão ao determinar o tempo de atividade do sistema.


Nota importante: este método determina quando o computador foi inicializado pela última vez, não seu tempo de atividade. Os 2 números serão diferentes se você usar sleep / hibernate.


18



qualquer idéia de por que isso não é o mesmo que usar systeminfo ou wmic ... provavelmente é insignificante, mas difere no meu sistema em mais de 2 minutos - Anthony Shaw
Ele difere por cerca de 40 segundos no meu computador também. Eu não tenho nenhuma idéia do porquê não é exatamente o mesmo, eu acho que o serviço acaba de ser um pouco mais tarde. Alguma informação interessante sobre en.wikipedia.org/wiki/Uptime - dnLL
Difere em mais de nove meses no meu :-) Esta é a única resposta correta. Ele fornece o datestamp atual da última inicialização (ou quando qualquer serviço associado foi iniciado após a inicialização, muito próximo a ele), enquanto wmic, Gerenciador de Tarefas e systeminfo todos parecem contar de trás para frente a partir da hora atual pelo número de pulsos que o PC está rodando. Mas se você colocar seu computador para dormir (ou hibernar) muito, como eu faço, o total real corrida o tempo é muito menor do que o tempo desde a última inicialização (apenas trinta dias no meu caso nos últimos meses), descartando esse cálculo completamente. - Cameron
Obrigado @cameron, adicionei uma nota no final da minha resposta. A pergunta original era realmente sobre quando o computador começou e não o tempo de atividade, então esse é um detalhe importante. A Wikipédia menciona um pouco a diferença no artigo de tempo de atividade que eu relacionei. - dnLL
Isso não é realmente o último "boot" tempo - é o tempo que o serviço de servidor ou estação de trabalho começou, dependendo de qual você consulta estatísticas para. Como isso nunca pára durante uma sessão normal do Windows, é uma aproximação conveniente do último tempo de inicialização. - oldmud0


Lá é o LastBootUpTime propriedade do Win32_OperatingSystem classe. Você pode usar o WMIC com este comando:

wmic os get lastbootuptime

Ou se você usar o Powershell, você pode converter o tempo para algo mais legível do que o formato de data e hora WMI irritante:

Get-WmiObject -class Win32_OperatingSystem | Select-Object  __SERVER,@{label='LastBootUpTime';expression={$_.ConvertToDateTime($_.LastBootUpTime)}}

Observe que em versões posteriores do PowerShell, você também pode usar Get-CimInstance, que retornará automaticamente o valor como um datetime:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

A única coisa irritante é que o Get-CimInstance, às vezes, altera o nome de alguns campos do sistema de objetos WMI, como __SERVER aqui. Você teria que usar CSName ou PSComputerName, o que parece funcionar para mim.


17



20121217175810.414696+120 Eu acho que preciso de uma boa calculadora para calcular o tempo - Royi Namir
@Royi Sim, os timestamps do WMI são estúpidos. É um CIM_DATETIME, que é o formato exigido pelo padrão. Está yyyymmddHHMMSS.mmmmmmsUUU, usando o tempo de 24 horas. Aqui, seu último horário de reinicialização é 17 de dezembro de 2012 às 17:58. msdn.microsoft.com/pt-pt/library/windows/desktop/… - Bacon Bits
Bônus útil de usar o método get-wmiobject é tornar trivial o tempo de inicialização de computadores remotos também. Basta adicionar "-computer <computername>" ao comando (antes do pipe) - camster342


Para usuários do Windows 10 por aí ....

System Properties Windows 10 - Performance Up time


5



Isso mostra a você tempo de atividade (por exemplo, quanto tempo o sistema está rodando) e não a hora em que o sistema foi iniciado, conforme solicitado pelo OP. - Dawid Ferenczy
É verdade, mas isso ainda é útil. - tbc0


No Windows 7 eu prefiro

net statistics workstation

A WMIC não leva em conta o tempo de sono, e deixo minha estação de trabalho trancada no trabalho dormindo durante a semana, pronta para acordar no dia seguinte.


2





Ainda outra maneira em um arquivo de lote para obter o tempo de inicialização com o wmic, mas em forma legível:

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2%  %DTS:~8,2%:%DTS:~10,2%
echo DTS      : %DTS%
echo BOOTTIME :%BOOTTIME%

saída:

DTS: 20170308073729.491206 + 060

BOOTTIME: 2017-03-08 07:37


2



Essa resposta seria melhor se incluísse uma explicação de como set BOOTTIME trabalho. - Michael Kjörling


Em praticamente qualquer versão do Windows, você pode verificar o registro de data e hora no arquivo de troca.

dir / a: h c: \ pagefile.sys


1



Acho que não. Pelo menos no Windows 10, quando eu chequei, o tempo do arquivo de troca era mais recente do que o tempo de inicialização. - tbc0


De uma pergunta similar de ServerFault, pesquisar / filtrar o log de eventos do sistema Windows para identificação de evento 6009.

No Windows 10: Event Viewer > Windows Logs > System e depois o Filter Current Log... Açao.


1





Você pode usar o PowerShell para isso.

Desligar


Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 200 }

Isto lhe dará uma lista de tempos de desligamento registrados.

Comando alternativo, melhor otimizado para conexões remotas:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 200; }

Exemplo de saída:

TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
2017-01-28 18:25:46            200 Critical         Windows has shutdown
2016-11-01 19:55:21            200 Error            Windows has shutdown
2016-10-29 00:18:38            200 Critical         Windows has shutdown
2016-10-26 23:16:55            200 Warning          Windows has shutdown
2016-10-26 15:37:40            200 Warning          Windows has shutdown
2016-10-26 02:18:24            200 Warning          Windows has shutdown
2016-10-26 02:10:34            200 Warning          Windows has shutdown
2016-10-26 02:04:01            200 Warning          Windows has shutdown
2016-10-25 14:23:11            200 Warning          Windows has shutdown
2016-10-25 13:07:46            200 Error            Windows has shutdown
2016-10-25 00:18:12            200 Error            Windows has shutdown
2016-10-19 13:16:39            200 Critical         Windows has shutdown

Comece


O comando a seguir lhe dará uma lista de tempos de inicialização registrados.

Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 100}

Comando alternativo, melhor otimizado para conexões remotas:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 100; }

Exemplo de saída:

TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
2017-10-07 21:35:38            100 Critical         Windows has started up
2017-01-28 18:25:48            100 Critical         Windows has started up
2016-12-11 17:45:07            100 Critical         Windows has started up
2016-11-16 13:26:52            100 Critical         Windows has started up
2016-11-01 19:55:21            100 Critical         Windows has started up
2016-10-29 00:18:39            100 Critical         Windows has started up
2016-10-26 23:16:55            100 Error            Windows has started up
2016-10-26 14:51:07            100 Error            Windows has started up
2016-10-26 02:24:01            100 Error            Windows has started up
2016-10-26 02:18:24            100 Critical         Windows has started up
2016-10-26 02:10:34            100 Error            Windows has started up
2016-10-26 02:04:01            100 Critical         Windows has started up
2016-10-25 14:23:12            100 Error            Windows has started up
2016-10-25 13:07:47            100 Error            Windows has started up
2016-10-25 12:56:23            100 Error            Windows has started up
2016-10-19 13:16:39            100 Critical         Windows has started up

Eu testei isso no PowerShell 5.1 e no Windows 10.0.15063. Mas também deve funcionar no Windows 7, contanto que você tenha pelo menos o PowerShell 3.0. Note que você precisa executá-lo como administrador.

Você encontrará a documentação completa do comando aqui: docs.microsoft.com


0



Não funcionou para mim no Windows 10. Nem mesmo como admin. Vejo snag.gy/HcEn8j.jpg - tbc0