【问题标题】:Getting last reboot time [duplicate]获取上次重启时间[重复]
【发布时间】:2012-07-18 17:56:13
【问题描述】:

可能重复:
Displaying the build date
How to know when was Windows started or shutdown?

出于我的目的,我正在编写一个 C# 可执行文件,它将计算从现在的时间和上次重新启动服务器的时间的时间差(分钟)。

我现在正在做的是捕获和解析来自 cmd -> "net stats server" 的输出并创建一个新的 DateTime 对象,然后将其与 DateTime.NowTimeSpan 对象进行比较。

有没有更简洁的方法来做到这一点不使用第三方下载?我担心并非所有来自“网络统计服务器”的日期格式都符合我的预期。

**编辑我的错,这是重复的,但值得我的解决方案是使用这个:

float ticks = System.Environment.TickCount;
Console.WriteLine("Time Difference (minutes): " + ticks / 1000 / 60);
Console.WriteLine("Time Difference (hours): " + ticks / 1000 / 60 / 60);
Console.WriteLine("Time Difference (days): " + ticks / 1000 / 60 / 60 / 24);

【问题讨论】:

  • 重启后看看手表
  • 适用于计划重启 =) 但如果服务器突然崩溃并启动,我需要执行操作,如果此重启是“未计划的”

标签: c# date


【解决方案1】:

您可以使用其中的 WMI 通过 powsershell 执行此操作

$wmi = Get-WmiObject -Class Win32_OperatingSystem -Computer "RemoteMachineName"
$wmi.ConvertToDateTime($wmi.LastBootUpTime)

这样的……

如果您决定采用这条路线并想了解更多关于使用 WMI 的 powershell 的信息,这是一个非常有用的链接 http://www.powershellpro.com/powershell-tutorial-introduction/powershell-wmi-methods/

【讨论】:

    【解决方案2】:

    this answer 应该可以帮助您。如果您想知道系统上次重新启动的时间,只需获取正常运行时间值并从当前日期/时间中减去它

    来自链接答案的代码

    public TimeSpan UpTime {
        get {
            using (var uptime = new PerformanceCounter("System", "System Up Time")) {
                uptime.NextValue();       //Call this an extra time before reading its value
                return TimeSpan.FromSeconds(uptime.NextValue());
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 2013-08-28
      • 2012-12-05
      相关资源
      最近更新 更多