如何在PowerShell中报告一个Azure资源的多个诊断设置

jc3wubiy  于 2023-05-01  发布在  Shell
关注(0)|答案(1)|浏览(92)

因此,我正在编写一个脚本,该脚本将在Azure中按名称列出诊断设置,我已经弄明白了。我也在寻找资源,有一个以上的诊断设置设置,因为我们只有一个希望为每个资源。
我尝试运行($。Count -gt 1)和($。Name -gt 1),但它只列出订阅中分配了诊断设置的所有资源。
以下是我目前的全部线路:

$resourceId = $azResource.ResourceId
    $azDiagSettings = Get-AzDiagnosticSetting -ResourceId $resourceId -ErrorAction SilentlyContinue | 
       # Where-Object { ($_.Name -eq 'setbypolicy_logAnalytics') }
        Where-Object { ($_.Name -gt 1) -or ($_.Name -ne 'setbypolicy') -and ($_.Name -ne     'setbypolicy_logAnalytics') }

任何帮助都很感激。我对PowerShell比较陌生,但这一个是难倒了我。
试图查找应用了多个诊断设置的资源,但却得到了分配的所有诊断设置的完整列表

djp7away

djp7away1#

要查找应用了多个诊断设置的资源,请执行以下操作:

  • 我尝试了下面的PS脚本以获得所需的结果,它的工作原理如下。*
$resource = Get-AzResource -ResourceGroupName "xxxxx"
foreach ($res in $resource) {
    $diagnosticSettings = Get-AzDiagnosticSetting -ResourceId $res.ResourceId
   if ($diagnosticSettings.Count -gt 1) {
     Write-Output $res.Name
   }
 }

我已获取应用了多个诊断程序的资源,并运行了上述脚本。

输出-1:

现在我已经尝试了没有任何诊断设置的资源,并且在下面的输出中没有获得任何设置,因为它没有任何设置。

相关问题