我有以下代码用于查询远程计算机上的某些事件:
filter = $"*[System[(EventID='5061' or EventID='5058') and TimeCreated[timediff(@SystemTime) <= {Timespan}]]]";
EventLogSession session;
using (var pw = GetPassword())
{
session = new EventLogSession(
"PCNAME",
"DOMAIN",
"USERNAME",
pw,
SessionAuthentication.Default);
}
var query = new EventLogQuery("Security", PathType.LogName, filter)
{ Session = session };
var reader = EventLogReader(query);
当我们到达最后一行时,EventLogReader(query)
会抛出错误:
尝试执行未经授权的操作。
用户USERNAME
是同一域中AD上Event Log Readers
组的成员。他需要成为其他一些团体吗?或者是否有某种方法可以配置Event Log Readers
组以允许某些类型的访问?
答案 0 :(得分:1)
发生这种情况是因为EventLogSession
中指定的用户在被查询的PC上没有本地管理员权限。
在“PCNAME”上添加“USER”作为本地管理员后,我能够成功查询日志。
我认为这已经设置好了,但是因为“USER”作为管理员通过脚本添加到所有PC,所以它应用的计算机列表必须由于该脚本中的错误而不完整。 / p>