PowerShell 技能连载 - 读取事件日志(第 2 部分)
在上一个技能中,我们鼓励您弃用 Get-EventLog cmdlet,而开始使用 Get-WinEvent——因为后者功能更强大,并且在 PowerShell 7 中不再支持前者。
让我们再次练习如何将 Get-EventLog 语句转换为 Get-WinEvent。这是我想翻译的一行代码。它从过去 48 小时内发生的系统事件日志中返回所有错误和警告:
1  | $twoDaysAgo = (Get-Date).AddDays(-2)Get-EventLog -LogName System -EntryType Error, Warning -After $twoDaysAgo  | 
这将是在所有 PowerShell 版本中均可使用的 Get-WinEvent 单行代码:
1  | $twoDaysAgo = (Get-Date).AddDays(-2)Get-WinEvent -FilterHashtable @{  | 
它返回相同的事件,但是速度更快。以下是您可以在哈希表中使用的其余键:
| col 1 | col 2 | col 3 | 
|---|---|---|
| Key name | Data Type | Wildcards Allowed | 
| LogName | <String[]> | Yes | 
| ProviderName | <String[]> | Yes | 
| Path | <String[]> | No | 
| Keywords | <Long[]> | No | 
| ID | <Int32[]> | No | 
| Level | <Int32[]> | No | 
| StartTime | No | |
| EndTime | No | |
| UserID | No | |
| Data | <String[]> | No | 
PowerShell 技能连载 - 读取事件日志(第 2 部分)
http://blog.vichamp.com/2020/12/08/reading-event-logs-part-2/

