我想为特定的用户名过滤一些日志。在事件查看器中,您可以在上述字段中输入用户名,它将过滤您的日志。但是我想使用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
您只需替换KnownUserName
和CommandLineOptions
,并用%G
替换它们的SID。
或者从批处理文件:
@For /F %%G In ('%SystemRoot%System32wbemWMIC.exe UserAccount Where
"Name='KnownUserName'" Get SID 2^>NUL ^| %SystemRoot%System32find.exe "-"'
) Do @%SystemRootSystem32wevtutil.exe CommandLineOptions
显然,您将再次替换KnownUserName
和CommandLineOptions
,并用%%G
替换它们的SID。