Update-AzPolicyAssignment
此作業會使用指定的範圍和名稱更新原則指派。
原則指派會套用至其範圍內所包含的所有資源。
例如,當您在資源群組範圍指派原則時,該原則會套用至群組中的所有資源。
語法
Name (預設值)
Update-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Location <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterObject
Update-AzPolicyAssignment
-Name <String>
-PolicyParameterObject <PSObject>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Location <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterString
Update-AzPolicyAssignment
-Name <String>
-PolicyParameter <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Location <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Id
Update-AzPolicyAssignment
-Id <String>
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Location <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
IdParameterObject
Update-AzPolicyAssignment
-Id <String>
-PolicyParameterObject <PSObject>
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Location <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
IdParameterString
Update-AzPolicyAssignment
-Id <String>
-PolicyParameter <String>
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Location <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Update-AzPolicyAssignment
-InputObject <IPolicyAssignment>
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-Location <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-NonComplianceMessage <PSObject[]>]
[-Override <IOverride[]>]
[-ResourceSelector <IResourceSelector[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
此作業會使用指定的範圍和名稱更新原則指派。
原則指派會套用至其範圍內所包含的所有資源。
例如,當您在資源群組範圍指派原則時,該原則會套用至群組中的所有資源。
範例
範例 1:更新顯示名稱
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Update-AzPolicyAssignment -Id $PolicyAssignment.Id -DisplayName 'Do not allow VM creation'
第一個命令會使用 Get-AzResourceGroup Cmdlet 取得名為 ResourceGroup11 的資源群組。
此指令會將該物件儲存在$ResourceGroup變數中。
第二個命令會使用 Get-AzPolicyAssignment Cmdlet 取得名為 PolicyAssignment 的原則指派。
此指令會將該物件儲存在 $PolicyAssignment 變數中。
最後一個命令會更新資源群組上原則指派的顯示名稱,其屬性是由 $ResourceGroup 的 ResourceId 屬性所識別。
範例 2:將系統指派的受控識別新增至原則指派
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
Update-AzPolicyAssignment -Id $PolicyAssignment.Id -IdentityType 'SystemAssigned' -Location 'westus'
第一個命令會使用 Get-AzPolicyAssignment Cmdlet 從目前訂用帳戶取得名為 PolicyAssignment 的原則指派。
此指令會將該物件儲存在 $PolicyAssignment 變數中。
最後一個命令會將系統指派的受控識別指派給原則指派。
範例 3:將使用者指派的受控識別新增至原則指派
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment'
$UserAssignedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName 'ResourceGroup1' -Name 'UserAssignedIdentity1'
Update-AzPolicyAssignment -Id $PolicyAssignment.Id -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'
Update-AzPolicyAssignment -Id $PolicyAssignment.Id -PolicyParameterObject $AllowedLocations
第一個和第二個命令會建立物件,其中包含名稱以 “france” 或 “uk” 開頭的所有 Azure 區域。
第二個命令將該物件儲存在 $AllowedLocations 變數中。
第三個命令會取得名為 'PolicyAssignment' 的原則指派 此命令會將該物件儲存在 $PolicyAssignment 變數中。
最後一個命令會更新名為 PolicyAssignment 的原則指派上的參數值。
範例 5:使用原則參數檔案更新原則指派參數
{
"listOfAllowedLocations": {
"value": [
"uksouth",
"ukwest",
"francecentral",
"francesouth"
]
}
}
Update-AzPolicyAssignment -Name 'PolicyAssignment' -PolicyParameter .\AllowedLocations.json
此命令會使用從本機工作目錄 AllowedLocations.json 的原則參數檔案來更新名為「PolicyAssignment」的原則指派。
範例 6:更新 enforcementMode
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId
Update-AzPolicyAssignment -Id $PolicyAssignment.Id -EnforcementMode Default
第一個命令會使用 Get-AzResourceGroup Cmdlet 取得名為 ResourceGroup11 的資源群組。
此指令會將該物件儲存在$ResourceGroup變數中。
第二個命令會使用 Get-AzPolicyAssignment Cmdlet 取得名為 PolicyAssignment 的原則指派。
此指令會將該物件儲存在 $PolicyAssignment 變數中。
最後一個命令會更新 $ResourceGroup 的 ResourceId 屬性所識別之資源群組上原則指派的 enforcementMode 屬性。
範例 7:更新不合規訊息
$PolicyAssignment = Get-AzPolicyAssignment -Name 'VirtualMachinePolicy'
Update-AzPolicyAssignment -Id $PolicyAssignment.Id -NonComplianceMessage @{Message="All resources must follow resource naming guidelines."}
第一個命令會使用 Get-AzPolicyAssignment Cmdlet 取得名為 VirtualMachinePolicy 的原則指派,並將它儲存在 $PolicyAssignment 變數中。
最後一個命令會以新訊息更新原則指派上的不符合性訊息,如果原則拒絕資源,則會顯示該訊息。
範例 8:更新資源選取器
$ResourceSelector = @{Name = "MyLocationSelector"; Selector = @(@{Kind = "resourceLocation"; NotIn = @("eastus", "eastus2")})}
Update-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -ResourceSelector $ResourceSelector
第一個命令會建立一個資源選取器物件,該物件將用來指定指派應該只套用至不位於美國東部或美國東部 2 的資源,並將它儲存在 $ResourceSelector 變數中。
最後一個命令會使用 $ResourceSelector 指定的資源選取器來更新名為 VirtualMachinePolicyAssignment 的原則指派。
範例 9:更新覆寫
$Selector = @{Kind = "resourceLocation"; NotIn = @("eastus", "eastus2")}
$Override = @(@{Kind = "policyEffect"; Value = 'Disabled'; Selector = @($Selector)})
Update-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -Override $Override
第一個指令會建立位置選取器,指定美國東部或美國東部 2 以外的位置,並儲存在 $Selector 變數中。
第二個指令會建立覆寫物件,用來指定指派的定義在$Selector所識別的位置中應具有「已停用」效果。
最後一個命令會使用 $Override 指定的覆寫來更新名為 VirtualMachinePolicyAssignment 的原則指派。
範例 10:[Backcompat] 更新 enforcementMode
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$PolicyAssignment = Get-AzPolicyAssignment -Name 'PolicyAssignment' -Scope $ResourceGroup.ResourceId -BackwardCompatible
Set-AzPolicyAssignment -Id $PolicyAssignment.ResourceId -EnforcementMode Default
第一個命令會使用 Get-AzResourceGroup Cmdlet 取得名為 ResourceGroup11 的資源群組。
此指令會將該物件儲存在$ResourceGroup變數中。
第二個命令會使用 Get-AzPolicyAssignment Cmdlet 取得名為 PolicyAssignment 的原則指派。
此指令會將該物件儲存在 $PolicyAssignment 變數中。
最後一個命令會更新 $ResourceGroup 的 ResourceId 屬性所識別之資源群組上原則指派的 enforcementMode 屬性。
參數
-BackwardCompatible
導致 Cmdlet 使用舊版格式傳回成品,將原則特定的屬性放在屬性包物件中。
參數屬性
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
參數屬性
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-DefaultProfile
DefaultProfile 參數無法運作。
如果針對不同的訂用帳戶執行 Cmdlet,請使用 SubscriptionId 參數。
參數屬性
類型: PSObject
預設值: None
支援萬用字元: False
不要顯示: False
別名: AzureRMContext, AzureCredential
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-Description
如果違反原則,此訊息將會是回應的一部分。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-DisplayName
原則指派的顯示名稱。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-EnforcementMode
原則指派強制模式。
可能的值為 Default 和 DoNotEnforce。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-Id
要更新的原則指派識別碼。
使用格式 '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
別名: 資源識別碼 (ResourceId), PolicyAssignmentId
參數集
Id
Position: Named
必要: True
來自管線的值: True
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
IdParameterObject
Position: Named
必要: True
來自管線的值: True
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
IdParameterString
Position: Named
必要: True
來自管線的值: True
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-IdentityId
與原則相關聯的使用者身分識別。
使用者身分識別字典索引鍵參考的格式為 ARM 資源標識符:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-IdentityType
識別類型。
將系統或使用者指派的身分識別新增至資源時,這是唯一的必要字段。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
此作業會使用指定的範圍和名稱更新原則指派。
原則指派會套用至其範圍內所包含的所有資源。
例如,當您在資源群組範圍指派原則時,該原則會套用至群組中的所有資源。
InputObject
Position: Named
必要: True
來自管線的值: True
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-Location
原則指派的位置。
只有在使用受控識別時才需要。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
原則指派元數據。
元數據是開放式物件,通常是索引鍵值組的集合。
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-Name
原則指派的名稱。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
別名: 原則指派名稱
參數集
Name
Position: Named
必要: True
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
NameParameterObject
Position: Named
必要: True
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
NameParameterString
Position: Named
必要: True
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-NonComplianceMessage
描述資源不符合原則之原因的訊息。
若要建構,請參閱 NOTES 一節,以取得 NONCOMPLIANCEMESSAGE 內容,並建立雜湊表。
參數屬性
類型: PSObject [ ]
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-NotScope
原則的排除範圍。
參數屬性
類型: String [ ]
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-Override
原則屬性值覆寫。
參數屬性
類型: IOverride [ ]
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-PolicyParameter
指派原則規則的參數值。
索引鍵是參數名稱。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
NameParameterString
Position: Named
必要: True
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
IdParameterString
Position: Named
必要: True
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-PolicyParameterObject
指派原則規則的參數值。
索引鍵是參數名稱。
參數屬性
類型: PSObject
預設值: None
支援萬用字元: False
不要顯示: False
參數集
NameParameterObject
Position: Named
必要: True
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
IdParameterObject
Position: Named
必要: True
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-ResourceSelector
資源選取器清單,可依資源內容篩選原則。
參數屬性
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-Scope
原則指派的範圍。
有效的範圍包括:管理群組 (格式:'/providers/Microsoft.Management/managementGroups/{managementGroup}')、訂用帳戶 (格式:'/subscriptions/{subscriptionId}')、資源群組 (格式:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}') 或資源 (格式:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
Name
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
NameParameterObject
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
NameParameterString
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: True
來自剩餘引數的值: False
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。
指令未執行。
參數屬性
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
CommonParameters
此 Cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters 。
輸出
備註
別名
Set-AzPolicyAssignment