I am trying to find all the Azure RM resource groups with no resources in it and delete those resource groups using PowerShell. Deleting using Portal is so time consuming. Using
You could try
$allResourceGroups = Get-AzureRmResourceGroup | ForEach-Object { $_.ResourceGroupName }
$resourceGroupsWithResources = Get-AzureRMResource | Group-Object ResourceGroupName | ForEach-Object { $_.Name }
$emptyResourceGroups = $allResourceGroups | Where-Object { $_ -NotIn $resourceGroupsWithResources }
$emptyResourceGroups | ForEach-Object { Remove-AzureRmResourceGroup -Name $_ -Force }
Here they are packaged as functions that can be called
Function Get-AzureRmResourceGroupsWithNoResources {
process {
$allResourceGroups = Get-AzureRmResourceGroup | ForEach-Object { $_.ResourceGroupName }
$resourceGroupsWithResources = Get-AzureRMResource | Group-Object ResourceGroupName | ForEach-Object { $_.Name }
$emptyResourceGroups = $allResourceGroups | Where-Object { $_ -NotIn $resourceGroupsWithResources }
return $emptyResourceGroups
}
}
Function Remove-AzureRmResourceGroupsWithNoResources {
process {
Get-AzureRmResourceGroupsWithNoResources | ForEach-Object { Remove-AzureRmResourceGroup -Name $_ -Force }
}
}