-
Notifications
You must be signed in to change notification settings - Fork 0
/
auto-cleanup.ps1
35 lines (29 loc) · 1.15 KB
/
auto-cleanup.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Connect to Azure with system-assigned managed identity
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process
# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
# Get the current universal time in the default string format.
$currentUTCtime = (Get-Date).ToUniversalTime()
# Write an information log with the current time.
Write-Output "PowerShell shows current TIME: $currentUTCtime"
$currentDate = Get-Date
$subscriptions = Get-AzSubscription
Foreach ($subscription in $subscriptions)
{
Set-AzContext -Subscription $subscription
$rgs= Get-AzResourceGroup
Foreach ($rg in $rgs) {
$tags = $rg.Tags
if ($tags){
if ($tags.Contains("DeletionDate")){
$date = [datetime]$tags.item("DeletionDate")
if ($date -lt $currentDate){
$rgname = $rg.ResourceGroupName
Write-Output "Task Finished! Removed resource groups: ${rgname}"
Remove-AzResourceGroup -Name $rgname -AsJob -Force
}
}
}
}
}