在没有管理员的情况下写入事件日志

Writing to the event log without admin

我是本地计算机的管理员。但是,我正在创建的应用程序(outlook VSTO 插件)将由部署管理员部署给没有管理员权限的用户。

应用安装正确。

我的问题是我有代码检查 EventLog.SourceExists("my VSTO addin")。如果不是,它将 EventLog.CreateEventSource("my VSTO addin").

我的问题:

  1. 我真的需要创建事件源吗?如果源不存在,它还会记录吗?
  2. 我应该如何创建事件源(如果需要 #1)?

2a 也许我需要创建一个创建事件源的小应用程序,这需要由管理员安装?

2b 也许我可以把它放在代码中的某个地方,安装时会调用它? (我正在使用安装盾)

2c 是否可以由管理员作为组策略的一部分来完成?

2d 我可以根据 https://docs.microsoft.com/en-us/windows/desktop/EventLog/event-sources

创建注册表项

回答我的问题: 我确实需要创建源。 为了解决这个问题,我创建了另一个控制台应用程序,它只创建我需要的事件日志源。 在 installshield 中,我将这个新的 exe 添加为自定义操作。安装是在管理员模式下完成的,因此会创建源。 这修复了应用程序,因为非管理员正在使用该应用程序,并且它正在尝试创建事件日志源(如果它们不存在)。我删除了这张支票。