我正在尝试从变量中搜索字符串。
我将Azure活动日志转储到变量中,并尝试查找该日志的特定行。这是我下面的代码。
$log=Get-AzLog -ResourceId "/subscriptions/SubscriptionID/resourceGroups/ResourceGroupName/providers/Microsoft.Sql/servers/qcsqldw/databases/DatabaseName" -StartTime 2020-04-01T00:30
$find=$log | Select-String -Pattern 'Microsoft.Sql/servers/databases/resume/action'
Write-Output $find
我正在尝试从日志中搜索此行“ Action:Microsoft.Sql / servers / databases / resume / action ”
运行上面的脚本时,我没有任何输出。
请帮我。
看来您正在从Azure活动资源日志中搜索“授权操作”属性。如果是这种情况,那么您无需进行任何字符串搜索,只需引用该Authorization.Action
属性即可。Get-AzLog
会给您一个System.Object[]
,通常可以使用Foreach-Object
或来查询Where-Object
。您可以使用查找类型信息(Get-AzLog).GetType().FullName
。
您可以运行以下查询以获取所有结果Foreach-Object
:
Get-AzLog -ResourceId $id -StartTime 2020-04-01T00:30 | ForEach-Object {$_.Authorization.Action}
这将从Authorization.Action
开始时间开始的所有日志中为您提供属性2020-04-01T00:30
。
如果要修改此查询以搜索特定操作,可以使用进行过滤Where-Object
,然后Authorization.Action
从结果中进行选择:
(Get-AzLog -ResourceId $id -StartTime 2020-04-01T00:30 | Where-Object {$_.Authorization.Action -eq "Microsoft.Sql/servers/databases/resume/action"}).Authorization.Action
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句