获取所需日期的Get-AzSecurityAlert结果

时间:2019-09-14 04:14:21

标签: azure powershell

我已经安装了Az.Security模块来运行Get-AzSecurityAlerts命令,该命令提供了Azure安全中心中所有安全警报的详细信息。运行此命令后我得到了所有警报,但

我只需要在特定日期之前,之后或特定日期发出警报。 但是我无法修改参数 ReportedTimeUtc

请帮助我以以下格式修改此参数,以获得所需的结果。

Get-AzSecurityAlerts | Where-Object {$_.ReportedTimeUtc -gt '22-Jun-19 6:16:20 PM' -or -eq '23-Jun-19 8:00:00 PM'}

2 个答案:

答案 0 :(得分:0)

通常在Powershell中,这是您在多种条件下进行过滤的方式:

Get-AzSecurityAlerts | Where-Object {
    $_.ReportedTimeUtc -gt '22-Jun-19 6:16:20 PM' -or
    $_.ReportedTimeUtc -eq '23-Jun-19 8:00:00 PM' -or xxx}

答案 1 :(得分:0)

注释中的此命令格式应该可以使用,对我而言效果很好。

Get-AzSecurityAlert | Where-Object {$_.ReportedTimeUtc -gt ([DateTime]'7-5-2019 10:00:20 AM')}

我使用(Get-AzSecurityAlert | Where-Object {$_.ReportedTimeUtc -gt ([DateTime]'7-5-2019 10:00:20 AM')}).ReportedTimeUtc检查结果中每个警报的ReportedTimeUtc,时间是正确的。

enter image description here

-le参数也可以使用,

Get-AzSecurityAlert | Where-Object {$_.ReportedTimeUtc -le ([DateTime]'7-5-2019 10:00:20 AM')}

我们还可以获取一个时间范围内的警报。

Get-AzSecurityAlert | Where-Object {$_.ReportedTimeUtc -gt ([DateTime]'7-5-2019 10:00:20 AM') -and $_.ReportedTimeUtc -le ([DateTime]'7-6-2019 10:00:20 AM')}

使用-eq时,它不返回任何结果。不确定为什么不起作用,我的解决方法是使用一个较小的时间范围,如下所示,它在7-5-2019 10:00:20 AM处返回警报。

Get-AzSecurityAlert | Where-Object {$_.ReportedTimeUtc -gt ([DateTime]'7-5-2019 10:00:19 AM') -and $_.ReportedTimeUtc -le ([DateTime]'7-5-2019 10:00:21 AM')}

使用(Get-AzSecurityAlert | Where-Object {$_.ReportedTimeUtc -gt ([DateTime]'7-5-2019 10:00:19 AM') -and $_.ReportedTimeUtc -le ([DateTime]'7-5-2019 10:00:21 AM')}).ReportedTimeUtc进行检查,效果很好。

enter image description here