PowerShell Get-WinEvent只显示Message属性的第一行?

问题描述 投票:1回答:1

熟悉PowerShell,遇到无数问题(缺乏知识)。

我试图按计数列出自己的Windows安全日志记录事件,但我也可以使用“友好”描述字段,它恰好是“消息”属性的第一行。我无法想出一种只提取它的方法。

因此,我正在运行以下内容来获取事件的概述:

PS C:\TEST> Get-WinEvent -FilterHashtable @{logname="security"}| Group-Object id -NoElement | sort count

Count Name
----- ----
    1 4724
    1 4722
    1 1102
    1 4725
    2 4718
    2 6408
    2 4739
    2 1101
    2 5038
    2 4737
    3 4717
    4 6407
    4 4731
   10 4738
   16 1100
   19 4781
   22 4904
   22 4905
   35 6406
   38 5033
   38 5024
   39 4826
   39 4608
   39 4902
   40 4735
  113 4647
  156 4616
  239 5059
  355 4688
  551 4733
  557 4732
  605 4797
  965 5061
  977 5058
 1647 4798
 6364 4907
 6759 4634
 7000 4648
10950 4799
19407 4672
22049 4624

但我想要的是包括“描述/消息”列以显示每个事件ID对应的内容。例如,对于事件ID,Message属性包含以下值(?):

An attempt was made to reset an account's password.

    Subject:
            Security ID:            S-1-5-18
            Account Name:           [EDITED]
            Account Domain:         [EDITED]
            Logon ID:               0x3E7

    Target Account:
            Security ID:            [EDITED]
            Account Name:           Administrator
            Account Domain:         [EDITED]

在整个消息中,我希望仅提取以下行:

An attempt was made to reset an account's password.

因此,回到我原来的观点,理想情况下会显示以下内容:

Count Name Message
----- ---- ----
    1 4724 An attempt was made to reset an account's password.
    1 4722 A user account was enabled.
    1 1102 The audit log was cleared.
(...)
powershell parsing
1个回答
2
投票

试试这个:

$Events = Get-WinEvent -FilterHashtable @{logname="security"} | Group-Object id

$Events | Select-Object Count,Name,@{Name='Message';Expression={ (($_.Group.Message | Select -First 1) -Split "`n")[0] }} | Sort-Object Count -Descending | Format-Table -Wrap

通过删除-NoElementGroup-Object参数来工作,以便我们返回Group结果,然后我们可以从中检索消息属性的第一行。

我们使用Select-Object将计算属性添加到包含消息的结果中。

同样使用Format-Table -Wrap,因此最终输出的视图不会截断第一行,如果它的长。

示例输出:

Count Name Message                                         
----- ---- -------                                         
   81 4798 A user's local group membership was enumerated. 
   13 5379 Credential Manager credentials were read.       
    5 5061 Cryptographic operation.                        
    1 5058 Key file operation.      
© www.soinside.com 2019 - 2024. All rights reserved.