【问题标题】:Event Logging in C# on Windows 7/ 2008 ServerWindows 7/ 2008 Server 上的 C# 事件日志记录
【发布时间】:2011-03-16 16:34:39
【问题描述】:

我正在尝试为我的命令行应用程序制作事件记录器。但是,当它第一次尝试创建日志时出现此错误。

没有找到源,但是有一些或 无法搜索所有事件日志。 无法访问的日志:安全性。

所以我发现这是因为 Windows 7 和一些新的安全性。所以现在我必须授予 .exe 管理员权限。

有没有办法解决这个问题,所以它不需要管理员权限?我不知道如果人们必须以管理员权限满足地运行我的应用程序,他们是否会感觉太好。

我打算稍后将它放在 Windows 2008 机器上,所以我猜它会遇到同样的问题。

【问题讨论】:

    标签: c# windows-7 windows-server-2008 event-log


    【解决方案1】:

    您可以在安装时创建事件源,这样他们只需做出一次选择。在注册表中创建源后,您可以向其中添加事件,而无需管理员权限。

    除了 CreateEventSource 函数之外,还有 EventLogInstaller 类:

    http://msdn.microsoft.com/en-us/library/system.diagnostics.eventloginstaller.aspx

    WiX 还在其实用程序扩展中提供了此功能:

    How do you create an event log source using WiX

    【讨论】:

    • 如何在安装时制作此事件源?
    • 那么我只是提出一个论点并说也许像安装?然后它只是安装它就可以了?
    • 好的,我尝试了那个 msdn 教程,当我的应用程序运行时,我只是运行了我的 cmd 行应用程序并调用了那个安装程序,但是当我查看我的事件日志视图时,我没有看到日志。跨度>
    【解决方案2】:

    网络服务或模拟用户必须具有对 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security 的读/写访问权限

    【讨论】:

    • 但是我可以访问每个事件日志?
    • 您的问题是关于为您的应用程序创建事件日志。在 Windows 2008 上,这正是您所需要的。 (我想在 win7 上也是如此,在这种情况下,我会以管理员身份运行应用程序的安装,为应用程序提供正确的权限,因此从那时起,您将不需要经常以管理员身份运行它。)
    猜你喜欢
    • 2010-10-17
    • 2013-08-22
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    相关资源
    最近更新 更多