查询事件日志时的越权操作
Unauthorized Operation When Querying Event Logs
我有以下代码用于查询远程计算机上的某些事件:
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)
抛出一个错误:
Attempted to perform an unauthorized operation.
其中用户 USERNAME
是同一域中 AD 上 Event Log Readers
组的成员。他需要加入其他团体吗?或者是否有某种方法可以配置 Event Log Readers
组以允许某些类型的访问?
发生这种情况是因为在 EventLogSession
中指定的用户在被查询的 PC 上没有本地管理员权限。
在 "PCNAME" 上将 "USER" 添加为本地管理员后,我能够成功查询日志。
我以为这已经设置好了,但是因为"USER"是通过脚本添加为所有PC的管理员,所以它应用的计算机列表一定是不完整的,因为一个bug那个脚本。
我有以下代码用于查询远程计算机上的某些事件:
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)
抛出一个错误:
Attempted to perform an unauthorized operation.
其中用户 USERNAME
是同一域中 AD 上 Event Log Readers
组的成员。他需要加入其他团体吗?或者是否有某种方法可以配置 Event Log Readers
组以允许某些类型的访问?
发生这种情况是因为在 EventLogSession
中指定的用户在被查询的 PC 上没有本地管理员权限。
在 "PCNAME" 上将 "USER" 添加为本地管理员后,我能够成功查询日志。
我以为这已经设置好了,但是因为"USER"是通过脚本添加为所有PC的管理员,所以它应用的计算机列表一定是不完整的,因为一个bug那个脚本。