使用 .NET 远程读取事件日志

2023-11-22

我想读取远程计算机上的事件日志以检查测试期间是否有错误。这是一些相关代码:

public bool CheckEventLogs(DateTime start)
{
  EventLog myEventLog = new EventLog("CustomLog", "ServerName");
  bool errorFound = false;
  foreach (EventLogEntry entry in myEventLog.Entries)
  {
    if (entry.EntryType == EventLogEntryType.Error && entry.TimeGenerated >= start)
    {
       Console.WriteLine("Error in Event Log:\n" + entry.Message + "\n");
       errorFound = true;
    }
  }
  return errorFound;
}

目前,此代码抛出异常(尝试执行未经授权的操作)。根据MSDN,我需要 EventLogPermission,但我一直在努力寻找如何使用此权限的任何示例。有人有如何执行此操作的示例吗?

编辑:对评论的回应

感谢大家的评论 - 以下是所需的附加信息:

异常是从foreach陈述。具体来说,当单步执行在when之后的步骤中抛出的代码时in被突出显示。我似乎能够创建事件日志对象,但无法访问事件日志中的条目。

我的帐户无权读取目标系统上的事件日志,但我拥有具有该权限的帐户的凭据。通过事件查看器手动连接时,可以选择以其他用户身份进行连接。手动完成此操作后,我的代码运行没有问题。但是,我不能依赖每次该程序运行时手动执行此操作。我需要的是一种以编程方式作为另一个用户进行连接的方法。我以为EventLogPermission将是做到这一点的方法,但也许还有另一种方法。如果有人知道如何在 C# 中以不同用户身份连接到远程日志,那么这正是我所寻找的。


WMI对此非常有用,像这样的片段

SELECT Logfile,TimeGenerated,Type,SourceName,Message FROM Win32_NTLogEvent

允许您查询日志。这个实用程序来自 MS 的 .NET 允许您探索 WMI,甚至可以构建 .net 代码来调用查询。

这样做的另一个好处是,它将获取所有事件并将它们带到应用程序本地,您可以在闲暇时解析它们。如果在处理时连接断开,则以您现在正在执行的方式迭代事件很容易失败(顺便说一句,这与通常用于数据库访问的方法相同)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 .NET 远程读取事件日志 的相关文章

随机推荐

  • Django 中的 TDD,如何对我的模型进行单元测试?

    我是 TDD 新手 并尝试在 Django 项目中应用 TDD 实践 基于伦敦学校 TDD 工作流程 我从外到内 视图层 表单层和模型层工作 在表单层 我计划构建一个模型表单 其中包含一些 自定义验证方法 我认为 基于TDD 我只需要测试我
  • 并发修改异常

    我目前正在开发一个多线程应用程序 偶尔会收到并发修改异常 平均大约每小时一次或两次 但以看似随机的间隔发生 有问题的类本质上是映射的包装器 它扩展了LinkedHashMap accessOrder 设置为 true 该类有几个方法 syn
  • 如何在 MPAndroidChart 中添加 x 轴作为日期时间标签?

    我在项目中实现了温度报告折线图 MPAndroidChart 库 在 X 轴上应绘制日期时间 在 Y 轴上应绘制温度 我刚刚在 X 轴标签中添加了日期时间作为字符串 但它已折叠 所以请任何人指导我 使用 MPAndroidChart 3 0
  • Java ConcurrentMarkSweep 垃圾收集器未清除所有垃圾

    简短形式 CMS 垃圾收集器似乎无法收集不断增加的垃圾量 最终 我们的 JVM 被填满 应用程序变得没有响应 通过外部工具 JConsole 或jmap histo live 清理一次 更新 问题似乎与 JConsole 的 JTop 插件
  • 以编程方式将 .reg 文件合并到 win32 注册表中

    以编程方式将 reg 文件合并到注册表中的最佳方法是什么 这是为了单元测试 reg 文件是一个测试工件 将在测试开始和结束时添加然后删除 或者 如果有更好的方法对注册表进行单元测试 可以使用 reg 文件删除注册表项 尽管我不确定它的记录情
  • 对每行的某些列的单元格求和

    我想计算某些列的总和 然后将此求和应用于每一行 不幸的是 我只能迈出第一步 现在我该如何让它发生在每一行 我知道 R 不需要循环 什么是好的方法 我的矩阵 zscore 如下所示 a b c t y 1 3 4 7 7 4 2 4 56 6
  • 从 p:remoteCommand 的 oncomplete 处理程序调用 JavaScript 函数 - 使用一些 JavaScript 代码模拟相同的功能

    注意 虽然这个问题涵盖了很长的文本信息和一堆 Java 代码片段 但它只是针对 JavaScript jQuery 和一些 PrimeFaces 的东西 只是
  • 使用 JDBC 将 Microsoft Access 数据库连接到 Java 并编译

    对于学校数据库项目 我们正在制作一个数据库程序 用户 GUI 和数据库 我使用 Microsoft Access 2010 创建了数据库并填充了一些示例数据 并将其保存为 mdb 格式并将其放置在我的项目文件夹中 当在 Eclipse 中运
  • 使用 JavaScript 解决线性方程和类似的代数问题

    我是 JavaScript 新手 我正在尝试编写一个解决线性方程的简单脚本 到目前为止 我的脚本只能求解正负线性方程 例如 2x 28 18x 36 4x 10 我希望它还能够解决包含乘法和除法的线性方程 代数问题 例如 2x 3x 4 2
  • java.lang.OutOfMemoryError BitmapFactory.nativeDecodeAsset()

    您好 我正在创建一个关于交通标志的应用程序 交通标志采用 png 格式 其中一些我在水平滚动视图中显示 但是当尝试打开活动时 我从 android market 错误报告中收到此错误 这是我的错误报告
  • 如何使用 Javascript 找到虚拟视口/屏幕宽度?

    是否有一致的方法来使用 Javascript 确定移动设备的屏幕和虚拟视口的宽度 我的目标平台是移动 Safari 和 Android 的原生浏览器 但我也在 Android 上使用其他浏览器进行测试 我尝试过screen width wi
  • ASP Net Core:添加与 IdentityUser 的多对多关系

    我需要在asp net core中添加与UserIdentity的多对多关系 即 一个用户可以拥有很多本书 一本书可以有很多用户所有者 我有书本课 public class Book public int Id get set 我扩展了 U
  • collect2:错误:ld 终止于信号 11 [分段错误],核心已转储

    我当时正在使用 GLFW 学习 OpenGL 当时对 makefile 并没有很好的理解 我可以使用 OpenGL 但我决定更多地学习 makefile 经过大量的网站 时间和反复试验后 我想出了这个 EXENAME OpenGL Demo
  • 删除Java中的第一个空格

    如何删除 Java 中的第一个空格 现在我正在使用这个 if str charAt 0 str str replace 只需使用str trim 摆脱所有前导和尾随空格
  • WebClient 使用凭据访问页面

    我正在尝试访问同一域 同一 asp net 应用程序上的网页 该网页受密码保护 触发此调用的网页和正在访问的网页的凭据都是相同的 这是代码 我不知道为什么我总是以登录表单 html 代码结束 using WebClient client n
  • 并行运行指定数量的命令 - 对比 xargs -P、GNU 并行和“moreutils”并行

    我正在尝试在 bash 脚本中在 26 个服务器上运行多个 mongodump 我可以运行 3 个命令 例如 mongodump h staging mongodump h production mongodump h web 同时 当一个
  • Boto connect_xxx方法和连接池

    如果我多次调用 boto connect xxx 其中 xxx 是某个服务 dynamodb s3 等 它是否每次都会创建一个新的连接池 我想做的是这样的 Flask 中的示例 app before request def before r
  • 使用R中的gsub替换数据帧列中的特定值

    我的 data frame 如下 gt df ID Value A 001 DEL 1 7 35 8 1 A 002 INS 4l 5 74 d B 023 0 C 891 2 D 787 8 E 865 DEL 3 65 1s b 我想将
  • JPopupMenu 上的 JComboBox

    我正在尝试使用复合 Swing 组件作为菜单的一部分 除了一个细节之外 一切都运行良好 该组件包含JComboBoxes 每当用户单击其中之一打开其下拉菜单时 下拉菜单将打开 但菜单会消失 是否可以使菜单保持打开状态JComboBox被点击
  • 使用 .NET 远程读取事件日志

    我想读取远程计算机上的事件日志以检查测试期间是否有错误 这是一些相关代码 public bool CheckEventLogs DateTime start EventLog myEventLog new EventLog CustomLo