Como faço para registrar os tempos de inicialização e desligamento no Windows 7?

18

Gostaria de registrar os horários em que meu computador inicia e desliga. Não preciso de nenhuma informação de diagnóstico ou qualquer outra coisa, apenas uma simples nota da data e hora, por exemplo, algo como:

2011/04/29 08:17:34 AM Startup
2011/04/29 05:26:52 PM Shutdown

Como eu posso fazer isso?

Minhas pesquisas no Google até agora renderam muitas pessoas perguntando sobre a redução do tempo de inicialização do Windows, mas nada de interessante para a tarefa em questão.

Will Martin
fonte

Respostas:

26

O Windows usa logs de eventos com o Visualizador de Eventos para registrar esse tipo de coisa:

O ID do evento # 6005 indica a inicialização do sistema

A identificação de evento # 6006 indica o desligamento do sistema

Você deve criar uma exibição personalizada no Visualizador de Eventos que filtrará esses dois IDs de eventos com a origem sendo o log de eventos.

Esta é a maneira mais simples.

Como alternativa, você pode usar o cmdlet Get-WinEvent do PowerShell para criar um filtro personalizado e canalizar esses itens para um arquivo de texto.

Ou ... você pode usar o Get-EventLog para canalizar um log de eventos personalizado (criado com as visualizações personalizadas ...) para um arquivo de texto.

yeedl
fonte
Existe alguma maneira de saber o login do sistema \ os tempos de suspensão?
Viktor Sehr
Não tenho idéia de como criar essas visualizações, mesmo depois de ler essas páginas. Mas, existe uma maneira mais fácil. Abra Event Viewer, clique em Windows Logs-> System. No lado direito existe Filter Current Log..., clique sobre ele e quando a nova janela aparece inserção 6006no All Event ID'se clique Ok. Isso exibirá apenas eventos de desligamento do sistema. Faça o mesmo para a inicialização do sistema.
precisa saber é o seguinte
coisas úteis ...
Fernando Espinosa
1

O 6005 está mostrando o início dos eventos de log, mas presumo que ele também será exibido em caso de reinicialização, ou seja, o Windows não faz diferença entre uma 'inicialização completa' ou uma reinicialização a quente.

Se o objetivo é buscar apenas a primeira inicialização e o último fechamento, é necessário remover quaisquer entradas 6005 duplas.

Comigo, o evento 12 é o primeiro e o evento 13 é o último.

12: Não foi possível encontrar a descrição do ID do Evento (12) na Origem (Microsoft-Windows-Kernel-General). O componente que gera esse evento não está instalado no computador ou a instalação está corrompida. Você pode instalar ou reparar o componente ou tentar alterar o Servidor de Descrição.

13: Não foi possível encontrar a descrição do ID do Evento (13) na Origem (Microsoft-Windows-Kernel-General). O componente que gera esse evento não está instalado no computador ou a instalação está corrompida. Você pode instalar ou reparar o componente ou tentar alterar o Servidor de Descrição.

As seguintes informações foram incluídas no evento (cadeias de inserção): 2012-12-25T18: 23: 26.070181000Z

PS: Além disso, tenho várias instâncias em que alguns 6005 foram registrados, mas nenhum 6006 a seguir. É necessário adicionar manualmente o logoff real com base, por exemplo, na última entrada do log de eventos naquele dia.

Mike994
fonte
1

Usando o Get-EventLog do PowerShell, o seguinte (longo) one-liner produzirá a saída solicitada em um arquivo de texto:

Get-EventLog -LogName System | Where-Object {(($_.EventID -eq 6005) -or ($_.EventID -eq 6006)) -and ($_.TimeGenerated -gt [DateTime] "2017-05-01")} | Select-Object EventID, TimeGenerated, Message | Sort-Object -Property TimeGenerated | Foreach { if ($_.EventID -eq 6005) { $out = "Startup"  } else { $out = "Shutdown" + "`r`n"}  ($_.TimeGenerated.ToString() + '  ' + $out); } > C:\temp2\_ComputerStartsAndStops.log

Notas

  • O diretório C:\temp2deve existir para que isso funcione. Se não existir, crie-o ou altere o one-liner para usar outro diretório (existente).
  • Para obter a saída no formato ISO 8601 , substitua " TimeGenerated.ToString()" por " TimeGenerated.ToString("s")".
  • Há um filtro de tempo interno na linha única (incluindo apenas o início e os desligamentos após 01/05/2017). Altere "2017-05-01" para outra coisa se for necessário iniciar e encerrar mais antigos.
  • Se a saída for necessária em ordem cronológica reversa, substitua " Sort-Object" por " Sort-Object -Descending".
  • Como ele usa Get-EventLog, também funcionará em versões mais antigas do Windows.

Instrução

O one-liner pode ser colocado em um script, mas, em seguida, é necessário ter permissões antes de funcionar. Em vez disso, a maneira mais fácil é:

  1. Abra um prompt de comando do Windows: Window+ R, digite CMDe pressione Enter.
  2. Digite powershelle pressione Enter. (No Windows 10, o PowerShell pode ser aberto diretamente com Window+ Xe escolhendo "Windows PowerShell" )
  3. Copie o verso para a área de transferência.
  4. Cole no one-liner: Alt+ SpaceEditarColar (nas versões mais recentes do Windows, o Ctrl+ normal Vrealmente funciona nas janelas CMD e PowerShell (agora executadas no conhost.exe)).
  5. pressione Enter
  6. Aguarde até terminar (pode demorar bastante tempo, especialmente se for uma instalação antiga do Windows).
  7. O resultado pode ser encontrada no arquivo C:\temp2\_ComputerStartsAndStops.log.
Peter Mortensen
fonte