Table of Contents
In this post, we will use the Azure PowerShell to delete all resources inside a resource group without deleting the actual resource group.
In many use cases, you might have a situation where you use the same resource group to test things and keep redeploying workloads and deleting them. You have a resource group that you use all the time to deploy test resources then you delete as soon as you finish the testing.
In some cases, organizations give administrators, engineers and developers access to a resource group where they can deploy workloads for testing and other purposes and if the resource group gets deleted the permissions need to reassign which can take time.
So, you need to delete all the resource inside a resource group without deleting the resource group.
Connect to Microsoft Azure PowerShell
First, you need connect to Microsoft Azure PowerShell, there’re two ways to run PowerShell commands in Microsoft Azure:
Method 1: From Azure PowerShell modules installed in a computer.
Method 2: From Azure Cloud Shell using browsers.
Check Resources in a Resource Group
Before we delete the resource inside our resource group lets first check the resource group and all the resource that it holds using the following cmdlet.
Get-AzResource -ResourceGroupName "EastUS-RG" | FT
Get-AzResource -ResourceGroupName "EastUS-RG" | FT
Name ResourceGroupName ResourceType Location
---- ----------------- ------------ --------
vm-001-OS EASTUS-RG Microsoft.Compute/disks eastus
vm-001 EastUS-RG Microsoft.Compute/virtualMachines eastus
vm-001/BGInfo EastUS-RG Microsoft.Compute/virtualMachines/extensions eastus
vm-001-NIC EastUS-RG Microsoft.Network/networkInterfaces eastus
EastUS-vNet-SG EastUS-RG Microsoft.Network/networkSecurityGroups eastus
vm-001-IP EastUS-RG Microsoft.Network/publicIPAddresses eastus
EastUS-vNet EastUS-RG Microsoft.Network/virtualNetworks eastus
The following command is using the Get-AzResources with the resource group name that we would like to delete all its resources and we are piping the results to the Remove-AzResources cmdlet which deletes all the resources.
Get-AzResource -ResourceGroupName "EastUS-RG" | Remove-AzResource -Force
Get-AzResource -ResourceGroupName "EastUS-RG" | Remove-AzResource -Force
True
True
True
True
True
To validate that all the resources have been deleted run the following cmdlet.
Get-AzResource -ResourceGroupName "EastUS-RG" | FT