在没有管理员的情况下写入事件日志
Writing to the event log without admin
我是本地计算机的管理员。但是,我正在创建的应用程序(outlook VSTO 插件)将由部署管理员部署给没有管理员权限的用户。
应用安装正确。
我的问题是我有代码检查 EventLog.SourceExists("my VSTO addin")
。如果不是,它将 EventLog.CreateEventSource("my VSTO addin")
.
我的问题:
- 我真的需要创建事件源吗?如果源不存在,它还会记录吗?
- 我应该如何创建事件源(如果需要 #1)?
2a 也许我需要创建一个创建事件源的小应用程序,这需要由管理员安装?
2b 也许我可以把它放在代码中的某个地方,安装时会调用它? (我正在使用安装盾)
2c 是否可以由管理员作为组策略的一部分来完成?
2d 我可以根据 https://docs.microsoft.com/en-us/windows/desktop/EventLog/event-sources
创建注册表项
回答我的问题:
我确实需要创建源。
为了解决这个问题,我创建了另一个控制台应用程序,它只创建我需要的事件日志源。
在 installshield 中,我将这个新的 exe 添加为自定义操作。安装是在管理员模式下完成的,因此会创建源。
这修复了应用程序,因为非管理员正在使用该应用程序,并且它正在尝试创建事件日志源(如果它们不存在)。我删除了这张支票。
我是本地计算机的管理员。但是,我正在创建的应用程序(outlook VSTO 插件)将由部署管理员部署给没有管理员权限的用户。
应用安装正确。
我的问题是我有代码检查 EventLog.SourceExists("my VSTO addin")
。如果不是,它将 EventLog.CreateEventSource("my VSTO addin")
.
我的问题:
- 我真的需要创建事件源吗?如果源不存在,它还会记录吗?
- 我应该如何创建事件源(如果需要 #1)?
2a 也许我需要创建一个创建事件源的小应用程序,这需要由管理员安装?
2b 也许我可以把它放在代码中的某个地方,安装时会调用它? (我正在使用安装盾)
2c 是否可以由管理员作为组策略的一部分来完成?
2d 我可以根据 https://docs.microsoft.com/en-us/windows/desktop/EventLog/event-sources
创建注册表项回答我的问题: 我确实需要创建源。 为了解决这个问题,我创建了另一个控制台应用程序,它只创建我需要的事件日志源。 在 installshield 中,我将这个新的 exe 添加为自定义操作。安装是在管理员模式下完成的,因此会创建源。 这修复了应用程序,因为非管理员正在使用该应用程序,并且它正在尝试创建事件日志源(如果它们不存在)。我删除了这张支票。