Greetings to all unbelievable students across globe . Allow me to present one of the the most useful script for production use . We need to delete VMs and all associated resources like disks+NIC for various reason . But most of the time we just delete the VM and forget to delete VHDs or NICs . That create problem in future and disk cost money . This script is a ultimate solution for VM deletion . Beauty of this script is you dont have to mention VM name at the beginning . Script will prompt you for the input . Type the VM name , sit back and relax . Script will collect all required information from the VM name and will pass in the script when needed . You can run this script directly in production . It will not interraapt anything unless there is any dependency with VM .
Only limitation of this script is this script will work with only one VM at a single time . If you want to delete multiple VM at a single time please mail me.
Few point to keep in mind :
clear Write-Host "Hey $env:UserName Greetings !!" -ForegroundColor Cyan Start-Sleep -s 1 Write-Host "Welcome @ Subhendu's Automation System ." -ForegroundColor Cyan Start-Sleep -s 1 Write-Host "Remember this script will remove VM,VM OS Disk,Data Disks and NIC card ." -ForegroundColor Cyan Start-Sleep -s 1 Write-Host "Can you please tell me the VM Name ?" -ForegroundColor Cyan Start-Sleep -s 1 Add-Type -AssemblyName Microsoft.VisualBasic $VMlist = [Microsoft.VisualBasic.Interaction]::InputBox('Please type VM name', 'Build By Subhendu V1', "Please Type VM name") $king = '---------------------------------------------------------------------------------------' Write-Host "Great !! So I will continue with "$VMlist" vm" -ForegroundColor Yellow Start-Sleep -s 1 Write-Host "Now you can sit back with a cup of coffee and relax . Process will notify you once the entire work is done." -ForegroundColor Cyan #$VMlist = "VM1","VM2"- mention all VM name that you want to remove . $i = 1 ForEach($VMlist in $VMlist) { $VMName = $VMlist $VMRGname = (Get-AzureRmResource -Name $VMName -ResourceType "Microsoft.Compute/virtualMachines").ResourceGroupName $OSDisk = (Get-AzureRMVM –Name $VMName –ResourceGroupName $VMRGname).StorageProfile.OsDisk.Name $DataDisk = (Get-AzureRMVM –Name $VMName –ResourceGroupName $VMRGname).StorageProfile.DataDisks.name $VMNICdetails = (Get-AzureRmVM -ResourceGroupName $VMRGname -Name $VMName).NetworkProfile.NetworkInterfaces.id $VMNic = (Get-AzureRmResource -ResourceId $VMNICdetails).Name Write-Host "VM No $i and VM name is $VMName" Remove-AzureRmVM -ResourceGroupName $VMRGname -Name $VMName -Force Write-Host "NIC is $VMNic" Remove-AzureRmNetworkInterface -Name $VMNic -ResourceGroupName $VMRGname -Force ForEach($OSDisk in $OSDisk) { Write-Host "OS-Disk No $i : $OSDisk" Remove-AzureRmDisk -ResourceGroupName $VMRGname -DiskName $OSdisk -Force } ForEach($DataDisk in $DataDisk) { Write-Host "Data-Disk No $i : $DataDisk" Remove-AzureRmDisk -ResourceGroupName $VMRGname -DiskName $DataDisk -Force $i = $i+1 } $i = $i+1 }
Creating NSG in azure is easy unless you want to create multiple NSG with multiple…
# Mention your VM here $VMName = "SubhenduTestVM" # Mention your Stage Storage here $stagestorageaccountname…
Hope you are doing great . Current Time is very critical for us . I…
Being a part of Microsoft Education I have explored powershell long time back . But…
Sorry !! But Yes . Microsoft is about to release new exam in Azure Segment…
Migration is always a part of our life and part of this fantastic IT world…