按用户名而不是sid筛选日志



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

12

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

我应该在这里提到一点:有些人建议我使用";目标用户名";以过滤我的日志。但这不是我想要的"目标用户名";只处理登录日志。

您只需使用UserName来检索其SID,以便在wevtutil命令中使用。

从命令提示符,(cmd(:

For /F %G In ('%SystemRoot%System32wbemWMIC.exe UserAccount Where "Name='KnownUserName'" Get SID 2^>NUL ^| %SystemRoot%System32find.exe "-"') Do @%SystemRootSystem32wevtutil.exe CommandLineOptions

您只需替换KnownUserNameCommandLineOptions,并用%G替换它们的SID。

或者从批处理文件:

@For /F %%G In ('%SystemRoot%System32wbemWMIC.exe UserAccount Where
"Name='KnownUserName'" Get SID 2^>NUL ^| %SystemRoot%System32find.exe "-"'
) Do @%SystemRootSystem32wevtutil.exe CommandLineOptions

显然,您将再次替换KnownUserNameCommandLineOptions,并用%%G替换它们的SID。

最新更新