Come posso registrare i tempi di avvio e spegnimento in Windows 7?


18

Vorrei registrare i tempi in cui il mio computer si avvia e si spegne. Non ho bisogno di informazioni diagnostiche o altro, solo una semplice nota della data e dell'ora, ad esempio qualcosa del tipo:

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

Come posso fare ciò?

Finora le mie ricerche su Google hanno portato molte persone a chiedere di ridurre i tempi di avvio di Windows, ma nulla di interessante per l'attività a portata di mano.

Risposte:


26

Windows utilizza i registri eventi con Visualizzatore eventi per registrare questo tipo di cose:

ID evento # 6005 indica l'avvio del sistema

ID evento # 6006 indica l'arresto del sistema

È necessario creare una vista personalizzata nel Visualizzatore eventi che filtrerà quei due ID evento con l'origine che è il registro eventi.

Questo è il modo più semplice.

In alternativa, è possibile utilizzare il cmdlet Get-WinEvent di PowerShell per creare un filtro personalizzato e reindirizzare tali elementi a un file di testo.

Oppure ... è possibile utilizzare Get-EventLog per reindirizzare un registro eventi personalizzato (creato con le visualizzazioni personalizzate ...) in un file di testo.


Esiste un modo per conoscere i tempi di accesso al sistema \ sleep?
Viktor Sehr,

Non ho idea di come creare quelle viste, anche dopo aver letto quelle pagine. Ma c'è un modo più semplice. Apri Event Viewer, fai clic su Windows Logs-> System. Sul lato destro c'è Filter Current Log..., cliccare su di esso e quando viene visualizzata la finestra di inserimento 6006su All Event ID'se fare clic su Ok. Questo mostrerà solo gli eventi di spegnimento del sistema. Fare lo stesso per l'avvio del sistema.
machineaddict,

cose utili ...
Fernando Espinosa,

1

6005 mostra l'inizio degli eventi di registrazione, ma suppongo che verrà visualizzato anche in caso di riavvii, ovvero Windows non fa differenza tra un "avvio completo" o un riavvio a caldo.

Se lo scopo è cercare solo il primo avvio e l'ultimo chiuso, è necessario rimuovere le doppie voci 6005.

Con me, ID evento 12 è il primo e ID evento 13 è l'ultimo.

12: Impossibile trovare la descrizione dell'ID evento (12) nell'origine (Microsoft-Windows-Kernel-General). Il componente che genera questo evento non è installato sul computer o l'installazione è danneggiata. È possibile installare o riparare il componente o provare a modificare il server di descrizione.

13: Impossibile trovare la descrizione dell'ID evento (13) nell'origine (Microsoft-Windows-Kernel-General). Il componente che genera questo evento non è installato sul computer o l'installazione è danneggiata. È possibile installare o riparare il componente o provare a modificare il server di descrizione.

Le seguenti informazioni sono state incluse con l'evento (stringhe di inserimento): 2012-12-25T18: 23: 26.070181000Z

PS: A parte questo, ho un numero di casi in cui sono stati registrati alcuni 6005, ma non ne segue 6006. È necessario aggiungere manualmente la disconnessione effettiva in base, ad esempio, all'ultima voce del registro eventi quel giorno.


1

Utilizzando Get-EventLog di PowerShell il seguente one-liner (lungo) genererà l'output richiesto in un file di testo:

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

Appunti

  • La directory C:\temp2deve esistere affinché funzioni. Se non esiste, crearlo o modificare il one-liner per utilizzare un'altra directory (esistente).
  • Per ottenere l'output in formato ISO 8601 , sostituire " TimeGenerated.ToString()" con " TimeGenerated.ToString("s")".
  • C'è un filtro temporale incorporato nel one-liner (inclusi solo avvio e arresti dopo il 2017-05-01). Cambia "2017-05-01" in qualcos'altro se sono necessari avvio e arresti precedenti.
  • Se l'output è richiesto in ordine cronologico inverso, sostituire " Sort-Object" con " Sort-Object -Descending".
  • Poiché utilizza Get-EventLog funzionerà anche su versioni precedenti di Windows.

istruzione

Il one-liner può essere inserito in uno script, ma è necessario occuparsi delle autorizzazioni prima che funzioni. Invece, il modo più semplice è:

  1. Apri un prompt dei comandi di Windows: Window+ R, digita CMDe premi Enter.
  2. Digita powershelle premi Enter. (Su Windows 10, PowerShell può essere aperto direttamente da Window+ Xe scegliendo "Windows PowerShell" )
  3. Copia la copertina negli appunti.
  4. Incolla in una riga: Alt+ SpaceModificaIncolla (nelle versioni più recenti di Windows, il normale Ctrl+ funzionaV effettivamente in entrambe le finestre CMD e PowerShell (entrambi ora eseguiti con conhost.exe)).
  5. stampa Enter
  6. Attendi fino al termine (può richiedere parecchio tempo, soprattutto se si tratta di una vecchia installazione di Windows).
  7. Il risultato può essere trovato nel file C:\temp2\_ComputerStartsAndStops.log.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.