你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Get-AzPolicyState

获取资源的策略符合性状态。

语法

Get-AzPolicyState
   [-All]
   [-SubscriptionId <String>]
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Get-AzPolicyState
   [-All]
   -ManagementGroupName <String>
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Get-AzPolicyState
   [-All]
   [-SubscriptionId <String>]
   -ResourceGroupName <String>
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Get-AzPolicyState
   [-All]
   -ResourceId <String>
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-Expand <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Get-AzPolicyState
   [-All]
   [-SubscriptionId <String>]
   -PolicySetDefinitionName <String>
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Get-AzPolicyState
   [-All]
   [-SubscriptionId <String>]
   -PolicyDefinitionName <String>
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Get-AzPolicyState
   [-All]
   [-SubscriptionId <String>]
   -PolicyAssignmentName <String>
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Get-AzPolicyState
   [-All]
   [-SubscriptionId <String>]
   -ResourceGroupName <String>
   -PolicyAssignmentName <String>
   [-Top <Int32>]
   [-OrderBy <String>]
   [-Select <String>]
   [-From <DateTime>]
   [-To <DateTime>]
   [-Filter <String>]
   [-Apply <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

说明

获取资源的策略符合性状态。 可以在各种范围内查询策略状态记录。 根据指定的时间间隔(默认为最后一天),可以查询最新的策略状态或所有策略状态转换。 可对结果进行筛选、分组和分组聚合。

示例

示例 1:获取当前订阅范围内的最新策略状态

Get-AzPolicyState

获取当前会话上下文中订阅中所有资源的最后一天生成的最新策略状态记录。

示例 2:获取指定订阅范围内的最新策略状态

Get-AzPolicyState -SubscriptionId "fff10b27-fff3-fff5-fff8-fffbe01e86a5"

获取为指定订阅中的所有资源生成的最后一天生成的最新策略状态记录。

示例 3:获取当前订阅范围内的所有策略状态

Get-AzPolicyState -All

获取当前会话上下文中订阅中所有资源在最后一天生成的所有历史策略状态记录(包括最新记录)。

示例 4:获取管理组范围内的最新策略状态

Get-AzPolicyState -ManagementGroupName "myManagementGroup"

获取为指定管理组内的所有资源生成的最后一天生成的最新策略状态记录。

示例 5:获取当前订阅中资源组范围内的最新策略状态

Get-AzPolicyState -ResourceGroupName "myResourceGroup"

获取为指定资源组(当前会话上下文中的订阅)中的所有资源生成的最后一天生成的最新策略状态记录。

示例 6:获取指定订阅中资源组范围内的最新策略状态

Get-AzPolicyState -SubscriptionId "fff10b27-fff3-fff5-fff8-fffbe01e86a5" -ResourceGroupName "myResourceGroup"

获取为指定资源组(在指定订阅中)中的所有资源生成的最后一天生成的最新策略状态记录。

示例 7:获取资源的最新策略状态

Get-AzPolicyState -ResourceId "/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/resourceGroups/myResourceGroup/providers/Microsoft.EventHub/namespaces/myns1/eventhubs/eh1/consumergroups/cg1"

获取为指定资源生成的最后一天生成的最新策略状态记录。

示例 8:获取当前订阅中策略集定义的最新策略状态

Get-AzPolicyState -PolicySetDefinitionName "fff58873-fff8-fff5-fffc-fffbe7c9d697"

获取由指定策略集定义(当前会话上下文中的订阅中存在于订阅中)影响的所有资源(当前会话上下文中的租户中)生成的最新策略状态记录。

示例 9:获取指定订阅中策略集定义的最新策略状态

Get-AzPolicyState -SubscriptionId "fff10b27-fff3-fff5-fff8-fffbe01e86a5" -PolicySetDefinitionName "fff58873-fff8-fff5-fffc-fffbe7c9d697"

获取由指定策略集定义(存在于指定订阅中)影响的所有资源(当前会话上下文中的租户)最后一天生成的最新策略状态记录。

示例 10:获取当前订阅中策略定义的最新策略状态

Get-AzPolicyState -PolicyDefinitionName "fff58873-fff8-fff5-fffc-fffbe7c9d697"

获取由指定策略定义(当前会话上下文中的订阅中存在于订阅中)影响的所有资源(当前会话上下文中的租户)最后一天生成的最新策略状态记录。

示例 11:获取指定订阅中策略定义的最新策略状态

Get-AzPolicyState -SubscriptionId "fff10b27-fff3-fff5-fff8-fffbe01e86a5" -PolicyDefinitionName "fff58873-fff8-fff5-fffc-fffbe7c9d697"

获取由指定策略定义(存在于指定订阅中)影响的所有资源(当前会话上下文中的租户中)最后一天生成的最新策略状态记录。

示例 12:获取当前订阅中策略分配的最新策略状态

Get-AzPolicyState -PolicyAssignmentName "ddd8ef92e3714a5ea3d208c1"

获取由指定策略分配(存在于当前会话上下文中的订阅中的订阅范围)影响的所有资源(当前会话上下文中的租户中)最后一天生成的最新策略状态记录。

示例 13:获取与指定订阅相同的作用域的策略分配的最新策略状态

Get-AzPolicyState -SubscriptionId "fff10b27-fff3-fff5-fff8-fffbe01e86a5" -PolicyAssignmentName "ddd8ef92e3714a5ea3d208c1"

获取由指定策略分配(位于指定订阅中的订阅范围)影响的所有资源(当前会话上下文中的租户中)最后一天生成的最新策略状态记录。

示例 14:获取当前订阅中指定资源组中策略分配的最新策略状态

Get-AzPolicyState -ResourceGroupName "myResourceGroup" -PolicyAssignmentName "ddd8ef92e3714a5ea3d208c1"

获取由指定策略分配(存在于当前会话上下文中的订阅中的资源组中的资源组中)影响的所有资源(当前会话上下文中的租户中)生成的最新策略状态记录。

示例 15:使用 OrderBy、Top 和 Select 查询选项获取当前订阅范围内的最新策略状态

Get-AzPolicyState -OrderBy "Timestamp desc, PolicyAssignmentName asc" -Top 5 -Select "Timestamp, ResourceId, PolicyAssignmentId, PolicySetDefinitionId, PolicyDefinitionId, IsCompliant"

获取当前会话上下文中订阅中所有资源的最后一天生成的最新策略状态记录。 该命令按时间戳和策略分配名称属性对结果进行排序,并且只采用按该顺序列出的结果中的前 5 个。 它还选择仅列出每个记录的列子集。

示例 16:使用“从”和“到”查询选项获取当前订阅范围内的最新策略状态

Get-AzPolicyState -From "2018-03-08 00:00:00Z" -To "2018-03-15 00:00:00Z"

获取在当前会话上下文中为订阅中的所有资源指定的日期范围内生成的最新策略状态记录。

示例 17:使用筛选器查询选项获取当前订阅范围内的最新策略状态

Get-AzPolicyState -Filter "(PolicyDefinitionAction eq 'deny' or PolicyDefinitionAction eq 'audit') and ComplianceState eq 'NonCompliant' and ResourceLocation ne 'eastus'"

获取当前会话上下文中订阅中所有资源的最后一天生成的最新策略状态记录。 该命令根据策略定义操作(包括拒绝或审核操作)、符合性状态(仅包括不符合状态)和资源位置(不包括 eastus 位置)进行筛选来限制返回的结果。

示例 18:获取当前订阅范围内的最新策略状态,并应用指定行计数聚合

Get-AzPolicyState -Apply "aggregate(`$count as NumberOfRecords)"

获取当前会话上下文中订阅中所有资源在最后一天生成的最新策略状态记录数。 该命令仅返回策略状态记录的计数,该记录在 AdditionalProperties 属性内返回。

示例 19:获取当前订阅范围内的最新策略状态,并应用使用聚合指定分组

Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" -Apply "groupby((PolicyAssignmentId, PolicySetDefinitionId, PolicyDefinitionReferenceId, PolicyDefinitionId), aggregate(`$count as NumStates))" -OrderBy "NumStates desc" -Top 5

获取当前会话上下文中订阅中所有资源的最后一天生成的最新策略状态记录。 该命令根据符合性状态筛选返回的结果(仅包括不符合状态)。 它基于策略分配、策略集定义和策略定义对结果进行分组,并计算每个组中返回的记录数,该记录在 AdditionalProperties 属性中返回。 它按计数聚合按降序对结果进行排序,并且只采用该顺序列出的结果的前 5 个。

示例 20:获取当前订阅范围内的最新策略状态,并应用指定分组而不进行聚合

Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" -Apply "groupby((ResourceId))"

获取当前会话上下文中订阅中所有资源的最后一天生成的最新策略状态记录。 该命令根据符合性状态筛选返回的结果(仅包括不符合状态)。 它根据资源 ID 对结果进行分组。这会生成订阅中至少一个策略不符合的所有资源的列表。

示例 21:获取当前订阅范围内的最新策略状态,并应用指定多个分组

Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" -Apply "groupby((PolicyAssignmentId, PolicySetDefinitionId, PolicyDefinitionReferenceId, PolicyDefinitionId, ResourceId))/groupby((PolicyAssignmentId, PolicySetDefinitionId, PolicyDefinitionReferenceId, PolicyDefinitionId), aggregate(`$count as NumNonCompliantResources))" -OrderBy "NumNonCompliantResources desc" -Top 5

获取当前会话上下文中订阅中所有资源的最后一天生成的最新策略状态记录。 该命令根据符合性状态筛选返回的结果(仅包括不符合状态)。 它首先基于策略分配、策略集定义、策略定义和资源 ID 对结果进行分组。然后,它会进一步将此分组的结果与资源 ID 不同的属性分组,并计算每个组中的记录数,这些记录在 AdditionalProperties 属性内返回。 它按计数聚合按降序对结果进行排序,并且只采用该顺序列出的结果的前 5 个。 这会生成最多数量的不符合资源的前 5 个策略。

示例 22:获取最新策略状态,包括资源的策略评估详细信息

Get-AzPolicyState -ResourceId "/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/resourceGroups/myResourceGroup/providers/Microsoft.EventHub/namespaces/myns1/eventhubs/eh1/consumergroups/cg1" -Expand "PolicyEvaluationDetails"

获取指定资源的最后一天生成的最新策略状态记录,并展开 policyEvaluationDetails。

示例 23:给定资源提供程序模式策略分配的情况下获取资源的最新组件策略状态(例如保管库)

Get-AzPolicyState -ResourceId "/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myvault" -Filter "policyAssignmentId eq '/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/providers/Microsoft.Authorization/policyAssignments/ddd8ef92e3714a5ea3d208c1'" -Expand "Components(`$filter=ComplianceState eq 'NonCompliant' or ComplianceState eq 'Compliant')"

获取在指定资源的最后一天生成的最新组件策略状态记录,给定引用资源提供程序模式策略定义的资源提供程序模式策略分配。

示例 24:给定包含资源提供程序模式策略定义的策略计划分配,获取资源(例如保管库)的最新组件策略状态

Get-AzPolicyState -ResourceId "/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myvault" -Filter "policyAssignmentId eq '/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/providers/Microsoft.Authorization/policyAssignments/ddd8ef92e3714a5ea3d208c1' and policyDefinitionReferenceId eq 'myResourceProviderModeDefinitionReferenceId'" -Expand "Components(`$filter=ComplianceState eq 'NonCompliant' or ComplianceState eq 'Compliant')"

获取在指定资源的最后一天生成的最新组件策略状态记录,给定引用包含资源提供程序模式策略定义的计划的资源提供程序模式策略分配。

示例 25:根据给定资源提供程序模式策略分配的符合性状态(例如保管库)获取最新的组件计数

Get-AzPolicyState -ResourceId "/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myvault" -Filter "policyAssignmentId eq '/subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/providers/Microsoft.Authorization/policyAssignments/ddd8ef92e3714a5ea3d208c1'" -Expand "Components(`$filter=ComplianceState eq 'NonCompliant' or ComplianceState eq 'Compliant' or ComplianceState eq 'Conflict';`$apply=groupby((complianceState),aggregate(`$count as count)))"

获取在给定资源提供程序模式策略分配的情况下,按指定资源的符合性状态分组的最后一天生成的最新组件计数。

示例 26:获取管理组范围策略分配的策略状态

Get-AzPolicyState -SubscriptionId "fff10b27-fff3-fff5-fff8-fffbe01e86a5" -Filter "policyAssignmentId eq '/providers/Microsoft.Management/managementGroups/myManagementGroup/providers/Microsoft.Authorization/policyAssignments/ddd8ef92e3714a5ea3d208c1'"

获取受指定策略分配影响的指定订阅中所有资源(当前会话上下文中的租户中)在最后一天生成的最新策略状态记录(分配给作为指定订阅的上级的管理组)。

参数

-All

在指定的时间间隔内,获取所有策略状态,而不是仅获取最新状态。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Apply

使用 OData 表示法为聚合应用表达式。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

类型:IAzureContextContainer
别名:AzContext, AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Expand

使用 OData 表示法展开表达式。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Filter

使用 OData 表示法筛选表达式。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-From

ISO 8601 格式化时间戳,指定要查询的时间间隔的开始时间。 如果未指定,则默认值为“To”参数值减去 1 天。

类型:DateTime
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ManagementGroupName

管理组名称。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-OrderBy

使用 OData 表示法对表达式进行排序。 一个或多个逗号分隔的列名,具有可选的“desc”(默认值)或“asc”。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PolicyAssignmentName

策略分配的名称。 此策略分配的范围必须与参数集完全相同。 它不能是管理组策略分配。 例如:如果 -SubscriptionIdResourceGroupName 指定了策略分配,则必须将策略分配分配给该资源组。 如果仅 -SubscriptionId 指定了策略分配,则必须将策略分配分配给该订阅。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-PolicyDefinitionName

策略定义的名称。 此策略定义必须存在于要查询的订阅中。 它不能是管理组范围策略定义。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-PolicySetDefinitionName

策略集定义的名称。 此策略集定义必须存在于要查询的订阅中。 它不能是管理组策略集定义。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ResourceGroupName

资源组名称。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ResourceId

资源 ID。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Select

使用 OData 表示法选择表达式。 一个或多个逗号分隔的列名。 将每个记录上的列限制为仅请求的列。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SubscriptionId

订阅 ID。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-To

ISO 8601 格式的时间戳,用于指定要查询的时间间隔的结束时间。 如果未指定,则默认为请求时间。

类型:DateTime
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Top

要返回的最大记录数。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

String

输出

PolicyState