3

我正在开发一个将用作登录脚本的 C# 程序。出于诊断目的,我希望能够写入应用程序日志。不幸的是,我发现的所有文档都指出,如果不查询需要提升权限的安全日志,就不可能创建事件源;对于登录脚本来说,这显然是不行的。

我有什么方法可以在没有此提升请求的情况下创建事件源?或者,是否有其他位置或预先存在的事件源,对我来说用于日志记录可能更有意义?

4

2 回答 2

3

在幕后,创建事件源需要写入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog注册表项,该注册表项只能由管理用户写入。因此,任何基于此构建的 API 都需要提升权限。创建事件源将是您在提升后需要做的事情。

但是一旦您创建了事件源,实际报告事件不需要提升权限。如果您可以运行安装程序,您的安装程序可以请求提升并创建事件源;然后您的应用程序就像任何其他应用程序一样报告事件。但我认为这在登录脚本中是一种不可行的情况。

于 2012-12-15T22:25:59.067 回答
1

我认为你不能没有海拔。您可能可以在注册表中更改一些权限以允许您这样做,但这需要提升,catch 22。

但是,记录到文本文件并没有错。只要使用该程序的人都知道这是日志所在的位置,那么文本文件也可以正常工作。

于 2012-12-14T15:32:39.243 回答