我已经安装了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'}
答案 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
,时间是正确的。
-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
进行检查,效果很好。