使用 Powershell 列出所有 Azure 存储帐户和网络规则

Use Powershell List All Azure Storage Accounts & Network Rules

我在一个客户端租户中有大约 50 个 Azure 存储帐户。我需要检查并更新存储帐户,以便 网络访问仅限于特定的虚拟网络 。少数存储帐户设置了网络限制,但大多数 没有

我需要一种方法 select 所有存储帐户,然后在 Azure 门户中一次一个地手动 selecting 所有存储帐户,然后列出网络规则为每个存储帐户放置(如果有)存储帐户也在不同的资源组中。我 运行 一个获取 所有存储帐户列表的基本命令 但现在我想显示应用于每个存储帐户的网络规则:

Get-AzureRMStorageAccount | Export-CSV C:\....
Get-AzureRmStorageAccountNetworkRuleSet  -ResourceGroupName "allRG's" -AccountName "allStorageAccounts"

我不确定如何发出 Get-AzureRmStorageAccountNetworkRuleSet 命令并让它 select 每个存储帐户及其各自的资源组。任何帮助将不胜感激,谢谢!

您可以使用以下 powershell 脚本获取订阅中存在的所有存储帐户,然后获取网络规则集 属性。

Connect-AzAccount
$Result=@()
$Storageaccounts = Get-AzStorageAccount
$Storageaccounts | ForEach-Object {
$storageaccount = $_
Get-AzStorageAccountNetworkRuleSet -ResourceGroupName $storageaccount.ResourceGroupName -AccountName $storageaccount.StorageAccountName | ForEach-Object {
$Result += New-Object PSObject -property @{ 
Account = $storageaccount.StorageAccountName
ResourceGroup = $storageaccount.ResourceGroupName
Bypass = $_.Bypass
Action = $_.DefaultAction
IPrules = $_.IpRules
Vnetrules = $_.VirtualNetworkRules
ResourceRules = $_.ResourceAccessRules
}
}
}
$Result | Select Account,ResourceGroup,Bypass,Action,IPrules,Vnetrules,ResourceRules

输出: