Set-AzStorageAccountManagementPolicy
Creates or modifies the management policy of an Azure Storage account.
Note
This is the previous version of our documentation. Please consult the most recent version for up-to-date information.
Syntax
Set-AzStorageAccountManagementPolicy
[-ResourceGroupName] <String>
[-StorageAccountName] <String>
-Rule <PSManagementPolicyRule[]>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzStorageAccountManagementPolicy
[-ResourceGroupName] <String>
[-StorageAccountName] <String>
-Policy <PSManagementPolicy>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzStorageAccountManagementPolicy
-StorageAccount <PSStorageAccount>
-Rule <PSManagementPolicyRule[]>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzStorageAccountManagementPolicy
-StorageAccount <PSStorageAccount>
-Policy <PSManagementPolicy>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzStorageAccountManagementPolicy
[-StorageAccountResourceId] <String>
-Rule <PSManagementPolicyRule[]>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzStorageAccountManagementPolicy
[-StorageAccountResourceId] <String>
-Policy <PSManagementPolicy>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Set-AzStorageAccountManagementPolicy cmdlet creates or modifies the management policy of an Azure Storage account.
Examples
Example 1: Create or update the management policy of a Storage account with ManagementPolicy rule objects.
PS C:\>$action1 = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 100
PS C:\>$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 50
PS C:\>$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BaseBlobAction TierToCool -DaysAfterLastAccessTimeGreaterThan 30 -EnableAutoTierToHotFromCool
PS C:\>$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -SnapshotAction Delete -daysAfterCreationGreaterThan 100
PS C:\>$filter1 = New-AzStorageAccountManagementPolicyFilter -PrefixMatch ab,cd
PS C:\>$rule1 = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action1 -Filter $filter1
PS C:\>$action2 = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 100
PS C:\>$action2 = Add-AzStorageAccountManagementPolicyAction -InputObject $action2 -BlobVersionAction Delete -daysAfterCreationGreaterThan 100
PS C:\>$filter2 = New-AzStorageAccountManagementPolicyFilter -BlobType appendBlob,blockBlob
PS C:\>$rule2 = New-AzStorageAccountManagementPolicyRule -Name Test2 -Action $action2 -Filter $filter2
PS C:\>Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule1,$rule2
ResourceGroupName : myresourcegroup
StorageAccountName : mystorageaccount
Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default
Type : Microsoft.Storage/storageAccounts/managementPolicies
LastModifiedTime : 2/19/2021 10:13:00 AM
Rules : [
{
"Enabled": true,
"Name": "Test",
"Definition": {
"Actions": {
"BaseBlob": {
"TierToCool": {
"DaysAfterModificationGreaterThan": null,
"DaysAfterLastAccessTimeGreaterThan": 30
},
"TierToArchive": {
"DaysAfterModificationGreaterThan": 50,
"DaysAfterLastAccessTimeGreaterThan": null
},
"Delete": {
"DaysAfterModificationGreaterThan": 100,
"DaysAfterLastAccessTimeGreaterThan": null
},
"EnableAutoTierToHotFromCool": true
},
"Snapshot": {
"Delete": {
"DaysAfterCreationGreaterThan": 100
},
"TierToCool": null,
"TierToArchive": null
},
"Version": null
},
"Filters": {
"PrefixMatch": [
"ab",
"cd"
],
"BlobTypes": [
"blockBlob"
]
}
}
},
{
"Enabled": true,
"Name": "Test2",
"Definition": {
"Actions": {
"BaseBlob": null,
"Snapshot": {
"Delete": {
"DaysAfterCreationGreaterThan": 100
},
"TierToCool": null,
"TierToArchive": null
},
"Version": {
"Delete": {
"DaysAfterCreationGreaterThan": 100
},
"TierToCool": null,
"TierToArchive": null
}
},
"Filters": {
"PrefixMatch": null,
"BlobTypes": [
"appendBlob",
"blockBlob"
]
}
}
}
]
This command first create 2 ManagementPolicy rule objects, then creates or updates the management policy of a Storage account with the 2 ManagementPolicy rule objects.
Example 2: Create or update the management policy of a Storage account with a Json format policy.
PS C:\>Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Policy (@{
Rules=(@{
Enabled=$true;
Name="Test";
Definition=(@{
Actions=(@{
BaseBlob=(@{
TierToCool=@{DaysAfterLastAccessTimeGreaterThan=30};
TierToArchive=@{DaysAfterModificationGreaterThan=50};
Delete=@{DaysAfterModificationGreaterThan=100};
EnableAutoTierToHotFromCool="true";
});
Snapshot=(@{
Delete=@{DaysAfterCreationGreaterThan=100}
TierToArchive=@{DaysAfterCreationGreaterThan=50};
TierToCool=@{DaysAfterCreationGreaterThan=60};
});
Version=(@{
Delete=@{DaysAfterCreationGreaterThan=100};
TierToArchive=@{DaysAfterCreationGreaterThan=50};
TierToCool=@{DaysAfterCreationGreaterThan=60};
});
});
Filters=(@{
BlobTypes=@("blockBlob");
PrefixMatch=@("prefix1","prefix2");
})
})
},
@{
Enabled=$false;
Name="Test2";
Definition=(@{
Actions=(@{
Version=(@{
Delete=@{DaysAfterCreationGreaterThan=100};
});
});
Filters=(@{
BlobTypes=@("blockBlob","appendBlob");
})
})
})
})
ResourceGroupName : myresourcegroup
StorageAccountName : mystorageaccount
Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default
Type : Microsoft.Storage/storageAccounts/managementPolicies
LastModifiedTime : 2/19/2021 10:16:32 AM
Rules : [
{
"Enabled": true,
"Name": "Test",
"Definition": {
"Actions": {
"BaseBlob": {
"TierToCool": {
"DaysAfterModificationGreaterThan": null,
"DaysAfterLastAccessTimeGreaterThan": 30
},
"TierToArchive": {
"DaysAfterModificationGreaterThan": 50,
"DaysAfterLastAccessTimeGreaterThan": null
},
"Delete": {
"DaysAfterModificationGreaterThan": 100,
"DaysAfterLastAccessTimeGreaterThan": null
},
"EnableAutoTierToHotFromCool": true
},
"Snapshot": {
"Delete": {
"DaysAfterCreationGreaterThan": 100
},
"TierToCool": {
"DaysAfterCreationGreaterThan": 60
},
"TierToArchive": {
"DaysAfterCreationGreaterThan": 50
}
},
"Version": {
"Delete": {
"DaysAfterCreationGreaterThan": 100
},
"TierToCool": {
"DaysAfterCreationGreaterThan": 60
},
"TierToArchive": {
"DaysAfterCreationGreaterThan": 50
}
}
},
"Filters": {
"PrefixMatch": [
"prefix1",
"prefix2"
],
"BlobTypes": [
"blockBlob"
]
}
}
},
{
"Enabled": false,
"Name": "Test2",
"Definition": {
"Actions": {
"BaseBlob": null,
"Snapshot": null,
"Version": {
"Delete": {
"DaysAfterCreationGreaterThan": 100
},
"TierToCool": null,
"TierToArchive": null
}
},
"Filters": {
"PrefixMatch": null,
"BlobTypes": [
"blockBlob",
"appendBlob"
]
}
}
}
]
This command creates or updates the management policy of a Storage account with a json format policy.
Example 3: Get the management policy from a Storage account, then set it to another Storage account.
PS C:\>$outputPolicy = Get-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" | Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2"
This command first gets the management policy from a Storage account, then set it to another Storage account.
Parameters
Prompts you for confirmation before running the cmdlet.
| Type: | SwitchParameter |
| Aliases: | cf |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
The credentials, account, tenant, and subscription used for communication with Azure.
| Type: | IAzureContextContainer |
| Aliases: | AzContext, AzureRmContext, AzureCredential |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Management Policy Object to Set
| Type: | PSManagementPolicy |
| Aliases: | ManagementPolicy |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Resource Group Name.
| Type: | String |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet.
| Type: | PSManagementPolicyRule[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Storage account object
| Type: | PSStorageAccount |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Storage Account Name.
| Type: | String |
| Aliases: | AccountName |
| Position: | 1 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Storage Account Resource Id.
| Type: | String |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
| Type: | SwitchParameter |
| Aliases: | wi |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |