Làm cách nào để tôi đăng nhập thời gian khởi động và tắt trong Windows 7?


18

Tôi muốn ghi lại thời gian khi máy tính của tôi khởi động và tắt. Tôi không cần bất kỳ thông tin chẩn đoán hoặc bất cứ điều gì, chỉ cần một ghi chú đơn giản về ngày và thời gian, ví dụ như:

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

Làm thế nào tôi có thể làm điều đó?

Các tìm kiếm Google của tôi cho đến nay đã mang lại rất nhiều người hỏi về việc giảm thời gian khởi động Windows, nhưng không có gì đáng quan tâm đối với nhiệm vụ trong tay.

Câu trả lời:


26

Windows sử dụng nhật ký sự kiện với Event Viewer để ghi nhật ký loại này:

ID sự kiện # 6005 cho biết khởi động hệ thống

ID sự kiện # 6006 cho biết tắt hệ thống

Bạn nên tạo chế độ xem tùy chỉnh trong Trình xem sự kiện sẽ lọc hai ID sự kiện đó với nguồn là sự kiện.

Đây là cách đơn giản nhất.

Ngoài ra, bạn có thể sử dụng lệnh ghép ngắn Get-WinEvent của PowerShell để tạo bộ lọc tùy chỉnh và chuyển các mục đó thành tệp văn bản.

Hoặc ... bạn có thể sử dụng Get-EventLog để chuyển nhật ký sự kiện tùy chỉnh (mà bạn tạo với chế độ xem tùy chỉnh ...) sang tệp văn bản.


Có cách nào để biết đăng nhập hệ thống \ thời gian ngủ không?
Viktor Sehr

Tôi không biết làm thế nào để tạo ra các chế độ xem đó, ngay cả sau khi tôi đã đọc các trang đó. Nhưng, có một cách dễ dàng hơn. Mở lên Event Viewer, nhấp Windows Logs-> System. Ở bên phải có Filter Current Log..., nhấp vào nó và khi cửa sổ mới xuất hiện chèn 6006vào All Event ID'svà nhấp vào Ok. Điều này sẽ chỉ hiển thị các sự kiện tắt hệ thống. Làm tương tự để khởi động hệ thống.
máy móc

công cụ hữu ích ...
Fernando Espinosa

1

6005 đang hiển thị bắt đầu các sự kiện đăng nhập, nhưng tôi cho rằng nó cũng sẽ hiển thị trong trường hợp có bất kỳ khởi động lại nào, tức là Windows không tạo ra sự khác biệt giữa 'khởi động đầy đủ' hoặc khởi động lại ấm áp.

Nếu mục đích là để tìm kiếm lần khởi động đầu tiên và lần đóng cửa cuối cùng, người ta phải xóa bất kỳ 6005 mục nhập kép nào.

Với tôi, id sự kiện 12 là sự kiện đầu tiên và sự kiện id 13 là sự kiện cuối cùng.

12: Không thể tìm thấy mô tả cho ID sự kiện (12) trong Nguồn (Microsoft-Windows-Kernel-General). Thành phần gây ra sự kiện này không được cài đặt trên máy tính hoặc cài đặt bị hỏng. Bạn có thể cài đặt hoặc sửa chữa thành phần hoặc thử thay đổi Mô tả Máy chủ.

13: Không thể tìm thấy mô tả cho ID sự kiện (13) trong Nguồn (Microsoft-Windows-Kernel-General). Thành phần gây ra sự kiện này không được cài đặt trên máy tính hoặc cài đặt bị hỏng. Bạn có thể cài đặt hoặc sửa chữa thành phần hoặc thử thay đổi Mô tả Máy chủ.

Thông tin sau đây được bao gồm trong sự kiện (chuỗi chèn): 2012-12-25T18: 23: 26.070181000Z

PS: Bỏ qua một bên, tôi có một số trường hợp trong đó một vài 6005 đã được ghi lại, nhưng không có 6006 nào tiếp theo. Người ta phải thêm thủ công đăng xuất thực tế dựa trên ví dụ: mục sự kiện cuối cùng vào ngày hôm đó.


1

Sử dụng Get-Event của PowerShell Đăng nhập một lớp lót dài (dài) sau đây sẽ xuất đầu ra được yêu cầu thành tệp văn bản:

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

Ghi chú

  • Thư mục C:\temp2phải tồn tại để làm việc này. Nếu nó không tồn tại, tạo nó hoặc thay đổi một-liner để sử dụng thư mục (hiện có) khác.
  • Để có được đầu ra ở định dạng ISO 8601 , thay thế " TimeGenerated.ToString()" bằng " TimeGenerated.ToString("s")".
  • Có một bộ lọc thời gian tích hợp trong một lớp lót (chỉ bao gồm bắt đầu và tắt máy sau 2017-05-01). Thay đổi "2017-05-01" thành một thứ khác nếu cần khởi động và tắt máy cũ hơn.
  • Nếu đầu ra được yêu cầu theo thứ tự thời gian đảo ngược thì thay thế " Sort-Object" bằng " Sort-Object -Descending".
  • Vì nó sử dụng Get-EventLog, nó cũng sẽ hoạt động trên các phiên bản Windows cũ hơn.

Chỉ dẫn

Một lớp lót có thể được đặt trong một tập lệnh, nhưng sau đó các quyền phải được quan tâm trước khi nó hoạt động. Thay vào đó, cách dễ nhất là:

  1. Mở một dấu nhắc lệnh Windows: Window+ R, gõ CMDvà nhấn Enter.
  2. powershellvà bấm Enter. (Trên Windows 10, PowerShell có thể được mở trực tiếp bằng Window+ Xvà chọn "Windows PowerShell" )
  3. Sao chép một lớp lót vào bảng tạm.
  4. Dán trong một lớp lót: Alt+ SpaceChỉnh sửaDán (trên các phiên bản Windows mới hơn, Ctrl+ bình thường Vthực sự hoạt động trong cả hai cửa sổ CMD và PowerShell (cả hai đều chạy dưới conhost.exe)).
  5. nhấn Enter
  6. Đợi cho đến khi nó kết thúc (có thể mất khá nhiều thời gian, đặc biệt nếu đó là một bản cài đặt cũ của Windows).
  7. Kết quả có thể tìm thấy trong tập tin C:\temp2\_ComputerStartsAndStops.log.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.