最近这些天总感觉电脑不太正常,要说哪里不正常吧,就是偶尔卡顿一下,Word文档图标时不时地丢失,excel表格文件时不时地丢了打开方式,于是我想该应用我的重启大法了。
(图源 :pixabay)
尽管玩电脑N多年,学了不计其数的各种技巧,不过我觉得最能解决问题的两大方法就是重启和重装,当然了重装太过于麻烦(尽管现在有重置),所以最常用的就是重启大法了。
不过在应用重启大法之前,我突然好奇这次我的电脑有多久没有关机了?
朋友们可能好奇我为啥不关机,我举个栗子:查找资料时我经常开及时上百个浏览器窗口,putty啥的我也经常开着十多个,总有那么三五个记事本开着记着一些乱七八糟的东西,微信电脑版、电报乱七八糟的聊天窗口也开着好几个...... 如果关机,那么这些东西都要关掉,下次再开机,好多东西都要重新来弄,严重影响效率。
所以我电脑经常不关机,最严重的也就是让它处于待机模式,随便一个按键或者动一下鼠标,它就会在一秒钟之内苏醒过来,陪我一起打拼。除了系统强制升级,我几乎很少关机或者重启电脑。
不过这样有个问题是,因为时间太长,我都忘记了距离距离上次开机过了多久,当然了,其实过多久并没有什么意义,不过一旦好奇心起来,那是如何也压不住的。
说到开机过了多久,Linux下一个常用命令就是uptime
,执行这个命令后,就会显示Linux系统开机多久了。
那么Windows下有没有类似的命令或者方法呢?我试了一下uptime
,直接提示我:
'uptime' is not recognized as an internal or external command, operable program or batch file.
擦,果然是想多了,不过去了解一下,其实知道Windows系统的uptime,方式还是挺多的,有好几种呢,下面我来和大家一一分享:
任务管理器
使用任务管理器查看系统uptime,大概是最简单的方式了,在Windows任务栏空白处点击鼠标右键,选择“Task Manager”就可以调出任务管理器啦。
然后选择“Performance”标签,再选择“CPU”条目:
这时,CPU对应信息的左下角就会显示Up time啦,哇,我的电脑竟然已经24天没有关机啦。
systeminfo 指令
除了在任务管理器中查看,我们还可以使用systeminfo
指令来查看系统的uptime。
使用Win+R,调出运行框,输入cmd
并回车:
然后在弹出的命令行窗口中输入:systeminfo
就会返回一系列和系统相关的信息,比如OS版本啦,CPU信息啦,内存信息啦,等等等等,以下是部分内容截图:
注意这个:System Boot Time: 12/15/2021, 10:37:56 PM
这就是系统上次启动(包括重启操作)时间,当前时间减去这个时间,就是系统的在线时间/uptime啦。是不是很方便?
PowerShell 命令
网上找到一个PowerShell获取uptime的例子,在PowerShell中执行以下指令:
(get-date) - (gcim Win32_OperatingSystem).LastBootUpTime
让我来操作一下,使用Win+R,调出运行框,输入powershell
并回车,调出powershell(或者直接搜索🔍中输入powershell找到程序并进入)。
然后输入上述指令,可见正确地返回了uptime:
可是这有些知其然不知其所以然,所以进一步调查一下,首先gcim
就是Get-CimInstance
的简写或者说是别名:
而它的作用就是通过提供类名返回类实例,文档中这样解释这个指令:
Gets the CIM instances of a class from a CIM server.
而gcim Win32_OperatingSystem
就是获取Win32_OperatingSystem
这个类实例,而这个实例有好多方法和属性,LastBootUpTime
就是属性之一,表示:
Date and time the operating system was last restarted.
至于get-date一眼望去就是明面上的意思,获取当前系统时间日期喽,两者之差就是uptime喽。
不过通过查看Win32_OperatingSystem
这个类,我发现另外一个属性LocalDateTime
:
所以我们应该也可以用下述指令来实现同样的功能:
(gcim Win32_OperatingSystem).LocalDateTime - (gcim Win32_OperatingSystem).LastBootUpTime
测试一下,和我想的完全一样:
看来PowerShell也非常强大呀,以后有机会好好学习一下。
Event Viewer (事件查看器)
现在我们已经知晓了好几种查看系统uptime的方法,不过还有一种方法是使用Event Viewer 。
在搜索🔍栏中输入Event Viewer
前几个字符,就会调出Event Viewer程序:
然后选择,WIndows Log
下System
条目,再到右侧Action中选择Filter Current Log
:
再弹出的过滤对话框中的Event IDs中输入:6005(The event log service was started)
显示我最近几次开机时间,哈哈,果然都是大半个月才重启一次呢。
不过用6005总感觉怪怪的,我发觉12号ID更好一些呢:
总结
通过以上学习和测试,我们发现Windows下也有N多获取系统Uptime的方法呢。哎,不对,我不就是要重启一下电脑嘛?怎么弄这么多乱七八糟的东西呢。
不过学点东西总比虚度光阴的好,哎,也只能如此安慰自己啦。