按用户名而不是 sid 过滤日志

问题描述 投票:0回答:2

我想过滤特定用户名的一些日志。在事件查看器中,您可以在提到的字段中输入用户名,它将过滤您的日志。但我想使用 cmd ( wevtutil ) ,所以我应该使用 xml 查询来过滤我的日志。但问题就出现在这里。在 xml 查询中,您只能输入要查找的用户的 sid(在 system[security[@Userid]]] 中)。 是否可以以某种方式使用用户名而不是 sid?

1 2

注意事项: 在事件查看器中,当您输入 username 时,它会将用户名转换为 sid 并在其 xml 查询中使用 sid。我不知道它是如何发生的。

我应该在这里提到一个注释: 有些人建议我使用“目标用户名”来过滤我的日志。但这不是我要找的。 “目标用户名”仅处理登录日志。

cmd command event-viewer qxmlquery wevtutil
2个回答
0
投票

您可以仅使用用户名来检索其 SID,以便在您的

wevtutil
命令中使用。

从命令提示符,():

For /F %G In ('%SystemRoot%\System32\wbem\WMIC.exe UserAccount Where "Name='KnownUserName'" Get SID 2^>NUL ^| %SystemRoot%\System32\find.exe "-"') Do @%SystemRoot\System32\wevtutil.exe CommandLineOptions

您只需替换

KnownUserName
CommandLineOptions
,并将其 SID 替换为
%G

或者来自

@For /F %%G In ('%SystemRoot%\System32\wbem\WMIC.exe UserAccount Where
 "Name='KnownUserName'" Get SID 2^>NUL ^| %SystemRoot%\System32\find.exe "-"'
) Do @%SystemRoot\System32\wevtutil.exe CommandLineOptions

显然您会再次替换

KnownUserName
CommandLineOptions
,并将这次的 SID 替换为
%%G


0
投票

我希望这对大家有帮助,因为我也遇到了同样的问题。查询与特定用户相关的事件。下面,

Jsmith
将是我们所讨论的特定用户。您想使用
TargetUserName
SubjectUserName

wevtutil qe security /q:"*[EventData/Data[@Name='TargetUserName']='Jsmith']"

wevtutil qe security /q:"*[EventData/Data[@Name='SubjectUserName']='Jsmith']"

© www.soinside.com 2019 - 2024. All rights reserved.