我创建了一个 Powershell 脚本,用于从 Windows 事件日志的安全部分检索信息:
Get-EventLog -Log "Security" -EntryType Warning,Error,FailureAudit -After (Get-Date).addDays(-1)
如果我在登录服务器(以管理员身份)时运行该脚本,则效果很好。
当我尝试以其他用户身份运行此程序时,我遇到了问题。在我的例子中,Powershell 脚本是从 Oracle 的作业调度程序中调用的。此调度程序在帐户“NT SERVICE\OracleJobSchedulerXE”下运行。
首次运行时,产生以下错误:
"Get-EventLog : Requested registry access is not allowed."
基于一些研究,我尝试了以下方法:
- 将“NT SERVICE\OracleJobSchedulerXE”用户添加到“事件日志读取器”组
- 使用 regedit 转到 HKLM\System\CurrentControlSet\Services\Eventlog\Security,右键单击并选择“权限”
- 添加了“事件日志读取器”组,编辑了权限并选中了查询值、枚举子键、通知、读取控制复选框
- 通过组策略将“NT SERVICE\OracleJobSchedulerXE”用户添加到“管理审核和安全日志”用户分配
但是,我仍然收到错误,尽管与第一个错误略有不同:
"Get-EventLog : Cannot open log Security on machine .. Windows has not provided an error code."
我需要做什么才能让“NT SERVICE\OracleJobSchedulerXE”访问安全日志?