我知道如何在上次重启VBScript或C#后获得Windows系统正常运行时间,但是如何在过去24小时内获得系统正常运行时间?在此期间,机器可能会多次停机。
答案 0 :(得分:0)
如果您不需要第二个答案,您可以每隔1或5分钟定期将当前正常运行时间写入文件或数据库记录。当前的正常运行时间小于持续的正常运行时间时,您知道需要移动到下一条记录,因为自上次报告以来系统已关闭。然后使用一段时间内所有正常运行时间值的总和来确定该期间的总运行时间。如果您的正常运行时间跨越时间段边界(例如跨越天数),您可能还需要跟踪每个正常运行时间记录开始的时间,以便了解它之前的数量和边界之后的数量(例如,这个正常运行记录中有多少来自昨天。或者,如果您的边界不变(例如,如果您的边界始终表示特定时区内的天数),您可以在每次越过边界时强制开始新记录。但是,如果您有可能需要计算过去24小时的正常运行时间以及需要计算昨天所有的正常运行时间(与过去24小时重叠),那么您没有任何固定边界要做到这一点,所以你必须记录开始时间和正常运行时间并稍后应用边界(正如我先描述的那样)。
老实说,我没有对此进行测试,但这就是我要尝试的。
答案 1 :(得分:0)
使用事件日志。在系统日志中,您应该在系统关闭时看到事件#6006(source:EventLog),在它恢复时看到事件#6009(相同的源)。有关详细信息,请参阅KB article 196452(请注意,意外停机 - 即崩溃 - 将提供事件#6008而不是#6006。)
因此,如果您经历过去24小时内的所有事件,您的正常运行时间为24小时减去6006和6009事件之间的所有时间。