【问题标题】:How can I open Event Viewer from a web page using c#?如何使用 c# 从网页打开事件查看器?
【发布时间】:2026-02-18 02:05:01
【问题描述】:

我有一个需求,我只需要从内部网页向内部用户打开事件查看器。我有一个链接“Evetn 查看器”和一个下拉列表“服务器”,当用户选择一个服务器并单击该链接时,我想打开 Windows 事件查看器。如何做到这一点?

【问题讨论】:

    标签: c# wmi event-viewer


    【解决方案1】:
        EventLogSession session = new EventLogSession(
            "RemoteComputerName",// Remote Computer
            "Domain",// Domain
            "Username",// Username
            pw,
            SessionAuthentication.Default);
    

    在此处阅读更多信息How to manage event logs using Visual C# .NET

    【讨论】:

    • Stefan,我尝试了您提供的链接中的代码,它适用于我的本地事件查看器,但如果我想访问服务器的事件查看器,我会收到未经授权的错误。我使用:使用(EventLog ev = new EventLog(logType, machinename))。由于基于 Web 的应用程序正在尝试访问事件日志(我只阅读),不确定如何编写代码来验证和授权用户访问日志?如果您能回复,不胜感激。
    • 托管 Web 应用程序的计算机应与服务器位于同一域中。在活动目录中,您应该创建一个具有 EnventLog 读取权限的用户。然后您应该使用示例中所示的 EventLogSession 并为 AD 用户传递凭据。
    • 谢谢 Stefan,有任何链接可以提供示例步骤吗?
    【解决方案2】:

    在 Windows 中打开事件查看器的唯一方法是使用某种类型的 ActiveX 控件。事件查看器可以使用服务器名称作为参数启动:eventvwr myserver

    以下是有关如何创建这些的一些基本指南:http://www.c-sharpcorner.com/uploadfile/dsandor/activexinnet11102005040748am/activexinnet.aspx

    否则,您将被限制在服务器端加载事件并在标记中返回它们(确保限制结果 - 事件日志可能会变得非常大!)

    【讨论】:

    • 感谢 dave,我认为我应该获取列表并使用 EventLog 类将其显示在页面上。
    最近更新 更多