Bagaimana cara saya mencatat waktu mulai dan mati pada Windows 7?

18

Saya ingin mencatat waktu ketika komputer saya dinyalakan dan dimatikan. Saya tidak memerlukan info diagnostik atau apa pun, hanya catatan sederhana tentang tanggal dan waktu, misalnya sesuatu seperti:

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

Bagaimana saya bisa melakukan itu?

Pencarian Google saya sejauh ini telah menghasilkan banyak orang bertanya tentang mengurangi waktu startup Windows, tetapi tidak ada yang menarik untuk tugas yang ada.

Will Martin
sumber

Jawaban:

26

Windows menggunakan log kejadian dengan Event Viewer untuk mencatat hal semacam ini:

ID Peristiwa # 6005 menunjukkan startup sistem

ID Peristiwa # 6006 menunjukkan pematian sistem

Anda harus membuat tampilan khusus di Peraga Peristiwa yang akan memfilter kedua ID peristiwa tersebut dengan sumber yang menjadi log peristiwa.

Ini adalah cara paling sederhana.

Atau, Anda dapat menggunakan cmdlet PowerShell Get-WinEvent untuk membuat filter khusus dan menyalurkan item tersebut ke file teks.

Atau ... Anda dapat menggunakan Get-EventLog untuk mengirim log log peristiwa khusus (yang Anda buat dengan tampilan khusus ...) ke file teks.

Yeedl
sumber
Apakah ada cara untuk mengetahui waktu masuk sistem \ waktu tidur?
Viktor Sehr
Saya tidak memiliki petunjuk cara membuat tampilan itu, bahkan setelah saya membaca halaman-halaman itu. Tapi, ada cara yang lebih mudah. Buka Event Viewer, klik Windows Logs-> System. Di sisi kanan ada Filter Current Log..., klik di atasnya dan ketika muncul jendela baru insert 6006pada All Event ID'sdan klik Ok. Ini hanya akan menampilkan peristiwa pematian sistem. Lakukan hal yang sama untuk startup sistem.
machineaddict
hal-hal yang bermanfaat ...
Fernando Espinosa
1

6005 menunjukkan dimulainya acara logging, tapi saya berasumsi itu juga akan muncul jika ada reboot, yaitu Windows tidak membuat perbedaan antara 'start-up penuh' atau reboot hangat.

Jika tujuannya adalah untuk mencari startup pertama dan hanya penutupan terakhir, kita harus menghapus entri 6005 ganda.

Dengan saya, id peristiwa 12 adalah yang pertama dan id peristiwa 13 adalah yang terakhir.

12: Deskripsi untuk Event ID (12) di Sumber (Microsoft-Windows-Kernel-General) tidak dapat ditemukan. Entah komponen yang menimbulkan peristiwa ini tidak diinstal di komputer atau instalasi rusak. Anda dapat menginstal atau memperbaiki komponen atau mencoba mengubah Deskripsi Server.

13: Deskripsi untuk Event ID (13) di Source (Microsoft-Windows-Kernel-General) tidak dapat ditemukan. Entah komponen yang menimbulkan peristiwa ini tidak diinstal di komputer atau instalasi rusak. Anda dapat menginstal atau memperbaiki komponen atau mencoba mengubah Deskripsi Server.

Informasi berikut disertakan dengan acara (string penyisipan): 2012-12-25T18: 23: 26.070181000Z

PS: Selain itu, saya punya beberapa contoh dimana beberapa 6005 dicatat, tetapi tidak ada 6006 yang mengikuti. Kita harus secara manual menambahkan log-off aktual berdasarkan misalnya entri eventlog terakhir hari itu.

Mike994
sumber
1

Menggunakan Get-EventLog dari PowerShell, satu-liner berikut (panjang) akan menampilkan output yang diminta ke file teks:

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

Catatan

  • Direktori C:\temp2harus ada agar ini berfungsi. Jika tidak ada, buat atau ubah one-liner untuk menggunakan direktori lain (sudah ada).
  • Untuk mendapatkan output dalam format ISO 8601 , ganti " TimeGenerated.ToString()" dengan " TimeGenerated.ToString("s")".
  • Ada filter waktu built-in dalam satu-liner (hanya termasuk start dan shutdown setelah 2017-05-01). Ubah "2017-05-01" menjadi sesuatu yang lain jika start dan shutdown yang lebih lama diperlukan.
  • Jika output diperlukan dalam urutan kronologis terbalik maka ganti " Sort-Object" dengan " Sort-Object -Descending".
  • Karena menggunakan Get-EventLog, itu juga akan berfungsi pada versi Windows yang lebih lama.

Petunjuk

One-liner dapat dimasukkan ke dalam skrip, tetapi kemudian izin harus dijaga sebelum berfungsi. Sebaliknya, cara termudah adalah:

  1. Buka prompt perintah Windows: Window+ R, ketik CMDdan tekan Enter.
  2. Ketik powershelldan tekan Enter. (Pada Windows 10, PowerShell dapat dibuka langsung oleh Window+ Xdan memilih "Windows PowerShell" )
  3. Salin satu baris ke papan klip.
  4. Tempel di satu-liner: Alt+ SpaceEditTempel (pada versi Windows yang lebih baru, Ctrl+ normal Vsebenarnya berfungsi di kedua CMD dan PowerShell windows (keduanya sekarang berjalan di bawah conhost.exe)).
  5. tekan Enter
  6. Tunggu hingga selesai (ini bisa memakan waktu yang cukup lama, terutama jika itu adalah instalasi Windows yang lama).
  7. Hasilnya dapat ditemukan dalam file C:\temp2\_ComputerStartsAndStops.log.
Peter Mortensen
sumber