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

如何用PowerShell遍历所有Azure订阅导出带NetworkRuleSet的存储账户到CSV

Azure跨订阅存储账户网络规则批量查询方案

前置操作

  • 安装Az PowerShell模块:Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force
  • 登录Azure账号:Connect-AzAccount,如果需要指定租户可使用Connect-AzAccount -Tenant <你的租户ID>

完整可执行脚本

# 初始化结果数组
$report = @()
# 获取所有有权限访问的订阅
$subscriptions = Get-AzSubscription

foreach ($sub in $subscriptions) {
    # 切换当前上下文到目标订阅
    Set-AzContext -Subscription $sub.Id | Out-Null
    Write-Host "正在处理订阅:$($sub.Name)"

    # 拉取当前订阅下所有存储账户,无权限时自动跳过
    $storageAccounts = Get-AzStorageAccount -ErrorAction SilentlyContinue
    if (-not $storageAccounts) {
        continue
    }

    foreach ($sa in $storageAccounts) {
        # 获取存储账户网络规则集
        $ruleSet = Get-AzStorageAccountNetworkRuleSet -ResourceGroupName $sa.ResourceGroupName -AccountName $sa.StorageAccountName
        
        # 将数组类型的规则转为分号分隔的可读字符串,适配CSV导出格式
        $ipRulesStr = $ruleSet.IpRules | ForEach-Object { $_.IPAddressOrRange } -join ";"
        $vnetRulesStr = $ruleSet.VirtualNetworkRules | ForEach-Object { $_.VirtualNetworkResourceId } -join ";"
        $resourceRulesStr = $ruleSet.ResourceAccessRules | ForEach-Object { $_.ResourceId } -join ";"

        # 构造输出对象
        $report += [PSCustomObject]@{
            订阅ID = $sub.Id
            订阅名称 = $sub.Name
            存储账户名称 = $sa.StorageAccountName
            资源组名称 = $sa.ResourceGroupName
            位置 = $sa.Location
            跳过的服务类型 = $ruleSet.Bypass -join ";"
            默认访问策略 = $ruleSet.DefaultAction
            允许的IP段 = $ipRulesStr
            允许的虚拟网络 = $vnetRulesStr
            允许的资源访问规则 = $resourceRulesStr
            是否允许所有网络访问 = if ($ruleSet.DefaultAction -eq 'Allow') { '是' } else { '否' }
        }
    }
}

# 导出结果到当前目录的CSV文件
$outputPath = Join-Path -Path $PWD.Path -ChildPath "StorageAccount_NetworkRule_Report.csv"
$report | Export-Csv -Path $outputPath -Encoding UTF8 -NoTypeInformation
Write-Host "报告已生成,路径:$outputPath"

结果说明

  • 默认访问策略为Allow即代表该存储账户开启了允许所有网络访问的选项,对应是否允许所有网络访问字段为是
  • 若默认策略为Deny,可直接在对应规则字段查看已放行的IP、虚拟网络、资源规则
  • 导出的CSV可直接用Excel打开查看和筛选

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:27:02