Làm thế nào tôi có thể tìm ra khi Windows được khởi động lại lần cuối?


105

Làm sao tôi biết khi máy tính chạy Windows 7 được khởi động lại lần cuối?

Tôi thích một giải pháp không liên quan đến việc tìm kiếm nhật ký sự kiện, nhưng một số thứ như wmichoặc có thể là cmdcác lệnh.

Câu trả lời:


164

systeminfolệnh gần như đúng những gì bạn cần. Trên tiếng Anh Windows 7 bạn cũng có thể làm:

systeminfo | find /i "Boot Time"

Hoặc với sự giúp đỡ của WMIC :

wmic os get lastbootuptime

Sự khác biệt chính giữa Windows 7 và Windows XP mà trong Windows 7 Microsoft chỉ có thể hiển thị thời gian khởi động lần cuối.


Cũng trong Trình quản lý tác vụ:

nhập mô tả hình ảnh ở đây


Ngoài ra, có bất kỳ danh sách tích lũy của s thiết lập lại cuối cùng ?
Royi Namir

2
@RoyiNamir: Với một số googling danh sách khởi động lại (trông rất giống):Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 }
m0nhawk

đó là quyền hạn .....?
Royi Namir

3
Hãy nhận biết rằng systeminfođược địa phương hóa. Vì vậy, điều "Boot Time"này chỉ đúng với các phiên bản tiếng Anh của Windows.
Markus Mitterauer

1
systeminfo | find /i "Systemstartzeit"cho tiếng Đức
schoetbi

24

Một cách khác để làm điều này là sử dụng dòng lệnh sau hoạt động cả trong Windows XP và Windows 7:

net statistics workstation

Nó có lợi thế là nhanh hơn so với systeminfothay thế trong khi định dạng ngày ( wmickhông có). Bạn cũng nhận được một vài thông tin khác có thể hữu ích nếu bạn thực sự sử dụng lệnh này để gỡ lỗi máy tính (vì bạn đang hỏi cụ thể cmd, tôi cho rằng bạn không làm việc này theo chương trình).

Bạn có thể tìm thêm thông tin về net statisticslệnh tại đây: http://technet.microsoft.com/en-us/l Library / bb490714.aspx

Dưới đây là ví dụ về kết quả (sử dụng bản sao tiếng Pháp của Windows 7 Pro SP1 x64, ngôn ngữ người dùng không quan trọng lắm đối với dòng lệnh):

thí dụ

(tên máy tính bị làm mờ đi)


Thêm chi tiết về http://en.wikipedia.org/wiki/Uptime về độ chính xác khi xác định thời gian hoạt động của hệ thống.


Lưu ý quan trọng : phương pháp này xác định khi máy tính được khởi động lần cuối, không phải thời gian hoạt động. 2 số sẽ khác nhau nếu bạn sử dụng chế độ ngủ / ngủ đông.


bất kỳ ý tưởng nào tại sao điều này không đọc giống như sử dụng systeminfo hoặc wmic ... nó có thể không đáng kể, nhưng nó khác với hệ thống của tôi hơn 2 phút
Anthony Shaw

Nó cũng khác nhau trong 40 giây trên máy tính của tôi. Tôi không biết tại sao nó không giống hệt nhau, tôi đoán dịch vụ chỉ khởi động một chút sau đó. Một số thông tin thú vị trên en.wikipedia.org/wiki/Uptime
dnLL

2
Nó khác với hơn chín tháng đối với tôi :-) Đây là câu trả lời đúng duy nhất. Nó cung cấp dấu thời gian thực tế của lần khởi động cuối cùng (hoặc khi bất kỳ dịch vụ nào được liên kết bắt đầu sau khi khởi động, rất gần với nó), trong khi đó wmic, Trình quản lý tác vụ và systeminfotất cả dường như đếm ngược từ thời điểm hiện tại theo số lần đánh dấu của PC đang chạy. Nhưng nếu bạn đặt máy tính của bạn ngủ (hoặc ngủ đông) rất nhiều, như tôi làm, tổng thời gian chạy thực tế ít hơn nhiều so với thời gian kể từ lần khởi động cuối cùng (chỉ ba mươi ngày trong trường hợp của tôi trong vài tháng qua), hãy bỏ đi Tính toán đó hoàn toàn.
Cameron

Cảm ơn bạn @cameron, tôi đã thêm một ghi chú vào cuối câu trả lời của tôi. Câu hỏi ban đầu thực sự là khi máy tính khởi động và không hoạt động, vì vậy đó là một chi tiết quan trọng. Wikipedia phần nào đề cập đến sự khác biệt trong bài báo thời gian hoạt động mà tôi liên kết.
dnLL

Đó thực sự không phải là lần "khởi động" cuối cùng - đó là thời gian mà dịch vụ Máy chủ hoặc Máy trạm bắt đầu, tùy thuộc vào việc bạn truy vấn số liệu thống kê nào. Vì những điều này không bao giờ dừng lại trong một phiên Windows thông thường, nên đó là khoảng thời gian khởi động gần nhất thuận tiện.
oldmud0

18

LastBootUpTimetài sản của Win32_OperatingSystemlớp. Bạn có thể sử dụng WMIC với lệnh này:

wmic os get lastbootuptime

Hoặc nếu bạn sử dụng Powershell, bạn có thể chuyển đổi thời gian thành thứ gì đó dễ đọc hơn định dạng thời gian WMI phiền phức đó:

Get-WmiObject -class Win32_OperatingSystem | Select-Object  __SERVER,@{label='LastBootUpTime';expression={$_.ConvertToDateTime($_.LastBootUpTime)}}

Lưu ý rằng trong các phiên bản sau của PowerShell, bạn cũng có thể sử dụng Get-CimInstance, nó sẽ tự động trả về giá trị dưới dạng datetime:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

Điều khó chịu duy nhất là đôi khi Get-CimInstance sẽ thay đổi tên của một số trường hệ thống từ các đối tượng WMI, chẳng hạn như __SERVER tại đây. Bạn sẽ phải sử dụng một trong hai CSNamehoặc PSComputerName, dường như làm việc cho tôi.


20121217175810.414696+120Tôi nghĩ rằng tôi cần máy tính tốt chết tiệt để tính thời gian
Royi Namir

7
@Royi Vâng, dấu thời gian của WMI thật ngu ngốc. Đó là một CIM_DATETIMEđịnh dạng theo yêu cầu của tiêu chuẩn. Đó là yyyymmddHHMMSS.mmmmmmsUUU, sử dụng thời gian 24 giờ. Tại đây, thời gian khởi động lại cuối cùng của bạn là ngày 17 tháng 12 năm 2012 lúc 5:58 chiều. msdn.microsoft.com/en-us/l Library / windows / desktop / trộm
Bacon Bits

1
Phần thưởng tiện dụng của việc sử dụng phương thức get-wmiobject là nó giúp cho việc nhận thời gian khởi động của các máy tính từ xa trở nên tầm thường. Chỉ cần thêm "-computer <computername>" vào lệnh (trước đường ống)
camster342

8

Dành cho người dùng Windows 10 ngoài kia ....

Thuộc tính hệ thống Windows 10 - Hiệu suất Thời gian lên


1
Điều này cho bạn thấy thời gian hoạt động (tức là thời gian hệ thống chạy) không phải là lúc hệ thống đã được khởi động như OP yêu cầu.
Dawid Ferenczy Rogožan

1
Đúng, nhưng điều này vẫn hữu ích.
tbc0

Hôm nay máy tính xách tay Windows 10 của tôi đang hiển thị thời gian hoạt động không có thật. Tôi đã tắt nó đêm qua, cấp nguồn cho nó chưa đầy một giờ trước và Trình quản lý tác vụ nói rằng nó đã hoạt động trong 5: 19: 40: 10.
tbc0

Windows 10 không thực sự tắt khi tắt, tôi quên tại sao chính xác. Tuy nhiên, nếu bạn muốn thiết lập lại thời gian hoạt động, bạn phải khởi động lại.
Daniel Hayes

3

Xin lưu ý rằng như được chỉ ra bởi Alex , /sleepstudylệnh không được thêm cho đến Windows 8.1. / systempowerreport có thể hoạt động thay thế.

Lưu ý rằng một số câu trả lời khác không bao giờ có hiệu quả đối với tôi, chẳng hạn như tìm kiếm nhật ký sự kiện luôn thiếu một số mục. Câu trả lời của @ Florisz cũng đúng trong vấn đề đó. Đây là giải pháp của tôi:

Trong shell cmd của quản trị viên, hãy chạy lệnh sau:

powercfg /sleepstudy /output sleepstudy.html

Sau đó mở tệp sleepstudy.htmltrong trình duyệt. Bạn sẽ được chào đón với các số liệu thống kê đáng kinh ngạc về tắt máy / khởi động lại / chờ / ngủ đông từ ba ngày qua . (vì vậy, hãy chạy định kỳ nếu bạn cần)

Một ví dụ về đầu ra: (AFAIR, Showdown (Hybrid)có nghĩa là khởi động nhanh)

nhập mô tả hình ảnh ở đây

Nguồn / Tài liệu | Cũng liên quan


1
Đây là những gì tôi đang tìm kiếm trên Windows 10! Tôi không khởi động lại, tôi thường tắt máy. LastBootTime chỉ đề cập đến việc khởi động lại trên Windows 10.
tbc0

2

Trên Windows 7 tôi thích

net statistics workstation

WMIC không tính đến thời gian ngủ và tôi để máy trạm của mình bị khóa khi ngủ làm việc trong tuần, sẵn sàng thức dậy vào ngày hôm sau.


2

còn một cách khác trong một tệp bó để có thời gian khởi động với wmic nhưng ở dạng người có thể đọc được:

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2%  %DTS:~8,2%:%DTS:~10,2%
echo DTS      : %DTS%
echo BOOTTIME :%BOOTTIME%

đầu ra:

DTS: 20170308073729.491206 + 060

BOOTTIME: 2017 / 03-08 07:37


1
Câu trả lời này sẽ tốt hơn nếu nó bao gồm một lời giải thích về cách thức set BOOTTIMEhoạt động.
CVn

2

Để tải nó trong PowerShell:

Function Get-LastBoot {
        if ($Host.Version.Major -lt 3) {
            Get-WmiObject win32_operatingsystem | Select-Object CSname, @{n = 'LastBootUpTime'; e = {$_.ConverttoDateTime($_.lastbootuptime)}}
        }
        else {
            Get-CimInstance -ClassName win32_operatingsystem | Select-Object CSname, LastBootUpTime
        }
    }

Đây là kết quả:

CSname  LastBootUpTime
------  --------------
LAPTOP1 2018-09-07 08:57:02

1

Trên bất kỳ phiên bản windows nào, bạn có thể kiểm tra dấu thời gian trên tệp hoán đổi.

thư mục /a:hc:\pagefile.sys


1
Tôi không nghĩ vậy. Ít nhất là trên Windows 10, khi tôi kiểm tra, thời gian tệp hoán đổi mới hơn thời gian khởi động.
tbc0


1

Bạn có thể sử dụng PowerShell cho việc này.

Tắt


Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 200 }

Điều này sẽ cung cấp cho bạn một danh sách thời gian tắt máy đăng nhập.

Lệnh thay thế, được tối ưu hóa tốt hơn cho các kết nối từ xa:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 200; }

Ví dụ đầu ra:

TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
2017-01-28 18:25:46            200 Critical         Windows has shutdown
2016-11-01 19:55:21            200 Error            Windows has shutdown
2016-10-29 00:18:38            200 Critical         Windows has shutdown
2016-10-26 23:16:55            200 Warning          Windows has shutdown
2016-10-26 15:37:40            200 Warning          Windows has shutdown
2016-10-26 02:18:24            200 Warning          Windows has shutdown
2016-10-26 02:10:34            200 Warning          Windows has shutdown
2016-10-26 02:04:01            200 Warning          Windows has shutdown
2016-10-25 14:23:11            200 Warning          Windows has shutdown
2016-10-25 13:07:46            200 Error            Windows has shutdown
2016-10-25 00:18:12            200 Error            Windows has shutdown
2016-10-19 13:16:39            200 Critical         Windows has shutdown

Khởi nghiệp


Lệnh sau sẽ cung cấp cho bạn một danh sách thời gian khởi động được ghi lại.

Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 100}

Lệnh thay thế, được tối ưu hóa tốt hơn cho các kết nối từ xa:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 100; }

Ví dụ đầu ra:

TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
2017-10-07 21:35:38            100 Critical         Windows has started up
2017-01-28 18:25:48            100 Critical         Windows has started up
2016-12-11 17:45:07            100 Critical         Windows has started up
2016-11-16 13:26:52            100 Critical         Windows has started up
2016-11-01 19:55:21            100 Critical         Windows has started up
2016-10-29 00:18:39            100 Critical         Windows has started up
2016-10-26 23:16:55            100 Error            Windows has started up
2016-10-26 14:51:07            100 Error            Windows has started up
2016-10-26 02:24:01            100 Error            Windows has started up
2016-10-26 02:18:24            100 Critical         Windows has started up
2016-10-26 02:10:34            100 Error            Windows has started up
2016-10-26 02:04:01            100 Critical         Windows has started up
2016-10-25 14:23:12            100 Error            Windows has started up
2016-10-25 13:07:47            100 Error            Windows has started up
2016-10-25 12:56:23            100 Error            Windows has started up
2016-10-19 13:16:39            100 Critical         Windows has started up

Tôi đã thử nghiệm điều này trên PowerShell 5.1 và Windows 10.0.15063. Nhưng nó cũng hoạt động trên Windows 7, miễn là bạn có ít nhất PowerShell 3.0. Lưu ý rằng bạn cần chạy nó với tư cách quản trị viên.

Bạn sẽ tìm thấy tài liệu đầy đủ cho lệnh ở đây: docs.microsoft.com


Không làm việc cho tôi trên Windows 10. Thậm chí không phải là quản trị viên. Xem snag.gy/HcEn8j.jpg
tbc0

1

Một vài câu trả lời đề cập net statistics workstationvà tôi đã lưu ý rằng cả hai:

net statistics server

net statistics workstation

nên cung cấp dữ liệu liên quan đến lần khởi động cuối cùng trên Statistics since ...dòng.

Tuy nhiên, một số phiên bản HĐH (như Svr2008 / 6.0) sẽ trở lại 1/1/1980 12:00vào ngày khi sử dụng server. Vì vậy, tôi sẽ mặc định workstation.

Ngoài ra, bạn có thể viết tắt một số lệnh như net stats workstationvà nhận được kết quả tương tự. Cuối cùng, nếu bạn nhảy từ hệ thống này sang hệ thống khác, hộp CMD mặc định không đủ lớn để hiển thị tất cả kết quả từ lệnh. Vì vậy, tôi sẽ dẫn đầu ra moređể tránh cuộn lên để xem thời gian khởi động. Do đó, lệnh mặc định của tôi là:

net stats workstation | more

chỉ huy


1

Tôi muốn thêm, rằng tất cả các lệnh này thực sự cung cấp cho bạn dấu thời gian khi thực hiện 'khởi động lại' hoặc 'khởi động lại'. Và không phải khi tắt máy và bắt đầu. Sau khi tắt máy và bắt đầu 'Lastbootuptime' sẽ phản ánh thời gian hệ thống thực sự được 'khởi động lại' chứ không phải thời gian khởi động thực tế. Vì vậy, tắt / bắt đầu cho kết quả tương tự như quay trở lại từ đình chỉ / hybernnate cho dấu thời gian LastBootUpTime.


0

Giống như câu trả lời Max ...

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2%  %DTS:~8,2%:%DTS:~10,2%
echo DTS      : %DTS%
echo BOOTTIME :%BOOTTIME%

... nhưng trong oneliner:

for /f %a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%a && echo %DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%

Việc triển khai wmi này có thể hơi lộn xộn nhưng nó rất nhanh so với các triển khai powershell hoặc systeminfo khác và bạn có thể dễ dàng thay đổi định dạng vì nó rõ ràng trong mã.

Cảm ơn bạn Max.

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.