C# 如何使用c监控windows服务#
我如何使用c#监控windows服务?我还必须将这些服务名称、开始时间和服务结束时间保存在CSV文件中。如果启动了任何新服务,则应在现有CSV文件中自动写入服务名称、启动时间和服务结束时间。您可以使用C# 如何使用c监控windows服务#,c#,windows,service,C#,Windows,Service,我如何使用c#监控windows服务?我还必须将这些服务名称、开始时间和服务结束时间保存在CSV文件中。如果启动了任何新服务,则应在现有CSV文件中自动写入服务名称、启动时间和服务结束时间。您可以使用ServiceController或ManagementObjectSearcher列出正在运行的服务 以下是使用ManagementObjectSearcher的示例: using System.Management; ... StringBuilder sb = new StringBuil
ServiceController
或ManagementObjectSearcher
列出正在运行的服务
以下是使用ManagementObjectSearcher
的示例:
using System.Management;
...
StringBuilder sb = new StringBuilder();
string format = "{0},{1},{2},{3},{4}";
// Header line
sb.AppendFormat(format, "DisplayName",
"ServiceName",
"Status",
"ProcessId",
"PathName");
sb.AppendLine();
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("SELECT * FROM Win32_Service");
foreach( ManagementObject result in searcher.Get() )
{
sb.AppendFormat(format, result["DisplayName"],
result["Name"],
result["State"],
result["ProcessId"],
result["PathName"]
);
sb.AppendLine();
}
File.WriteAllText(
@"C:\temp\ManagementObjectSearcher_services.csv",
sb.ToString()
);
要获取启动和停止时间,您似乎必须查询Windows事件日志
这篇博文展示了如何监视事件日志,以便在服务停止或启动时获得通知:
Windows已将此信息记录在事件日志中。为什么不直接使用它呢?从那里我可以得到这个日志文件@Damien_The_unsiever