題 如何找到Windows上次重啟的時間?


我怎麼知道上次運行Windows 7的計算機上次重啟的時間?

我更喜歡不涉及搜索事件日誌的解決方案,但更像是 wmic 或者可能 cmd 命令。


97
2017-12-24 14:24


起源




答案:


systeminfo 命令幾乎是你所需要的。在英語Windows 7上,您還可以:

systeminfo | find /i "Boot Time"

或者在...的幫助下 WMIC

wmic os get lastbootuptime

Windows 7和Windows XP之間的主要區別在於Windows 7 Microsoft只能顯示上次啟動時間。


也在任務管理器中:

enter image description here


153
2017-12-24 14:32



此外,是否有任何累積的上次重置列表小號 ? - Eris
@RoyiNamir:有些人 谷歌搜索 重新啟動列表(看起來非常相似): Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 } - m0nhawk
它是powershell .....? - Eris
您還可以在事件查看器中查看列表,如下所示: howtogeek.com/72420/...  我相信你可以用PowerShell來查詢 Get-WinEvent 但我根本沒有調查過。 - Bacon Bits
意識到 systeminfo 是本地化的。所以 "Boot Time" 僅適用於英文版Windows。 - Markus Mitterauer


另一種方法是使用以下命令行,它在Windows XP和Windows 7中都有效:

net statistics workstation

它具有比速度更快的優點 systeminfo 格式化日期時的替代方案(其中 wmic 才不是)。如果您實際使用此命令來調試計算機,您還可以獲得一些其他有用的信息(因為您特別要求 cmd,我假設你不是以編程方式做這個。

你可以找到更多的信息 net statistics 命令在這裡: http://technet.microsoft.com/en-us/library/bb490714.aspx

以下是結果示例(使用Windows 7 Pro SP1 x64的法語版本,用戶語言對命令行無關緊要):

example

(計算機名稱故意模糊)


更多細節 http://en.wikipedia.org/wiki/Uptime 關於確定係統正常運行時間的準確性。


重要的提示:此方法確定計算機上次啟動的時間,而不是其正常運行時間。如果您使用sleep / hibernate,則2個數字將不同。


19
2017-12-09 15:34



任何想法為什麼這與使用systeminfo或wmic不一樣...它可能是微不足道的,但它在我的系統上有所不同超過2分鐘 - Anthony Shaw
它在我的電腦上也有40秒的不同。我不知道為什麼它不完全一樣,我想這個服務只是稍微開始了。一些有趣的信息 en.wikipedia.org/wiki/Uptime - dnLL
它與我的相差超過九個月:-)這是唯一正確的答案。它給出了上次啟動的實際日期戳(或者在啟動後啟動任何相關服務時,非常接近它),而 wmic,任務管理器,和 systeminfo 所有這些似乎都是從當前時間向後計算PC運行的滴答數。但是,如果你讓你的計算機像我一樣睡覺(或休眠),實際總數 賽跑 時間遠遠少於自上次啟動以來的時間(在我的情況下,過去幾個月只有30天),完全放棄了這個計算。 - Cameron
謝謝@cameron,我在答案結尾處添加了一個註釋。最初的問題是關於計算機何時啟動而不是正常運行時間,因此這是一個重要的細節。維基百科確實提到了我鏈接的正常運行時間文章中的差異。 - dnLL
這不是真正的最後“啟動”時間 - 它是服務器或工作站服務啟動的時間,取決於您查詢統計信息的時間。由於這些在常規Windows會話期間永遠不會停止,因此它很方便地接近上次啟動時間。 - oldmud0


LastBootUpTime 的財產 Win32_OperatingSystem 類。您可以使用此命令使用WMIC:

wmic os get lastbootuptime

或者,如果您使用Powershell,您可以將時間轉換為比惱人的WMI日期時間格式更可讀的內容:

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

請注意,在PowerShell的更高版本中,您還可以使用Get-CimInstance,它將自動將值作為日期時間返回:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

唯一令人惱火的是,Get-CimInstance有時會從WMI對象更改某些系統字段的名稱,例如__SERVER。你必須使用其中之一 CSName 要么 PSComputerName,這似乎對我有用。


17
2017-12-24 14:41



20121217175810.414696+120 我想我需要很好的計算器來計算時間 - Eris
@Royi是的,WMI時間戳是愚蠢的。它是 CIM_DATETIME,這是標準要求的格式。它的 yyyymmddHHMMSS.mmmmmmsUUU,使用24小時的時間。在這裡,您的上次重啟時間是2012年12月17日下午5:58。 msdn.microsoft.com/en-us/library/windows/desktop/... - Bacon Bits
使用get-wmiobject方法的方便之處在於它也使獲得遠程計算機的啟動時間變得微不足道。只需在命令中添加“-computer <computername>”(在管道之前) - camster342


對於那裡的Windows 10用戶....

System Properties Windows 10 - Performance Up time


6
2018-03-28 13:19



這告訴你 運行時間 (即係統運行多長時間)不是OP詢問系統啟動的時間。 - Dawid Ferenczy
沒錯,但這仍然有用。 - tbc0
今天我的Windows 10筆記本顯示出虛假的正常運行時間。我昨晚把它關閉了,不到一個小時前開機,而任務經理說這是5:19:40:10。 - tbc0
Windows 10在關閉時實際上並沒有關閉,我完全忘記了原因。但是,如果要重置正常運行時間計時器,則必須重新啟動。 - Daniel Hayes


在Windows 7上我更喜歡

net statistics workstation

WMIC沒有考慮睡眠時間,我讓我的工作站在一周內工作時處於睡眠狀態,準備在第二天醒來。


2
2017-07-08 20:41





批量文件中的另一種方式是使用wmic以人類可讀的形式獲取啟動時間:

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%

輸出:

DTS:20170308073729.491206 + 060

BOOTTIME:2017-03-08 07:37


2
2018-05-24 20:46



如果它包含對如何解釋的答案會更好 set BOOTTIME 作品。 - α CVn


幾乎任何版本的Windows都可以檢查交換文件的時間戳。

dir / a:h c:\ pagefile.sys


1
2017-07-25 15:12



我不這麼認為。至少在Windows 10上,當我檢查時,交換文件時間比啟動時間更新。 - tbc0


來自類似的ServerFault問題,搜索/過濾Windows系統事件日誌以獲取事件ID 6009

在Windows 10上: Event Viewer > Windows Logs > System 然後是 Filter Current Log... 行動。


1
2017-07-17 18:08





我想補充一點,所有這些命令在“重啟”或“重啟”完成時真正給你時間戳。而不是在關閉和啟動完成時。關閉並啟動後,'lastbootuptime'將反映系統真正“重新啟動”的時間,而不是實際的啟動時間。 因此,shutdown / start與從suspend / hybernnate返回LastBootUpTime時間戳的結果相同。


1
2017-08-17 11:38





要在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
        }
    }

這是結果:

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

1
2017-09-12 14:34





請注意,正如所指出的那樣 亞歷克斯 該 /sleepstudy 在Windows 8.1之前未添加命令。 / systempowerreport 可能會工作。

請注意,其他一些答案從來沒有對我有用,例如搜索事件日誌總是缺少一些條目。 @ Florisz的回答在這方面也是正確的。這是我的解決方案:

在管理員cmd shell中,運行以下命令:

powercfg /sleepstudy /output sleepstudy.html

然後打開文件 sleepstudy.html 在瀏覽器中。您將收到有關關閉/重啟/待機/休眠的驚人組織統計數據 過去三天。 (如果需要,定期運行)

輸出的一個例子:(AFAIR, Showdown (Hybrid) 意味著快速啟動)

enter image description here

來源/文件 | 也有關係


1
2017-08-21 07:51



這就是我在Windows 10上尋找的東西!我沒有重啟,我通常關機。 LastBootTime僅指Windows 10上的重新啟動。 - tbc0