此代码是否仅生成与事件ID号4201关联的系统事件日志文件的最后一行?我只是不明白.请帮忙!
码:
get-eventlog system | where-object {$_.eventID -eq 4201}
Run Code Online (Sandbox Code Playgroud)
让我们把它分开
get-eventlog- 调用Get-EventLog命令行开关system - 将"系统"一词作为第一个参数传递,这会导致选择系统事件日志| - 将前一个命令行开关的输出作为下一个命令行开关的输入where-object - 根据过滤器表达式过滤输入的命令行开关{ - 表达式的开头$_ - 表示结果集中正在计算的当前行的变量.eventID - 从变量中选择EventID属性.-eq - 测试左侧是否等于右侧4201 - 数字4201表示我们要测试的事件ID.} - 用于过滤的表达式的结尾如您所见,没有任何部分只选择最近的记录.值得庆幸的是,因为Get-EventLog按照从最新到最旧的顺序返回对象,所以我们只需要Select-Object在查询中添加一个.
get-eventlog system | where-object {$_.eventID -eq 4201} | Select-Object -First 1
Run Code Online (Sandbox Code Playgroud)
Select-Object - 根据某些参数筛选出结果集-First - 仅选择下一个属性定义X的前X个项目1 - 数字1表示我们只想要第一个结果.如果我们的列表,以便没有我们需要一个添加Sort-Object到它太
get-eventlog system | where-object {$_.eventID -eq 4201} | Sort-Object -Descending TimeGenerated | Select-Object -First 1
Run Code Online (Sandbox Code Playgroud)
Sort-Object - 根据某些参数对结果进行排序-Descending - 从最大到最小排序TimeGenerated- 使用TimeGenerated属性进行排序注意:您可以删除-Descending和更改-First 1到-Last 1也得到了相同的结果.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |