首页 > 解决方案 > 排序对象对 Get-EventLog 没有影响

问题描述

我正在尝试通过 powershell 在安全事件日志中找到最旧的保留事件。

使用以下命令:(Get-EventLog Security | Sort-Object -Property Time -Descending)

这将返回一个至少没有排序的列表。我在这里做错了什么?

标签: windowspowershellget-eventlog

解决方案


“时间”是为输出目的生成的字符串,而不是日期时间对象,因此发生的排序不是按时间顺序排列的,而是不存在的。

查看 DotNetTypes.format.ps1xml 您将看到它使用的是TimeGenerated属性的格式化版本。

<TableColumnHeader>
    <Label>Time</Label>
    <Width>13</Width>
</TableColumnHeader>
...
...
<PropertyName>TimeGenerated</PropertyName>
<FormatString>{0:MMM} {0:dd} {0:HH}:{0:mm}</FormatString>

这样做是为了获得更友好的默认输出,但需要注意您遇到的问题。

因此,sort-object是在使用空值“工作”,因此缺乏可见的变化。

无论哪种方式,都使用 propertyTimeGenerated属性


推荐阅读