我正试图通过powershell在Security中找到最古老的保留事件。
使用以下命令:(Get-EventLog Security | Sort-Object -Property Time -Descending)
这将返回一个没有排序的列表。我在这里做错什么了?
发布于 2018-08-02 16:34:57
这不是Get-EventLog的问题,而是Get-EventLog的输出没有Porperty Time这一事实。
使用Get-Member显示可用属性的列表。
Get-EventLog | Get-Member您将看到,有一个TimeGenerated属性,您可以使用它。
Get-EventLog Security | Sort-Object -Property TimeGenerated -Descending此外,我还想补充一句,这是默认的订单。但是,如果您想切换订单,我建议使用Get-WinEvent,它有一个-Oldest开关。
Get-WinEvent -LogName Security -Oldest发布于 2018-08-02 16:26:27
"Time“是为输出目的而生成的字符串,而不是datetime对象,因此正在进行的排序不是按时间顺序进行的,而是不存在的。
查看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使用空值“工作”,因此缺少可见的更改。
两种方法都可以使用属性TimeGenerated属性代替
https://stackoverflow.com/questions/51658007
复制相似问题