Set-AzPolicyAssignment

修改原則指派。

Syntax

Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameterObject <Hashtable>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameter <String>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameterObject <Hashtable>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   -Id <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   -PolicyParameter <String>
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzPolicyAssignment
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-AssignIdentity]
   [-Location <String>]
   [-EnforcementMode <PolicyAssignmentEnforcementMode>]
   [-IdentityType <ManagedIdentityType>]
   [-IdentityId <String>]
   -InputObject <PsPolicyAssignment>
   [-NonComplianceMessage <PsNonComplianceMessage[]>]
   [-ApiVersion <String>]
   [-Pre]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

Set-AzPolicyAssignment Cmdlet 會修改原則指派。 依標識碼或名稱和範圍指定指派。

範例

範例 1:更新顯示名稱

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -DisplayName 'Do not allow VM creation'

第一個命令會使用 Get-AzResourceGroup Cmdlet 取得名為 ResourceGroup11 的資源群組。 命令會將該物件儲存在 $ResourceGroup 變數中。 第二個命令會使用 Get-AzPolicyAssignment Cmdlet 來取得名為 PolicyAssignment 的原則指派。 命令會將該物件儲存在$PolicyAssignment變數中。 最後一個命令會更新$ResourceGroup ResourceId 屬性所識別之資源群組上原則指派的顯示名稱。

範例 2:將系統指派的受控識別新增至原則指派

$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -IdentityType 'SystemAssigned' -Location 'westus'

第一個命令會使用 Get-AzPolicyAssignment Cmdlet,從目前的訂用帳戶取得名為 PolicyAssignment 的原則指派。 命令會將該物件儲存在$PolicyAssignment變數中。 最後一個命令會將系統指派的受控識別指派給原則指派。

範例 3:將使用者指派的受控識別新增至原則指派

$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
$UserAssignedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName 'ResourceGroup1' -Name 'UserAssignedIdentity1'
 Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -IdentityType 'UserAssigned' -Location 'westus' -IdentityId $UserAssignedIdentity.Id

第一個命令會使用 Get-AzPolicyAssignment Cmdlet,從目前的訂用帳戶取得名為 PolicyAssignment 的原則指派。 命令會將該物件儲存在$PolicyAssignment變數中。 第二個命令會使用 Get-AzUserAssignedIdentity Cmdlet 取得使用者指派的受控識別 UserAssignedIdentity1,並將它儲存在$UserAssignedIdentity變數中。 最後一個命令會將$UserAssignedIdentity的 Id 屬性所識別的使用者指派受控識別指派給原則指派。

範例 4:使用新的原則參數物件更新原則指派參數

$Locations = Get-AzLocation | Where-Object {($_.displayname -like 'france*') -or ($_.displayname -like 'uk*')}
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -PolicyParameterObject $AllowedLocations

第一個和第二個命令會建立物件,其中包含名稱開頭為 “france” 或 “uk” 的所有 Azure 區域。 第二個命令會將該物件儲存在 $AllowedLocations 變數中。 第三個命令會取得名為 『PolicyAssignment』 的原則指派:命令會將該物件儲存在$PolicyAssignment變數中。 最後一個命令會更新原則指派上名為 PolicyAssignment 的參數值。

範例 5:使用原則參數檔案更新原則指派參數

使用下列內容,在本機工作目錄中建立名為 AllowedLocations.json 的檔案。

{
    "listOfAllowedLocations":  {
      "value": [
        "uksouth",
        "ukwest",
        "francecentral",
        "francesouth"
      ]
    }
}

Set-AzPolicyAssignment -Name 'PolicyAssignment' -PolicyParameter .\AllowedLocations.json

此命令會使用從本機工作目錄AllowedLocations.json的原則參數檔案,更新名為 『PolicyAssignment』 的原則指派。

範例 6:更新 enforcementMode

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -EnforcementMode Default

第一個命令會使用 Get-AzResourceGroup Cmdlet 取得名為 ResourceGroup11 的資源群組。 命令會將該物件儲存在 $ResourceGroup 變數中。 第二個命令會使用 Get-AzPolicyAssignment Cmdlet 來取得名為 PolicyAssignment 的原則指派。 命令會將該物件儲存在$PolicyAssignment變數中。 最後一個命令會更新 $ResourceGroup ResourceId 屬性所識別之資源群組上的原則指派的 enforcementMode 屬性。

範例 7:更新不符合規範的訊息

$PolicyAssignment = Get-AzPolicyAssignment -Name 'VirtualMachinePolicy'
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -NonComplianceMessage @{Message="All resources must follow resource naming guidelines."}

第一個命令會使用 Get-AzPolicyAssignment Cmdlet 取得名為 VirtualMachinePolicy 的原則指派,並將它儲存在$PolicyAssignment變數中。 最後一個命令會以原則拒絕資源時顯示的新訊息,更新原則指派上的不符合規範訊息。

參數

-ApiVersion

指定要使用的資源提供者 API 版本。 如果您未指定版本,此 Cmdlet 會使用最新的可用版本。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AssignIdentity

為此原則指派產生並指派系統指派的受控識別。 執行 'deployIfNotExists' 和 'modify' 原則的部署時,將會使用身分識別。 指派身分識別時需要位置。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

用於與 azure 通訊的認證、帳戶、租用戶和訂用帳戶

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

原則指派的描述

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DisplayName

指定原則指派的新顯示名稱。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnforcementMode

原則指派的強制模式。 目前,有效值為 Default、DoNotEnforce。

Type:Nullable<T>[PolicyAssignmentEnforcementMode]
Accepted values:Default, DoNotEnforce
Position:Named
Default value:Default
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Id

指定此 Cmdlet 修改之原則指派的完整資源識別碼。

Type:String
Aliases:ResourceId
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IdentityId

指定要指派給此原則指派之使用者受控識別的標識碼。 如果 'UserAssigned' 值傳遞至 -IdentityType 參數,則需要此值。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IdentityType

指定要指派給此原則指派的受控識別類型。 如果提供 『SystemAssigned』 值,就會產生系統指派的受控識別,並指派給此原則指派。 如果提供 『UserAssigned』 值,則會將透過標識碼傳遞至 -IdentityId 參數的使用者指派身分識別指派給此原則指派。 執行 'deployIfNotExists' 和 'modify' 原則的部署時,將會使用身分識別。 指派身分識別時需要位置。 建立系統指派的身分識別之後,必須使用 New-AzRoleAssignment 來授與身分識別的許可權。 如果使用 AssignIdentity 和 IdentityType 參數,IdentityType 參數就會優先使用。

Type:Nullable<T>[ManagedIdentityType]
Accepted values:SystemAssigned, UserAssigned, None
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

要更新另一個 Cmdlet 輸出的原則指派物件。

Type:PsPolicyAssignment
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Location

原則指派資源識別的位置。 提供 -IdentityType 值時,這是必要的。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Metadata

原則指派的更新元數據。 這可以是包含元數據的檔名路徑,或是作為字串的元數據。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定此 Cmdlet 修改的原則指派名稱。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NonComplianceMessage

描述資源不符合原則之原因的不符合規範的不符合規範的訊息。

Type:PsNonComplianceMessage[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-NotScope

原則指派不是範圍。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PolicyParameter

原則指派的新原則參數檔案路徑或字串。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PolicyParameterObject

原則指派的新原則參數物件。

Type:Hashtable
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Pre

指出此 Cmdlet 會在自動判斷要使用的版本時,考慮發行前版本 API 版本。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

指定套用原則的範圍。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

輸入

String

String[]

Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]

PsPolicyAssignment

PsNonComplianceMessage[]

輸出

PsPolicyAssignment