如何在Windows中获取系统运行时间?

344

我正在使用Windows 7和XP操作系统。我想了解系统的运行时间。

如何获取系统运行时间?请提供命令/步骤。


5
你在寻找命令提示符中的某个命令吗?如果是的话,可以在命令提示符中尝试输入net statistics server - s0d4pop
15
好的,请提供需要翻译的内容。 - 000
1
如何从命令行检索系统状态信息与编程密切相关。 - John
此问题已在ServerFault上得到解答:http://serverfault.com/questions/159612/windows-server-last-reboot-time - user565869
1
如果您对待机/休眠也感兴趣,可以参考http://superuser.com/a/909172/33303。 - Janus Troelsen
显示剩余3条评论
3个回答

763

以下是在Windows操作系统中找到Uptime的八种方法:

1:通过使用任务管理器

在Windows Vista和Windows Server 2008中,任务管理器已被加强以显示有关系统的附加信息。其中一项信息是服务器的运行时间。

  1. 右键单击任务栏,然后单击“任务管理器”。您也可以单击CTRL+SHIFT+ESC来打开任务管理器。
  2. 在任务管理器中,选择“性能”选项卡。
  3. 当前系统的正常运行时间显示在“系统”或“性能⇒ CPU”下(适用于Win 8/10)。

    "Up Time" field in Task Manager

2:通过使用系统信息实用程序

systeminfo命令行实用程序检查并显示各种系统统计信息,例如安装日期、安装的热修复程序等。打开命令提示符并键入以下命令:

systeminfo

您还可以将结果缩小到您需要的那一行:

systeminfo | find "System Boot Time:"

enter image description here

3:使用Uptime实用程序

微软发布了一个名为Uptime.exe的工具。它是一个简单的命令行工具,分析计算机的可靠性和可用性信息。它可以在本地或远程工作。在其简单形式下,该工具将显示当前系统的正常运行时间。高级选项允许您访问更详细的信息,例如关闭、重新启动、操作系统崩溃和服务包安装。

阅读以下KB获取更多信息和下载链接:

要使用它,请按照以下步骤操作:

  1. 从上面的链接中下载uptime.exe,并将其保存到文件夹中,最好是系统路径中的一个(例如SYSTEM32)。
  2. 打开提升的命令提示符窗口。要打开提升的命令提示符,请单击“开始”,单击“所有程序”,单击“附件”,右键单击“命令提示符”,然后单击“以管理员身份运行”。也可以在“开始”菜单的搜索框中键入CMD,当您看到命令提示符图标时,单击它选择它,然后按住CTRL+SHIFT并按ENTER
  3. 导航到您放置uptime.exe实用程序的位置。
  4. 运行uptime.exe实用程序。 您可以在命令中添加/?以获取更多选项。 enter image description here

它不提供许多命令行参数:

C:\uptimefromcodeplex\> uptime /?
usage: Uptime [-V]
    -V   display version

C:\uptimefromcodeplex\> uptime -V
version 1.1.0

3.1:使用旧版Uptime Utility

有一个旧版本的“uptime.exe”实用程序。它的优点是不需要.NET(它还有比简单的运行时间更多的功能。)

下载链接:Windows NT 4.0 Server Uptime工具(uptime.exe)(最终x86版本)

C:\uptimev100download>uptime.exe /?

UPTIME, Version 1.00
(C) Copyright 1999, Microsoft Corporation

Uptime [server] [/s ] [/a] [/d:mm/dd/yyyy | /p:n] [/heartbeat] [/? | /help]
        server          Name or IP address of remote server to process.
        /s              Display key system events and statistics.
        /a              Display application failure events (assumes /s).
        /d:             Only calculate for events after mm/dd/yyyy.
        /p:             Only calculate for events in the previous n days.
        /heartbeat      Turn on/off the system's heartbeat
        /?              Basic usage.
        /help           Additional usage information.

4: 使用NET STATISTICS实用程序

另一种简单的方法,如果您能记住它,就是使用NET STATISTICS命令显示的统计信息中找到的近似信息。打开命令提示符并键入以下命令:

net statistics workstation

统计数据应该告诉你系统运行了多久,但在某些情况下,这些信息可能不如其他方法准确。

enter image description here

5:使用事件查看器

这可能是所有方法中最准确的一种,但需要点击操作。它不显示从上次重新启动以来的确切天数或小时数,但会显示有关计算机何时以及为什么重新启动的重要信息。我们需要查看事件ID 6005,这是一个事件,告诉我们计算机刚刚完成启动,但您应该意识到,实际上有成百上千种其他事件类型可以学习。

注意:顺便提一下,6006事件ID可以告诉我们服务器何时关闭,因此如果6006和6005事件之间有很长时间差,那么服务器已经关闭了很长时间。

注意:您还可以通过在“运行”命令中键入eventvwr.msc来打开事件查看器,也可以使用管理工具文件夹中找到的快捷方式。

  1. 单击左侧导航窗格中的“事件查看器(本地)”。
  2. 在中间面板中,单击“信息”事件类型,并向下滚动直到看到事件ID 6005。双击6005事件ID或右键单击并选择“查看此事件的所有实例”。
  3. 将显示6005事件ID的所有实例列表。您可以检查此列表,查看每个重新启动事件的日期和时间等信息。
  4. 通过右键单击开始菜单上的计算机图标(或桌面上如果启用了的话)并选择管理,打开服务器管理工具。导航至事件查看器。

enter image description here

5.1:使用PowerShell访问事件日志

Get-WinEvent -ProviderName eventlog | Where-Object {$_.Id -eq 6005 -or $_.Id -eq 6006}

6:通过使用GetTickCount64的程序方式

GetTickCount64检索自系统启动以来经过的毫秒数。

7:通过使用WMI

wmic os get lastbootuptime

8:适用于 Windows XP 及以上操作系统的新版 uptime.exe

这个 uptime 实用程序 不仅兼容于微软的工具,而且还支持包括 Windows 10 和 Windows Server 2016 在内的所有操作系统。此外,它不需要提升的命令提示符,并提供了在 DD:HH:MM:SS 和人类可读格式中显示正常运行时间的选项(当使用 -h 命令行参数执行时)。

此外,这个版本的 uptime.exe 即使从普通的 explorer.exe 会话中启动(即不通过命令行启动),也可以运行并显示系统正常运行时间,并暂停以便读取:

enter image description here

当执行为 uptime -h 时:

enter image description here


2
  1. WMI:wmic os get lastbootuptime
- ded'
3
Windows XP / 2003的注意事项:
  1. 不可用(任务管理器中不会显示)
  2. 可能不包括启动时间(在我的电脑上是这样),但与后来的Windows systeminfo输出相反,它会显式地显示运行时间。
请注意,systeminfo输出是本地化的,因此在非英语版本的Windows上,您需要相应地更改“System boot time”,或者只需运行systeminfo并检查整个输出即可。
- FelixD
58
那才是我所说的一个彻底的答案! :-) - Andrew Steitz
2
请注意,“1:通过使用任务管理器”报告的正常运行时间可能与启动时间不同,因为它不包括休眠状态下的时间。例如,我的电脑两天前启动,但仅报告了8小时20分钟的正常运行时间。 - user1708042
3
在Windows 8任务管理器中,选项1似乎再次消失了。 - BlaM
显示剩余9条评论

17

我使用这个小的PowerShell代码片段:

function Get-SystemUptime {
    $operatingSystem = Get-WmiObject Win32_OperatingSystem
    "$((Get-Date) - ([Management.ManagementDateTimeConverter]::ToDateTime($operatingSystem.LastBootUpTime)))"
}

然后就会得到类似下面的东西:

PS> Get-SystemUptime
6.20:40:40.2625526

如何在Windows上从Python中调用此PowerShell? - Ciasto piekarz
@Ciastopiekarz:https://dev59.com/questions/q2Uq5IYBdhLWcg3waP3r? - Joey

9
有两种方法可以做到这一点... 选项1:
1.  Go to "Start" -> "Run".

2.  Write "CMD" and press on "Enter" key.

3.  Write the command "net statistics server" and press on "Enter" key.

4.  The line that start with "Statistics since …" provides the time that the server was up from.


  The command "net stats srv" can be use instead.

选项 2:

Uptime.exe 工具允许您使用 Windows NT 4.0 SP4 或更高版本估计服务器的可用性。

http://support.microsoft.com/kb/232243

希望对您有所帮助!


你提供的链接已经失效了。你可以尝试以下两种方式获取该链接:link 通过Internet Archive URL 或者 link - NCC1701

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接