## Gather orphaned resources details using below link and use below script to delete all orphaned resources https://github.com/scautomation/AzureResourceGraph-Examples/blob/master/resourceQueries/Orphaned%20Resources/OrphanedResource.MD ##########################DeleteOrphanedDisk########################## $csv = Import-Csv "disk.csv" #name of csv file $filetim = (Get-Date).tostring("dd-MM-yyyy-hh-mm") $Logfile = "log-deletedisk-$filetim.log" Function LogWrite { Param ([string]$logstring) Add-content $Logfile -value $logstring } Start-Transcript -Path $Logfile Stop-Transcript LogWrite " " LogWrite " " LogWrite "***** LogFile *****" LogWrite " " LogWrite " " $csv | ForEach-Object { $diskname = $_.NAME $state = $_.DISKSTATE $resourcegroup = $_.RESOURCEGROUP $location = $_.LOCATION if($state -like "Unattached") { $tim = (Get-Date).tostring("dd-MM-yyyy-hh:mm:ss") LogWrite "$tim - Deleting disk $diskname in $resourcegroup of Location - $location" Write-Host -ForegroundColor Cyan "Deleting Disk $diskname in $resourcegroup of Location - $location" Remove-AzDisk -ResourceGroupName $resourcegroup -DiskName $diskname -Force } else { Write-Host -ForegroundColor Red "Failed to delete the disk $diskname in $resourcegroup of Location - $location since it is Attached" $tim = (Get-Date).tostring("dd-MM-yyyy-hh:mm:ss") LogWrite "$tim - Failed to delete the disk $diskname in $resourcegroup of Location - $location since it is Attached" } } ##################################################################### ##########################DeleteOrphanedNICs########################## $csv = Import-Csv "nic.csv" #name of csv file $filetim = (Get-Date).tostring("dd-MM-yyyy-hh-mm") $Logfile = "log-$filetim.log" Function LogWrite { Param ([string]$logstring) Add-content $Logfile -value $logstring } Start-Transcript -Path $Logfile Stop-Transcript LogWrite " " LogWrite " " LogWrite "***** LogFile *****" LogWrite " " LogWrite " " $csv | ForEach-Object { $nicname = $_.NAME $resourcegroup = $_.RESOURCEGROUP $location = $_.LOCATION $tim = (Get-Date).tostring("dd-MM-yyyy-hh:mm:ss") LogWrite "$tim - Deleting NIC $nicname in $resourcegroup of Location - $location" Write-Host -ForegroundColor Cyan "Deleting NIC $nicname in $resourcegroup of Location - $location" Remove-AzNetworkInterface -Name $nicname -ResourceGroup $resourcegroup -Force } ##################################################################### ##########################DeleteOrphanedNSGs######################### $csv = Import-Csv "nsg.csv" #name of csv file $filetim = (Get-Date).tostring("dd-MM-yyyy-hh-mm") $Logfile = "log-deleteNSG-$filetim.log" Function LogWrite { Param ([string]$logstring) Add-content $Logfile -value $logstring } Start-Transcript -Path $Logfile Stop-Transcript LogWrite " " LogWrite " " LogWrite "***** LogFile *****" LogWrite " " LogWrite " " $csv | ForEach-Object { $nsgname = $_.RESOURCE $resourcegroup = $_.RESOURCEGROUP $location = $_.LOCATION $tim = (Get-Date).tostring("dd-MM-yyyy-hh:mm:ss") LogWrite "$tim - Deleting NSG $nsgname in $resourcegroup of Location - $location" Write-Host -ForegroundColor Cyan "Deleting NSG $nsgname in $resourcegroup of Location - $location" Remove-AzNetworkSecurityGroup -Name $nsgname -ResourceGroup $resourcegroup -Force } ##################################################################### ##########################DeleteOrphanedPiP########################## $csv = Import-Csv "pip.csv" #name of csv file $filetim = (Get-Date).tostring("dd-MM-yyyy-hh-mm") $Logfile = "log-deletePIP-$filetim.log" Function LogWrite { Param ([string]$logstring) Add-content $Logfile -value $logstring } Start-Transcript -Path $Logfile Stop-Transcript LogWrite " " LogWrite " " LogWrite "***** LogFile *****" LogWrite " " LogWrite " " $csv | ForEach-Object { $pipname = $_.NAME $resourcegroup = $_.RESOURCEGROUP $location = $_.LOCATION $tim = (Get-Date).tostring("dd-MM-yyyy-hh:mm:ss") LogWrite "$tim - Deleting Public IP $pipname in $resourcegroup of Location - $location" Write-Host -ForegroundColor Cyan "Deleting Public IP $pipname in $resourcegroup of Location - $location" Remove-AzPublicIpAddress -Name $pipname -ResourceGroupName $resourcegroup -Force } #####################################################################