打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
万能的PowerShell:筛选Windows事件日志中的关机事件
在对系统进行日志分析和审核时,系统管理员经常都需要手动去筛选并统计出 Windows 的关机事件。以前我一直都是直接在事件查看器中进行手动筛选,如果你要管理的服务器很多,手动操作起来会十分麻烦并低效率。所以想起了用 PowerShell 的 Get-EventLog cmdlet 来自动筛选 Windows 事件日志中的关机事件。
使用Get-EventLog cmdlet超简单
Windows 中提供了 2 个分析事件日志的 PowerShell cmdlet:一个是Get-WinEvent,超级强大,但使用起来比较麻烦;另一个是Get-EventLog,使得起来相当简单,可以实时筛选。今天我们就来细说一下Get-EventLog的简单用法。
从 Windows XP 和 Windows Server 2003 开始,Windows 中便有了关机事件跟踪程序,它可以跟踪 Windows 操作系统的关机事件并将其写入到来源为 USER32 的系统日志当中。因此,我们便可以直接使用 Get-EventLog cmdlet 到系统日志中搜索这样的信息:
Get-EventLog -LogName system -Source user32
通常对于管理员或用户来说,关机事件也是有 2 种的,即:正常关机和非正常关机事件。通常我们都仅关心如蓝屏、掉电等引起的非正常关机事件。
在关机事件的筛选上,我们可以使用如下命令按 EventID 将事件进行分组:
Get-EventLog -LogName system -Source user32 | group EventID
从上图中可以看到,我们目前仅有 EventID: 1074 的事件共 25 次。
如果你想查看关机事件的详细信息,我们可以将其丢到 Format-List cmdlet 来格式化输出。(fl 是 Format-List 的别名)
Get-EventLog -LogName system -Source user32 -Newest 1 | fl *
详细信息的输出包括:机器名、事件生成时间、用户名、消息等一条串内容,对于这些信息我们可以挑有用的进行选择性输出。例如,我们只对关机事件的生成时间(TimeGenerated)和消息(Message)感兴趣,就可以这样来输出。
Get-EventLog -LogName system -Source user32 | Select TimeGenerated, Message
从上图中我们可以看到关机事件的排序是按时间顺序进行排列的,如果你希望按关机事件的发起进程分类排序可以这样写:
Get-EventLog -LogName system -Source user32 | Select TimeGenerated, Message | sort message
这样看起来就好一点了,不过 Message 列的输出太长,我们再来整理下:
Get-EventLog -LogName system -Source user32 | Select TimeGenerated, Message | sort message | ft -Wrap
到这里大家对使用 PowerShell 的 Get-EventLog cmdlet 来筛选 Windows 事件日志中的关机事件应该有个初步了解了,使用起来是不是非常简单。使用 PowerShell 的远程管理等特性,就可以批量在服务器上执行信息收集,非常方便。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#读取Windows日志
「运维有小邓」事件日志审计
EventLog Analyzer中的综合日志收集
.Net下几种日志管理方法
如何读取Windows系统事件日志(获得上次关机时间、本次开机时间等)
网络管理员必备的10个优秀日志分析工具
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服