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

问题描述

| 是否可以使用C#获得一段时间内服务器重新启动的次数? 我看过这篇文章,它获取Windows的最后一次关机时间使用.NET获取最后一个Windows关机事件的日期时间 有什么建议吗?     

解决方法

        您是否考虑过阅读服务器的事件日志? \'USER32 \'系统事件源记录关闭。 从我阅读的内容来看,您似乎也应该能够以编程方式读取远程计算机的事件日志(请参阅如何使用Visual C#.NET或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();
        }
    }
}
    ,        您可以创建Windows服务并记录启动事件。这样,您将知道服务已启动(并关闭)了多少次。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...