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

使用Get-AzPolicyState提取Azure合规报告及CSV导出报错求助

解决Azure策略合规报告导出报错及需求实现方案

1. 修复BadRequest报错

报错核心原因是命令尝试按无效的table列排序,按以下步骤排查修复:

  • 检查执行的命令是否误加了-OrderBy table参数,若有直接删除
  • 升级Az.PolicyInsights模块至最新版本,规避模块已知bug:
Update-Module -Name Az.PolicyInsights -Force

2. 提取指定字段并导出CSV

执行以下命令,精准筛选不合规资源的目标字段并导出为CSV:

# 获取符合过滤条件的不合规策略状态数据
$nonCompliantData = Get-AzPolicyState -SubscriptionId 'xxx' -Filter "ComplianceState eq 'NonCompliant' and ResourceLocation ne 'eastus' and PolicyDefinitionReferenceId eq 'firewallshouldbeenabledonkeyvaultmonitoringeffect'"

# 映射并提取所需字段
$exportContent = $nonCompliantData | Select-Object `
    @{Name='策略名称'; Expression={$_.PolicyAssignmentName}},
    @{Name='策略描述'; Expression={$_.PolicyDescription}},
    @{Name='资源名称'; Expression={$_.ResourceName}},
    @{Name='资源组'; Expression={$_.ResourceGroupName}},
    @{Name='订阅ID'; Expression={$_.SubscriptionId}}

# 导出到CSV文件(可自定义路径)
$exportContent | Export-Csv -Path 'Azure合规报告.csv' -Encoding UTF8 -NoTypeInformation

3. 导出到Excel(可选)

若需要Excel格式,先安装ImportExcel模块,再执行导出:

# 安装Excel导出模块
Install-Module -Name ImportExcel -Force

# 导出为Excel并优化格式
$exportContent | Export-Excel -Path 'Azure合规报告.xlsx' -AutoSize -BoldTopRow

注意事项

  • 确保PowerShell会话已通过Connect-AzAccount完成订阅权限验证
  • 若策略描述字段为空,可尝试替换为$_.PolicyDefinitionDescription(不同模块版本属性名可能有差异)
  • CSV文件若出现乱码,可将-Encoding UTF8改为-Encoding Default

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:06:00