Powershell - Get-WinEvent 替换文本

Powershell - Get-WinEvent Replace Text

我有一个查看特定事件日志的大型脚本。其中一部分是以下命令:

Get-EventLog -ComputerName $computer -InstanceId 4625 -LogName Security -After $date -ErrorAction Stop | Select TimeWritten,@{n='Reason for Failure';e={$_.ReplacementStrings[8]}}

我收到以下输出:

TimeWritten         Reason for Failure
-----------         ------------------
08/05/2018 10:55:06 %%2313            
08/05/2018 09:19:24 %%2313            
08/05/2018 07:49:22 %%2304            
08/05/2018 07:49:22 %%2304  

是否可以将失败原因列中的输出更改为其他消息。我知道 -replace 运算符,但我正在为如何合并它而苦苦挣扎?

这会让您朝着正确的方向前进:

$failures = @{'%%2313' = 'Unknown User Name or Bad Password';
              '%%2304' = 'An Error occured during Logon'
             }
Get-EventLog -ComputerName $computer -InstanceId 4625 -LogName Security -After $date -ErrorAction Stop | Select TimeWritten,@{n='Reason for Failure';e={$failures[$_.Message]}}

将 $_.Message 更改为具有错误代码的字段。