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.

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.


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.


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+ Space→ Editar → Colar (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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.