gpt4 book ai didi

c# - 使用 C# 在一天内获取服务器重启计数?

转载 作者:行者123 更新时间:2023-11-30 16:29:38 24 4
gpt4 key购买 nike

是否可以使用c#获取服务器在一段时间内重启的次数?

我看到这篇文章正在获取 Windows 上次关闭时间 Get the date-time of last windows shutdown event using .NET

有什么建议吗?

最佳答案

您是否考虑过读取服务器的事件日志?

“USER32”系统 事件源记录关闭。

根据我的阅读,您似乎也应该能够以编程方式读取远程机器的事件日志(See How to manage event logs using Visual C# .NET or Visual C# 2005)

编辑

以下控制台应用程序将在远程计算机上查询 USER32 类型的偶数日志。

您所要做的就是插入日期/时间比较并添加您的服务器名称。它有点粗糙,但我相信如果你愿意,你可以美化它。

using System;
using System.Diagnostics;

namespace ReadEventLog
{
class Program
{
static void Main(string[] args)
{

string logType = "System";

//use this if your are are running the app on the server
//EventLog ev = new EventLog(logType, System.Environment.MachineName);

//use this if you are running the app remotely
EventLog ev = new EventLog(logType, "[youservername]");

if (ev.Entries.Count <= 0)
Console.WriteLine("No Event Logs in the Log :" + logType);

// Loop through the event log records.
for (int i = ev.Entries.Count - 1; i >= 0; i--)
{
EventLogEntry CurrentEntry = ev.Entries[i];

//use DateTime type to compare on CurrentEntry.TimeGenerated
DateTime dt = DateTime.Now;
TimeSpan ts = dt.Subtract( CurrentEntry.TimeGenerated);
int hours = (ts.Days * 24) + ts.Hours;

if (CurrentEntry.Source.ToUpper() == "USER32")
{
Console.WriteLine("Time Generated:" + CurrentEntry.TimeGenerated);
Console.WriteLine("Hours ago:" + hours);
Console.WriteLine("Event ID : " + CurrentEntry.InstanceId);
Console.WriteLine("Entry Type : " + CurrentEntry.EntryType.ToString());
Console.WriteLine("Message : " + CurrentEntry.Message + "\n");
}
}
ev.Close();
}
}
}

关于c# - 使用 C# 在一天内获取服务器重启计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com