powershell Get-WinEvent cmdlt:按时间戳过滤不能产生预期的结
发布时间:2020-12-13 23:46:42 所属栏目:Windows 来源:网络整理
导读:我试图通过Get-WinEvent过滤事件以获取过去24小时内的特定日志: $EventLogFilter = @{logname='ForwardedEvents'; id=4771,4625,4768; StartTime=(Get-Date).AddHours(-24)}$LogonEvents = Get-WinEvent -FilterHashtable $EventLogFilter 问题是Get-WinEve
我试图通过Get-WinEvent过滤事件以获取过去24小时内的特定日志:
$EventLogFilter = @{logname='ForwardedEvents'; id=4771,4625,4768; StartTime=(Get-Date).AddHours(-24)} $LogonEvents = Get-WinEvent -FilterHashtable $EventLogFilter 问题是Get-WinEvent只返回14个事件,但有数千个符合此条件. 例: $EventLogFilter = @{logname='ForwardedEvents'; id=4771,4768; StartTime=(Get-Date).AddHours(-24)} $LogonEvents = (Get-WinEvent -FilterHashtable $EventLogFilter) $LogonEvents.count 14 现在,如果我从Get-WinEvent中删除StartTime过滤器并使用where-object过滤,您可以看到实际有多少这些事件: $EventLogFilter = @{logname='ForwardedEvents'; id=4771,4768} $LogonEvents = (Get-WinEvent -FilterHashtable $EventLogFilter) ($LogonEvents | ?{$_.TimeCreated -ge (Get-Date).Addhours(-24)}).count 19497 所以它错过了近20,000个事件日志!到底发生了什么事,我做了些什么愚蠢的事情,是Get-WinEvent被打破了吗?这个cmldet在它突然出现并产生不可靠结果之前可以过滤的日志数是否有限制?
有人在另一个论坛上给了我答案 – FilterXML来救援.
以下内容为我提供了我想要的更多便利,让GUI为我构建了查询: $FilterXML = '<QueryList> <Query Id="0" Path="ForwardedEvents"> <Select Path="ForwardedEvents">*[System[(EventID=4771 or EventID=4625 or EventID=4768) and TimeCreated[timediff(@SystemTime) <= 86400000]]]</Select> </Query> </QueryList>' $LogonEvents = Get-WinEvent -FilterXml $FilterXML $LogonEvents | sort -Property TimeCreated | Select-Object -First 1 做($LogonEvents | sort -Property TimeCreated | Select-Object -First 1)我能够确认最旧的日志正好是24小时. 应该更多地在文档中探讨,因为我没有事件知道-filterxml.我想我会从现在开始使用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows上的Meteor MongoDb连接
- windows – 嵌套批处理循环
- api – Windows Live Mesh为程序设置提供同步;我可以添加对
- windows-server-2008 – 将VMware映像转换为Virtualbox映像
- win10下VMware安装CentOS7并配置网络
- 如何在WDS部署的专门化传递期间运行PowerShell脚本?
- 如何处理在 Windows 按鼠标右键出现问题 - 使用 ShellExVie
- windows-server-2008-r2 – 用户权限分配策略与本地组成员之
- Windows后登陆没有图形界面只有cmd,explorer.exe不能启动
- 批处理文件 – Windows批处理(cmd.exe)命令行参数和字符串操