使用 powershell 获取所有 azure 策略分配的列表

问题描述

我正在尝试使用以下命令获取在 azure 中创建的所有策略分配的列表。

但是,当我将分配范围限定到资源组时,下面的命令不会在其输出中返回该分配。请进一步就此提出建议。

Powershell 命令:

获取所有策略分配:

Get-AzPolicyAssignment

此命令返回仅适用于订阅和管理组的分配列表

获取范围为资源组的特定策略分配:

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup01'
Get-AzPolicyAssignment -Name 'PolicyAssignment01' -Scope $ResourceGroup.ResourceId

此命令不返回任何策略分配

参考链接

  1. https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/get-azurermpolicyassignment?view=azurermps-6.13.0

  2. https://docs.microsoft.com/en-us/powershell/module/az.resources/get-azpolicyassignment?view=azps-5.4.0

解决方法

命令看起来正确。

PS C:\> $ResourceGroup = Get-AzResourceGroup -Name '<RESOURCE GROUP>'
PS C:\> Get-AzPolicyAssignment -Name '<Policy Name>' -Scope $ResourceGroup.ResourceId

需要检查的两件事:

  1. $ResourceGroup

您可以检查对象中是否存储了值。

  1. 你可以运行Get-AzPolicyAssignment -scope $ResourceGroup.ResourceId

您可以看到为资源组分配的所有策略。并交叉检查您是否从输出中获得了所需的策略名称。