C#获取Windows Server系统最新的远程桌面登录信息
|
admin
2025年2月14日 17:36
本文热度 741
|
以下是一个示例代码,用于获取Windows Server系统最新的远程桌面登录信息。它通过查询Windows事件日志(特别是“Microsoft - Windows - TerminalServices - LocalSessionManager/Operational”日志中的相关事件)来实现:
try
{
// 创建事件日志查询
string queryStr = "*[System[Provider[@Name='Microsoft-Windows-TerminalServices-LocalSessionManager'] and (EventID=21 or EventID=24)]]";
EventLogQuery query = new EventLogQuery("Security", PathType.LogName, queryStr);
// 创建EventLogReader实例
using (EventLogReader reader = new EventLogReader(query))
{
// 读取最新的事件
EventRecord eventRecord = reader.ReadEvent();
if (eventRecord != null)
{
// 提取相关信息
string eventTime = eventRecord.TimeCreated.ToString();
string eventId = eventRecord.Id.ToString();
string message = eventRecord.FormatDescription();
Console.WriteLine($"事件时间: {eventTime}");
Console.WriteLine($"事件ID: {eventId}");
Console.WriteLine($"事件描述: {message}");
}
else
{
Console.WriteLine("未找到远程桌面登录相关事件。");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"发生错误: {ex.Message}");
}
注意事项:
1. 运行此程序需要有足够的权限来访问事件日志,通常需要以管理员身份运行。
2. 不同版本的Windows Server系统,事件日志的名称、事件ID以及事件消息的格式可能会有所不同,如果在实际使用中发现无法正确获取信息,需要根据具体环境调整代码中的事件日志名称、事件ID和消息解析逻辑等内容。
3. 此代码仅作为示例,实际应用中可能还需要考虑更多的异常处理和兼容性问题。
该文章在 2025/2/14 17:36:32 编辑过