Sometimes you need to temporarily pause or permanently delete automated cost exports - whether for maintenance, to reduce storage costs, or because the export is no longer needed. This guide shows you how to disable, pause, or delete Azure Cost Management exports safely.
Overview
Azure Cost Management exports can be disabled (temporarily paused), deleted (permanently removed), or modified to change their schedule or scope. This guide covers all three scenarios and explains when to use each option. Disabling an export stops new data from being exported but preserves the export configuration for future use. Deleting an export permanently removes the configuration but doesn't delete historical export files already in storage.
Prerequisites
Before you begin, ensure you have:
- Cost Management Contributor role or higher on the billing scope (subscription, resource group, or management group)
- Azure Portal access or Azure CLI/PowerShell installed
- Understanding of which export(s) you want to disable
- Confirmation from stakeholders that the export can be paused or deleted (if used by others)
Step-by-Step Guide
Step 1: Identify Exports to Disable
Before disabling exports, identify which ones you want to manage:
Via Azure Portal:
- Sign in to the Azure Portal
- Navigate to Cost Management + Billing
- Select Cost Management from the left menu
- Click Exports under the Settings section
- Review the list of configured exports:
- Export name
- Schedule (Daily, Weekly, Monthly, One-time)
- Last run date
- Status (Active, Inactive)
- Storage destination
Via Azure CLI:
# List all exports for a subscription
SUBSCRIPTION_ID="00000000-0000-0000-0000-000000000000"
az costmanagement export list \
--scope "/subscriptions/$SUBSCRIPTION_ID" \
--output table
# Get details of a specific export
EXPORT_NAME="DailyCostExport"
az costmanagement export show \
--name $EXPORT_NAME \
--scope "/subscriptions/$SUBSCRIPTION_ID"
Via PowerShell:
# Set subscription context
$SubscriptionId = "00000000-0000-0000-0000-000000000000"
Set-AzContext -SubscriptionId $SubscriptionId
# List all exports
Get-AzCostManagementExport -Scope "/subscriptions/$SubscriptionId"
# Get specific export details
$ExportName = "DailyCostExport"
Get-AzCostManagementExport `
-Name $ExportName `
-Scope "/subscriptions/$SubscriptionId"
Step 2: Disable Export (Temporary Pause)
To temporarily stop an export without deleting the configuration:
Via Azure Portal:
- Navigate to Cost Management + Billing > Cost Management > Exports
- Find the export you want to disable
- Click on the export name to open its details
- Click Edit in the top menu
- Under Schedule, change the status to Inactive
- Or set the end date to today's date
- Click Save
- The export will no longer run, but configuration is preserved
Note: Azure Portal doesn't have a dedicated "disable" button. The best approach is to set an end date in the past or modify the schedule.
Via Azure CLI:
# There's no direct "disable" command in Azure CLI
# Option 1: Update the export to set an end date in the past
az costmanagement export update \
--name $EXPORT_NAME \
--scope "/subscriptions/$SUBSCRIPTION_ID" \
--schedule-recurrence "Daily" \
--schedule-recurrence-period-from "2024-01-01" \
--schedule-recurrence-period-to "2024-01-01"
# Option 2: Update to a very infrequent schedule (Monthly on a far-future date)
# This effectively pauses the export
Via PowerShell:
# PowerShell also doesn't have a direct disable command
# Update the export with an end date in the past
$ExportParams = @{
Name = $ExportName
Scope = "/subscriptions/$SubscriptionId"
ScheduleRecurrence = "Daily"
ScheduleRecurrencePeriodFrom = "2024-01-01"
ScheduleRecurrencePeriodTo = "2024-01-01"
}
Update-AzCostManagementExport @ExportParams
Step 3: Delete Export (Permanent Removal)
To permanently delete an export configuration:
Via Azure Portal:
- Navigate to Cost Management + Billing > Cost Management > Exports
- Find the export you want to delete
- Click the three dots (...) menu on the right side of the export row
- Select Delete
- Confirm deletion in the dialog box
- Click Yes or Delete
Important: Deleting the export configuration does NOT delete the historical export files already stored in your storage account. Those files remain until you manually delete them or they're removed by lifecycle policies.
Via Azure CLI:
# Delete a specific export
az costmanagement export delete \
--name $EXPORT_NAME \
--scope "/subscriptions/$SUBSCRIPTION_ID"
# Delete without confirmation prompt (use with caution)
az costmanagement export delete \
--name $EXPORT_NAME \
--scope "/subscriptions/$SUBSCRIPTION_ID" \
--yes
# Delete multiple exports using a script
for export in "DailyCostExport" "WeeklyUsageExport" "MonthlyBillingExport"; do
echo "Deleting export: $export"
az costmanagement export delete \
--name "$export" \
--scope "/subscriptions/$SUBSCRIPTION_ID" \
--yes
done
Via PowerShell:
# Delete a specific export
Remove-AzCostManagementExport `
-Name $ExportName `
-Scope "/subscriptions/$SubscriptionId"
# Delete without confirmation
Remove-AzCostManagementExport `
-Name $ExportName `
-Scope "/subscriptions/$SubscriptionId" `
-Confirm:$false
# Delete multiple exports
$ExportsToDelete = @("DailyCostExport", "WeeklyUsageExport", "MonthlyBillingExport")
foreach ($Export in $ExportsToDelete) {
Write-Host "Deleting export: $Export"
Remove-AzCostManagementExport `
-Name $Export `
-Scope "/subscriptions/$SubscriptionId" `
-Confirm:$false
}
Step 4: Clean Up Historical Export Files (Optional)
After disabling or deleting an export, you may want to remove historical export files from storage:
Via Azure Portal:
- Navigate to the storage account used for exports
- Select Containers
- Click on the container (e.g.,
cost-exports) - Navigate to the folder for the deleted export
- Select files or folders to delete:
- Click checkbox next to files/folders
- Click Delete in the top menu
- Confirm deletion
Via Azure CLI:
STORAGE_ACCOUNT="sacostexportscontoso"
CONTAINER_NAME="cost-exports"
EXPORT_FOLDER="DailyCostExport"
# List files in the export folder
az storage blob list \
--account-name $STORAGE_ACCOUNT \
--container-name $CONTAINER_NAME \
--prefix "$EXPORT_FOLDER/" \
--auth-mode login \
--output table
# Delete all files in the export folder
az storage blob delete-batch \
--account-name $STORAGE_ACCOUNT \
--source $CONTAINER_NAME \
--pattern "$EXPORT_FOLDER/*" \
--auth-mode login
# Delete just files older than 90 days
# This requires a script to filter by date
Via PowerShell:
$StorageAccount = "sacostexportscontoso"
$ResourceGroup = "rg-billing-exports"
$ContainerName = "cost-exports"
$ExportFolder = "DailyCostExport"
# Get storage context
$Context = (Get-AzStorageAccount `
-ResourceGroupName $ResourceGroup `
-Name $StorageAccount).Context
# List files in export folder
Get-AzStorageBlob `
-Container $ContainerName `
-Context $Context `
-Prefix "$ExportFolder/" | Format-Table Name, LastModified, Length
# Delete all files in the export folder
Get-AzStorageBlob `
-Container $ContainerName `
-Context $Context `
-Prefix "$ExportFolder/" | Remove-AzStorageBlob
# Delete files older than 90 days
$CutoffDate = (Get-Date).AddDays(-90)
Get-AzStorageBlob `
-Container $ContainerName `
-Context $Context `
-Prefix "$ExportFolder/" |
Where-Object { $_.LastModified -lt $CutoffDate } |
Remove-AzStorageBlob -Force
Step 5: Re-enable Export (If Temporarily Disabled)
To restart a previously disabled export:
Via Azure Portal:
- Navigate to Cost Management + Billing > Cost Management > Exports
- Click on the disabled export
- Click Edit
- Update the schedule:
- Set recurrence period "From" to today or desired start date
- Set "To" to a future date or leave blank for indefinite
- Click Save
- The export will resume on its next scheduled run
Via Azure CLI:
# Update export to resume from today
TODAY=$(date +%Y-%m-%d)
az costmanagement export update \
--name $EXPORT_NAME \
--scope "/subscriptions/$SUBSCRIPTION_ID" \
--schedule-recurrence "Daily" \
--schedule-recurrence-period-from "$TODAY" \
--schedule-recurrence-period-to "2099-12-31"
Via PowerShell:
# Update export to resume from today
$Today = Get-Date -Format "yyyy-MM-dd"
Update-AzCostManagementExport `
-Name $ExportName `
-Scope "/subscriptions/$SubscriptionId" `
-ScheduleRecurrence "Daily" `
-ScheduleRecurrencePeriodFrom $Today `
-ScheduleRecurrencePeriodTo "2099-12-31"
Step 6: Verify Export Status
Confirm the export has been disabled or deleted:
Via Azure Portal:
- Navigate to Cost Management > Exports
- Check that deleted exports are no longer listed
- For disabled exports, verify:
- Last run date is in the past
- Next run date is blank or far in the future
- Check the Activity log for delete/update operations
Via Azure CLI:
# Try to retrieve the deleted export (should fail)
az costmanagement export show \
--name $EXPORT_NAME \
--scope "/subscriptions/$SUBSCRIPTION_ID"
# List remaining exports
az costmanagement export list \
--scope "/subscriptions/$SUBSCRIPTION_ID" \
--output table
Via PowerShell:
# Try to get deleted export (should return error)
Get-AzCostManagementExport `
-Name $ExportName `
-Scope "/subscriptions/$SubscriptionId"
# List remaining exports
Get-AzCostManagementExport `
-Scope "/subscriptions/$SubscriptionId" |
Format-Table Name, ScheduleRecurrence, Status
Best Practices
Before Disabling or Deleting
- Communicate with stakeholders who may depend on the export data
- Document the reason for disabling/deleting (compliance, cost savings, etc.)
- Verify alternative data sources are available if needed
- Export one final backup before deletion if the data is valuable
- Check for dependent processes (Power BI reports, automated scripts, etc.)
When to Disable vs Delete
-
Disable (pause) when:
- Temporary maintenance or troubleshooting
- Storage account migration in progress
- Awaiting approval for continued export
- Testing alternative export configurations
-
Delete when:
- Export is no longer needed permanently
- Consolidating multiple exports into one
- Replacing with a different export tool or method
- Decommissioning a project or subscription
Storage Cleanup
- Don't delete historical files immediately - they may be needed for audits or analysis
- Implement lifecycle policies to automatically archive/delete old files
- Keep at least 13 months of billing data for year-over-year comparisons
- Archive to Azure Archive Storage for long-term retention at lower cost
Documentation
- Maintain inventory of all exports and their purposes
- Document export schedules and who depends on each export
- Track deletion dates and retention policies
- Update runbooks when exports are disabled or deleted
Troubleshooting
Cannot Delete Export
Problem: Delete operation fails with permission error
Solution:
- Verify you have Cost Management Contributor role on the billing scope
- Check if export is managed by Azure Policy (may be protected)
- Ensure you're trying to delete at the correct scope (subscription vs management group)
- Try using Azure CLI/PowerShell if Portal has issues
Export Still Running After Disable
Problem: Export continues to generate files after being disabled
Solution:
- Check that you saved the changes after editing
- Verify the schedule end date is in the past
- Wait for current run to complete (can't cancel in-progress exports)
- Delete the export if disabling doesn't work
- Check for duplicate exports with similar names
Cannot Access Historical Export Files
Problem: Need to access old export files but they're deleted or inaccessible
Solution:
- Check storage account soft delete (files may be recoverable within retention period)
- Review storage account lifecycle policies (files may be in Archive tier)
- Check backup solutions that may have copied the files
- Recreate exports for historical periods if data is still available in Cost Management
- Contact Azure Support for assistance with data recovery
Accidentally Deleted Wrong Export
Problem: Deleted the wrong export configuration
Solution:
- Recreate the export immediately with same configuration
- Check Azure Activity Log for export configuration details
- Review documentation or infrastructure-as-code repos for export definitions
- No way to "undelete" an export - must recreate manually
Storage Costs Not Decreasing After Deletion
Problem: Storage costs remain high after deleting exports
Solution:
- Deleting export config doesn't delete files - must delete files separately (Step 4)
- Check storage account metrics for actual usage
- Review all containers for unexpected data
- Implement lifecycle policies to automatically manage retention
- May take 24-48 hours for usage to reflect in billing
Next Steps
After disabling or deleting exports:
-
Clean up storage: Remove unnecessary historical export files
- See: "How to Secure Cost Management Data in Azure Storage and Synapse"
-
Review remaining exports: Optimize frequency and scope of other exports
- See: "How to Enable Cost Management Export to Azure Storage"
-
Update documentation: Record changes to export configurations
- Update team wikis, runbooks, and infrastructure documentation
-
Notify stakeholders: Inform teams depending on the export
- Update distribution lists and monitoring alerts
-
Monitor cost impact: Track storage cost reductions
- See: "How to Set Up Cost Alerts and Budgets in Azure"
Related Resources
Frequently Asked Questions
Find answers to common questions
To confirm that an Azure Cost Management export is disabled, navigate to Cost Management > Exports in the Azure Portal. Check the export's last run date; it should be in the past. Additionally, ensure that the next run date is either blank or set far into the future. You can also check the Activity log for any recent delete or update operations related to the export. If using Azure CLI or PowerShell, attempt to retrieve the export; it should fail with an error indicating that the export does not exist.
Need Professional Help?
Our team of experts can help you implement and configure these solutions for your organization.