Lịch sử khởi động / tắt máy chủ Windows


87

Làm cách nào tôi có thể dễ dàng xem lịch sử mỗi khi Windows Server của tôi khởi động lại hoặc tắt máy và lý do tại sao, bao gồm cả do người dùng khởi tạo, khởi tạo hệ thống và hệ thống bị sập?

Nhật ký sự kiện Windows là một câu trả lời rõ ràng nhưng danh sách đầy đủ các sự kiện mà tôi nên xem là gì?

Tôi tìm thấy những bài viết mà một phần trả lời câu hỏi của tôi:

nhưng những điều đó không bao gồm mọi kịch bản AFAIK và thông tin này rất khó hiểu vì nó được trải rộng trên nhiều câu trả lời.

Tôi có một số phiên bản Windows Server vì vậy một giải pháp hoạt động cho ít nhất các phiên bản 2008, 2008 R2, 2012 và 2012 R2 sẽ là lý tưởng.


1
Trong một số trường hợp, TurnedOnTimesView của Nirsoft có thể đủ tốt. ( nirsoft.net/utils/computer_turned_on_times.html ) nó hiển thị thời gian khởi động lại và tắt máy.
Peter Hahndorf

Bạn có sử dụng một công cụ giám sát bên ngoài, .eg, opsview, nagios, icinga, shinken? Các công cụ này lưu trữ kết quả giám sát trong cơ sở dữ liệu và sau đó bạn có thể kiểm tra xem máy chủ có được khởi động lại không và khi nào,
030

Câu trả lời:


100

Câu trả lời ngắn gọn rõ ràng nhất mà tôi có thể tìm thấy là:

trong đó liệt kê các id sự kiện này để theo dõi (trích dẫn nhưng được chỉnh sửa và định dạng lại từ bài viết):

  • ID sự kiện 6005 ( thay thế ): Hiện dịch vụ nhật ký sự kiện đã được bắt đầu. Đây là từ đồng nghĩa với khởi động hệ thống.
  • ID sự kiện 6006 ( thay thế ): Hiện dịch vụ nhật ký sự kiện đã bị dừng. Đây là đồng nghĩa với việc tắt hệ thống.
  • ID sự kiện 6008 ( thay thế ): "Việc tắt hệ thống trước đó là bất ngờ." Hồ sơ rằng hệ thống bắt đầu sau khi nó không được tắt đúng cách.
  • ID sự kiện 6009 ( thay thế ): Cho biết tên sản phẩm Windows, phiên bản, số bản dựng, số gói dịch vụ và loại hệ điều hành được phát hiện khi khởi động.
  • ID sự kiện 6013: Hiển thị thời gian hoạt động của máy tính. Không có trang TechNet cho id này.

Thêm vào đó một vài chi tiết từ các câu trả lời Lỗi Máy chủ được liệt kê trong OP của tôi:

  • ID sự kiện 1074 ( thay thế ): "Quá trình X đã bắt đầu khởi động lại / tắt máy tính thay cho người dùng Y vì lý do sau: Z." Cho biết rằng một ứng dụng hoặc người dùng đã khởi động khởi động lại hoặc tắt máy.
  • ID sự kiện 1076 ( thay thế ): "Lý do được cung cấp bởi người dùng X cho lần tắt máy bất ngờ cuối cùng của máy tính này là: Y." Ghi lại khi người dùng đầu tiên có đặc quyền tắt máy đăng nhập vào máy tính sau khi khởi động lại hoặc tắt máy đột xuất và đưa ra lý do cho sự cố này.

Tôi đã bỏ lỡ bất kỳ?


3
Để phân biệt giữa mất điện và khởi động lại do kiểm tra lỗi, hãy tìm sự kết hợp của ID sự kiện 41 (nguồn: Microsoft-Windows-Kernel-Power) và ID sự kiện 1001: (nguồn: BugCheck). Cái trước không có cái sau cho thấy mất điện hoặc thiết lập lại.
sendmoreinfo

4
Điều này rất hữu ích. Cảm ơn bạn John. Trong trường đầu vào Bao gồm / Không bao gồm ID sự kiện trong cửa sổ Nhật ký bộ lọc hiện tại, tôi đã nhập "6005, 6006, 6008, 6009, 6013, 1074, 1076" và nó cung cấp cho tôi chính xác những gì tôi cần.
joey

1
Có lẽ bạn nên thêm Kernel-Generalbằng eventid12 , thường là sự kiện đầu tiên được ghi lại sau khi khởi động lại / thiết lập lại, v.v. và hiển thị "thời gian bắt đầu hệ thống" thực tế, tức là: "Hệ điều hành bắt đầu vào thời gian hệ thống 2017 - 09 - 19T02: 46: 06.582794900Z. "
Abel

Các liên kết trong câu trả lời này đã bị hỏng
Tim Schmelter

1
Tôi tìm kiếm nhưng không tìm thấy tài liệu Microsoft hiện tại về mã nhật ký sự kiện vì vậy tôi đã tạo một vấn đề trong github của Microsoft Docs để thu thập lời khuyên / sự đồng thuận về nơi khôi phục nội dung này trong chế độ tài liệu MS mới, github.com/MicrosoftDocs/windowsserverdocs/issues / 444 . @ tim-schmelter vui lòng upvote và thêm suy nghĩ của bạn.
JohnC

4

Tôi chỉ đơn giản là để lại nhận xét này vì JohnC về cơ bản đã bao gồm mọi thứ, nhưng tôi chưa được phép làm như vậy.

Các sự kiện anh mô tả đã được sử dụng trong một thời gian dài, vì vậy chúng sẽ hoạt động cho bất kỳ HĐH nào mà bạn đề cập, cũng như anh em máy tính để bàn của họ. Các trang ID sự kiện mà anh ấy liên kết đến, chẳng hạn như trang 6006 trên TechNet, đề cập đến Windows Server 2003.

Nếu có một sự tắt máy thanh lịch, người dùng đã bắt đầu hoặc nếu không, bạn cũng sẽ thấy một số ID sự kiện 7036 cho bạn biết rằng các dịch vụ khác nhau "đã vào trạng thái dừng". Khi máy khởi động lại, bạn sẽ thấy thêm 7036 thông báo rằng các dịch vụ đang ở trạng thái hoạt động.


2
Bạn cũng sẽ thấy một khối lớn sự kiện ID 7036 nếu một dịch vụ liên tục chuyển sang trạng thái, vì vậy đó không phải là cách tốt nhất để tìm kiếm khởi động lại. Trước tiên, bạn nên tìm kiếm các sự kiện được mô tả bởi JohnC.
JTL

3

Dựa trên câu trả lời của @JohnC và mở rộng nó

Bạn có thể sử dụng bộ lọc XML như:

<QueryList>
<Query Id="0" Path="System">
<Select Path="Security">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="Setup">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Thermal-Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='User32'] and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-WER-SystemErrorReporting'] and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
</Query>
</QueryList>

Bạn có thể thay thế 172800000 bằng các giá trị dưới đây cho phạm vi thời gian:

86400000 - 24 giờ qua

172800000 - 2 ngày qua

604800000 - 7 ngày qua

Điều này sẽ hiển thị nhiều chi tiết hơn kể từ thời điểm máy chủ / pc hoạt động ngoại tuyến. Nó bao gồm các sự kiện Kernel-Power, User32 và EventLog.


2

Tôi thích hoàn thành các hoạt động từ dòng lệnh. Đây là sự khởi đầu của một đoạn bạn có thể tận dụng. Điều này cho thấy 30.000 bản ghi hệ thống gần đây nhất và trả về các lần khởi động lại trong các bản ghi đó.

Get-EventLog -LogName System -Newest 30000 | Where-Object {$_.EventID -eq 6005}
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.