You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure诊断设置:PowerShell输出Event Hub与Log Analytics Workspace值为空排查求助

Azure PowerShell获取诊断设置时Event Hub和Log Analytics Workspace字段为空

在Azure门户中已为资源诊断设置配置Event Hub和Log Analytics Workspace值,但执行以下PowerShell脚本获取诊断设置时,这两个字段输出为空值:

$resources = Get-AzResource

# Iterate through each resource and get diagnostic settings
foreach ($resource in $resources) {
    $resourceName = $resource.Name
    $resourceGroup = $resource.ResourceGroupName
    $resourceType = $resource.ResourceType

    # Get diagnostic settings for the resource
    $diagnosticSettings = Get-AzDiagnosticSetting -ResourceId $resource.Id

    # Print the diagnostic settings
    Write-Host "Resource: $resourceName ($resourceType) in $resourceGroup"
    foreach ($setting in $diagnosticSettings) {
        Write-Host "  - Diagnostic Setting Name: $($setting.Name)"
        Write-Host "  - Event Hub: $($setting.Eventhub)"
        Write-Host "  - Log Analytics workspace: $($setting.LogAnalyticsworkspace)"

}}

问题出在你引用的属性名称错误,Get-AzDiagnosticSetting返回的对象中,Event Hub和Log Analytics Workspace对应的属性名并非脚本里的Eventhub和LogAnalyticsworkspace。

正确的属性说明:

  • Event Hub相关:
    • EventHubName:配置的Event Hub名称
    • EventHubAuthorizationRuleId:Event Hub的授权规则ID
  • Log Analytics Workspace:
    • WorkspaceId:目标工作区的资源ID

修正后的脚本:

$resources = Get-AzResource

# Iterate through each resource and get diagnostic settings
foreach ($resource in $resources) {
    $resourceName = $resource.Name
    $resourceGroup = $resource.ResourceGroupName
    $resourceType = $resource.ResourceType

    # Get diagnostic settings for the resource
    $diagnosticSettings = Get-AzDiagnosticSetting -ResourceId $resource.Id

    # Print the diagnostic settings
    Write-Host "Resource: $resourceName ($resourceType) in $resourceGroup"
    foreach ($setting in $diagnosticSettings) {
        Write-Host "  - Diagnostic Setting Name: $($setting.Name)"
        Write-Host "  - Event Hub Name: $($setting.EventHubName)"
        Write-Host "  - Event Hub Auth Rule ID: $($setting.EventHubAuthorizationRuleId)"
        Write-Host "  - Log Analytics Workspace ID: $($setting.WorkspaceId)"
    }
}

你也可以通过$diagnosticSettings | Get-Member命令查看返回对象的所有属性,直接确认字段名称,避免类似的属性名拼写或匹配错误。

内容的提问来源于stack exchange,提问作者Meghana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:31:17