gpt4 book ai didi

c# - 事件日志写入权限

转载 作者:IT王子 更新时间:2023-10-29 04:13:09 24 4
gpt4 key购买 nike

我的问题与对 Windows 事件日志的写入权限有关。我查看了几篇与此相关的帖子,并找到了一些方法来解决我的问题,但这些方法都不适合我当前的情况。

我在 .NET 4.0 中使用 C#。我使用 EventLog 类: EventLog class

简而言之,我需要看看是否有一种方法可以模拟或使用经过身份验证的用户和密码进行身份验证,以达到我需要写入事件日志的权利。服务器将始终属于 Windows Server 系列,但版本可能会有所不同。

我的应用程序是使用以下帐户之一运行的 Windows 服务:

  • 网络服务
  • 本地服务
  • 本地系统
  • 具有受限权限的用户(用户或域用户组)

以下是我的一些其他标准:

  • 我不能将服务用户设置为管理员,即使是服务器上的本地管理员也是如此
  • 我无法编辑或更改注册表
  • 我无法更改服务器上的 UAC 或任何组策略
  • 我有一个具有管理员权限的用户,但是不能用来运行服务
  • 事件日志将始终是本地事件日志,而不是在远程机器上
  • 日志可能永远是“应用程序”日志
  • 来源可能不同,这似乎是问题的核心

我的问题是:这有可能吗?

我可以在我的代码中模拟用户来实现我需要的吗?我在连接到 Web 服务、登录到 smtp 服务器以及登录到数据库等时这样做。

我偶然发现了这门课: EventLogPermission Class

但我似乎无法很好地理解如何使用该类。

我希望我已经很好地表达了我的问题。由于我的标准,我不认为这是与另一篇文章的重复。

最佳答案

默认情况下,任何经过身份验证的用户都可以写入应用程序事件日志。但是只有管理员可以创建新的事件源。如果在服务安装时所有事件源都是已知的,我建议提前注册这些源,然后你就可以全部设置好了。注册是对 EventLog.CreateEventSource 的简单调用.

如果您需要对事件源有更大的灵 active ,您可以自定义权限。可以通过调整注册表项来自定义这些默认值:

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog\Application\CustomSD

KB Article 中描述的过程. wevtutil 工具是操作系统的一部分,可在 Server 2008 及更高版本上使用,这比通过 regedit 更容易一些。

关于c# - 事件日志写入权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14245345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com