[英]EventLog write permissions
我的问题与对 Windows 事件日志的写入权限有关。 我环顾了几篇与此相关的帖子,并找到了一些解决我的问题的方法,但对于我当前的情况,这些都不是可以接受的。
我在 .NET 4.0 中使用 C#。 我使用 EventLog 类: EventLog 类
简而言之,我需要看看是否有办法模拟或使用经过身份验证的用户和密码进行身份验证,以达到我需要写入事件日志的权限。 服务器将始终在 Windows Server 系列中,但版本可能会有所不同。
我的应用程序是使用以下帐户之一运行的 Windows 服务:
以下是我的其他一些标准:
我的问题是:这可能吗?
我可以在我的代码中模拟用户来实现我的需要吗? 在连接到 Web 服务、登录到 smtp 服务器以及当然登录到数据库等时,我都会这样做。
我偶然发现了这个类: EventLogPermission Class
但我似乎无法对如何使用该类有一个好的概念。
我希望我已经很好地表达了我的问题。 由于我的标准,我不认为这是另一个帖子的重复。
默认情况下,任何经过身份验证的用户都可以写入应用程序事件日志。 但是,只有管理员才能创建新的事件源。 如果在服务安装时知道所有事件源,我建议提前注册这些源,然后您就可以全部设置了。 注册是对EventLog.CreateEventSource的简单调用。
如果您需要更多的事件源灵活性,您可以自定义权限。 可以通过调整注册表项来自定义这些默认值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog\Application\CustomSD
此知识库文章中描述的过程。 wevtutil
工具是操作系统的一部分,可在 Server 2008 及更高版本上使用,比通过 regedit 更容易一些。
答案显示为“不”。
我意识到没有按照我要求的方式解决这个问题的好方法。 必须手动完成。
因此,我针对此场景选择的解决方案是,无法以管理员身份运行服务或手动编辑注册表的客户无法使用日志记录到事件日志的功能。 我将使从配置启用和禁用日志记录成为可能。
管理员用户和注册表编辑对我来说是已知的方式,但正如我所说的那样我试图避免。 但这一次,按照我的标准,这似乎是不可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.