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

New-AzPolicySetDefinition

创建或更新策略集定义。

语法

New-AzPolicySetDefinition
   -Name <String>
   -PolicyDefinition <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-Parameter <String>]
   [-PolicyDefinitionGroup <String>]
   [-BackwardCompatible]
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzPolicySetDefinition
   -Name <String>
   -ManagementGroupName <String>
   -PolicyDefinition <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-Parameter <String>]
   [-PolicyDefinitionGroup <String>]
   [-BackwardCompatible]
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzPolicySetDefinition
   -Name <String>
   -SubscriptionId <String>
   -PolicyDefinition <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-Parameter <String>]
   [-PolicyDefinitionGroup <String>]
   [-BackwardCompatible]
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

New-AzPolicySetDefinition cmdlet 使用给定名称在给定的订阅或管理组中创建或更新策略集定义。

示例

示例 1:使用策略集文件创建包含元数据的策略集定义

[
   {
      "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
      "parameters": {
         "tagName": {
            "value": "Business Unit"
         },
         "tagValue": {
            "value": "Finance"
         }
      }
   },
   {
      "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/464dbb85-3d5f-4a1d-bb09-95a9b5dd19cf"
   }
]

New-AzPolicySetDefinition -Name 'VMPolicySetDefinition' -Metadata '{"category":"Virtual Machine"}' -PolicyDefinition C:\VMPolicySet.json

此命令创建名为 VMPolicySetDefinition 的策略集定义,其中包含其类别为“虚拟机”,其中包含 C:\VMPolicy.json中指定的策略定义。 上面提供了VMPolicy.json的示例内容。

示例 2:创建参数化策略集定义

[
   {
      "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
      "parameters": {
         "tagName": {
            "value": "Business Unit"
         },
         "tagValue": {
            "value": "[parameters('buTagValue')]"
         }
      }
   },
   {
      "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/464dbb85-3d5f-4a1d-bb09-95a9b5dd19cf"
   }
]

New-AzPolicySetDefinition -Name 'VMPolicySetDefinition' -PolicyDefinition C:\VMPolicySet.json -Parameter '{ "buTagValue": { "type": "string" } }'

此命令创建名为 VMPolicySetDefinition 的参数化策略集定义,其中包含 C:\VMPolicy.json 中指定的策略定义。 上面提供了VMPolicy.json的示例内容。

示例 3:使用策略定义组创建策略集定义

[
   {
      "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
      "groupNames": [ "group1" ]
   },
   {
      "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/464dbb85-3d5f-4a1d-bb09-95a9b5dd19cf",
      "groupNames": [ "group2" ]
   }
]

$groupsJson = ConvertTo-Json @{ name = "group1" }, @{ name = "group2" }
New-AzPolicySetDefinition -Name 'VMPolicySetDefinition' -GroupDefinition $groupsJson -PolicyDefinition C:\VMPolicySet.json

此命令使用 C:\VMPolicy.json中指定的策略定义分组创建名为 VMPolicySetDefinition 的策略集定义。 上面提供了VMPolicy.json的示例内容。

参数

-BackwardCompatible

导致 cmdlet 使用旧格式在属性包对象中放置特定于策略的属性返回项目。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
Aliases:cf
Position:Named
默认值:None
必需:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

DefaultProfile 参数不起作用。 如果对其他订阅执行 cmdlet,请使用 SubscriptionId 参数。

类型:PSObject
Aliases:AzureRMContext, AzureCredential
Position:Named
默认值:None
必需:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

策略集定义说明。

类型:String
Position:Named
默认值:None
必需:False
Accept pipeline input:True
Accept wildcard characters:False

-DisplayName

策略集定义的显示名称。

类型:String
Position:Named
默认值:None
必需:False
Accept pipeline input:True
Accept wildcard characters:False

-ManagementGroupName

管理组的 ID。

类型:String
Position:Named
默认值:None
必需:True
Accept pipeline input:True
Accept wildcard characters:False

-Metadata

策略集定义元数据。 元数据是一个开放结束的对象,通常是键值对的集合。

类型:String
Position:Named
默认值:None
必需:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

要创建的策略集定义的名称。

类型:String
Aliases:PolicySetDefinitionName
Position:Named
默认值:None
必需:True
Accept pipeline input:True
Accept wildcard characters:False

-Parameter

策略规则中使用的参数的参数定义。 键是参数名称。

类型:String
Position:Named
默认值:None
必需:False
Accept pipeline input:False
Accept wildcard characters:False

-PolicyDefinition

JSON 字符串形式的策略定义数组。

类型:String
Position:Named
默认值:None
必需:True
Accept pipeline input:False
Accept wildcard characters:False

-PolicyDefinitionGroup

描述策略集定义中的策略定义引用组的元数据。 若要构造,请参阅 POLICYDEFINITIONGROUP 属性的 NOTES 部分,并创建哈希表。

类型:String
Aliases:GroupDefinition
Position:Named
默认值:None
必需:False
Accept pipeline input:False
Accept wildcard characters:False

-SubscriptionId

目标订阅的 ID。

类型:String
Position:Named
默认值:None
必需:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
Aliases:wi
Position:Named
默认值:None
必需:False
Accept pipeline input:False
Accept wildcard characters:False

输入

String

输出

IPolicySetDefinition