如何确定Windows的最后重启时间?


Answers:


164

systeminfo命令几乎是您所需要的。在英语Windows 7上,您还可以执行以下操作:

systeminfo | find /i "Boot Time"

或在WMIC的帮助下:

wmic os get lastbootuptime

Windows 7和Windows XP之间的主要区别在于Windows 7 Microsoft仅显示最后一次启动时间。


同样在任务管理器中:

在此处输入图片说明


另外,是否有最后一次重置累积列表?
罗伊·纳米尔

2
@RoyiNamir:重启后会出现一些谷歌搜索列表(看起来非常相似):Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 }
m0nhawk 2012年

它是powershell .....?
罗伊·纳米尔

3
请注意,这systeminfo是本地化的。因此"Boot Time",仅适用于英文版Windows。
Markus Mitterauer '17

1
systeminfo | find /i "Systemstartzeit"对于德国人
舍特比

24

执行此操作的另一种方法是使用在Windows XP和Windows 7中都可以使用的以下命令行:

net statistics workstation

它的优点是systeminfo在格式化日期时(wmic不是这样)比其他方法更快。如果实际使用此命令调试计算机,您还将获得一些其他有用的信息(由于您是专门询问的cmd,因此我假设您不是以编程方式执行此操作)。

您可以在net statistics此处找到有关该命令的更多信息:http : //technet.microsoft.com/zh-cn/library/bb490714.aspx

这是结果的示例(使用Windows 7 Pro SP1 x64的法语副本,用户语言对于命令行没有多大关系):

例

(计算机名称有意模糊)


有关确定系统正常运行时间的准确性的更多信息,请访问http://en.wikipedia.org/wiki/Uptime


重要说明:此方法确定计算机的上次启动时间,而不是正常运行时间。如果您使用睡眠/休眠模式,这两个数字将有所不同。


知道为什么它与使用systeminfo或wmic读起来不一样...这可能可以忽略不计,但是在我的系统上相差2分钟以上
Anthony Shaw

我的计算机上也确实相差40秒。我不知道为什么它不完全相同,我猜该服务稍后会启动。对一些有趣的信息en.wikipedia.org/wiki/Uptime
DNLL

2
对于我来说,相差九个多月:-)这是唯一正确的答案。它提供了最后一次引导的实际日期戳(或引导后启动任何相关服务的时间,所以非常接近它),而wmicTask Manager systeminfo似乎都从当前时间倒数了PC的滴答数。运行。但是,如果像我一样使计算机大量进入睡眠(或休眠)状态,则实际总运行时间将比自上次启动以来的时间(在过去几个月中,本机仅30天)少得多。该计算完全。
卡梅伦

谢谢@cameron,我在回答的末尾添加了一条便条。最初的问题实际上是关于计算机何时启动而不是正常运行时间,因此这是一个重要的细节。维基百科确实在我链接的正常运行时间文章中提到了差异。
dnLL

这实际上不是最后的“启动”时间,而是服务器或工作站服务启动的时间,具体取决于您查询的是哪个统计信息。由于这些操作不会在常规Windows会话期间停止,因此很方便地近似了上次启动时间。
oldmud0

18

这是课程的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。您必须使用CSNamePSComputerName,这似乎对我有用。


20121217175810.414696+120我认为我需要该死的计算器来计算时间
Royi Namir 2012年

7
@Royi是的,WMI时间戳很愚蠢。这是CIM_DATETIME,这是标准要求的格式。它yyyymmddHHMMSS.mmmmmmsUUU采用24小时时间。在这里,您的最后一次重启时间是2012年12月17日下午5:58。 msdn.microsoft.com/en-us/library/windows/desktop/…–
培根钻头片,

1
使用get-wmiobject方法的方便之处是它也使获取远程计算机的启动时间变得微不足道。只需在命令中添加“ -computer <计算机名>”(在管道之前)
camster342

8

对于Windows 10用户....

Windows 10的系统属性-性能正常运行时间


1
这将向您显示正常运行时间(即系统运行了多长时间),而不是按OP要求启动系统的时间。
戴维·费伦茨·罗戈扬

1
是的,但这仍然有用。
tbc0

今天,我的Windows 10笔记本电脑显示出虚假的正常运行时间。昨晚我关闭了它,并在不到一个小时前将其打开电源,任务管理器说它已经达到5:19:40:10的状态。
tbc0

Windows 10在关闭时实际上并未关闭,我完全忘记了为什么。但是,如果要重置正常运行时间计时器,则必须重新启动。
丹尼尔·海斯

3

请注意,正如Alex所指出的,该/sleepstudy命令直到Windows 8.1才添加。/ systempowerreport可能可以代替。

请注意,这些其他答案中的某些对我从未有用,例如搜索事件日志总是缺少某些条目。在这方面,@ Florisz的答案也是正确的。这是我的解决方案:

在管理员cmd shell中,运行以下命令:

powercfg /sleepstudy /output sleepstudy.html

然后sleepstudy.html在浏览器中打开文件。最近三天,您将获得有关关机/重启/待机/休眠的惊人组织的统计信息。(因此,如果需要,请定期运行)

输出示例:(AFAIR,Showdown (Hybrid)表示快速启动)

在此处输入图片说明

来源/文档 | 也相关


1
这就是我在Windows 10上寻找的东西!我不重启,我通常会关机。LastBootTime仅指Windows 10上的重新引导
。– tbc0

2

在Windows 7上,我更喜欢

net statistics workstation

WMIC没有考虑睡眠时间,因此我将工作站在一周中的任何时候都保持睡眠状态,可以在第二天醒来。


2

批处理文件中的另一种获取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

展期:2017-03-08 07:37


1
如果包含对set BOOTTIME工作原理的解释,则此答案会更好。
CVn

2

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

在几乎任何版本的Windows上,您都可以检查交换文件上的时间戳。

目录/a:hc:\pagefile.sys


1
我不这么认为。至少在Windows 10上,当我检查时,交换文件时间比引导时间新。
tbc0


1

您可以为此使用PowerShell。

关掉


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

这将为您提供记录的关机时间列表。

备用命令,针对远程连接进行了更好的优化:

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

输出示例:

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

启动


以下命令将为您提供记录的启动时间列表。

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

备用命令,针对远程连接进行了更好的优化:

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

输出示例:

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

我已经在PowerShell 5.1和Windows 10.0.15063上对此进行了测试。但是,只要您至少具有PowerShell 3.0,它就也可以在Windows 7上运行。请注意,您需要以管理员身份运行它。

您可以在这里找到该命令的完整文档: docs.microsoft.com


在Windows 10上对我不起作用。甚至没有管理员身份。参见snag.gy/HcEn8j.jpg
tbc0

1

提到了几个答案net statistics workstation,我注意到两者都:

net statistics server

net statistics workstation

应该提供有关上次引导的数据Statistics since ...

但是,某些操作系统版本(例如Svr2008 / 6.0)将1/1/1980 12:00在使用时返回日期server。因此,我将默认设置为workstation

您也可以缩写一些类似的命令net stats workstation并获得相同的结果。最后,如果您从一个系统跳到另一个系统,则默认的CMD框不够大,无法显示该命令的所有结果。因此,我会将输出传递more给,以避免向上滚动以查看启动时间。因此,我的默认命令是:

net stats workstation | more

命令


1

我要补充一点,所有这些命令确实为您提供了完成“重新启动”或“重新引导”的时间戳。而不是在关机和启动完成后。关闭并启动后,“ lastbootuptime”将反映系统真正“重新启动”的时间,而不是实际的启动时间。因此,对于LastBootUpTime时间戳记,关闭/启动所产生的结果与从暂停/休眠中返回的结果相同。


0

与最大答案相同...

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%

...但在一个内衬中:

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%

这个wmi实现可能看起来有些混乱,但是与其他powershell或systeminfo实现相比,它的速度非常快,而且由于在代码中是显式的,因此您可以轻松更改格式。

谢谢麦克斯。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.