Share via


Deleting VM In Azure PowerShell Script

So the final one for today

a script to help you clean up after your messing :) and to help you keep the cost down.

Again usual disclaimers apply and use it as a framework to make it better!

Here you go!

 

function deleteVM($azurecloud,$vmname)
{
    Write-Host "Deleting VM(s) please wait...."
    if ($vmname -eq $null)
    {
        Get-AzureVM -ServiceName $azurecloud |Foreach-object {Remove-AzureVM -ServiceName $_.ServiceName -Name $_.Name -Force $true|out-null}
    }
    else
    {
        Remove-AzureVM -ServiceName $azurecloud -Name $vmname
    }
}

function stopvm($azurecloud,$vmname)
{
    write-host "Stopping VM Prior to deletion please wait.."
    if ($vmname -eq $null)
    {
        Get-AzureVM -ServiceName $azurecloud |Foreach-object {Stop-AzureVM -ServiceName $_.ServiceName -Name $_.Name -Force $true|out-null}
    }
    else
    {
        Stop-AzureVM -ServiceName $azurecloud -Name $vmname
    }
}

################################################################
# Please Change These Variables to Suit Your Environment
#
$azuresettings = "C:\Azure\azure.publishsettings"
$azurecloud = "PFESCDEMO"
#
################################################################

cls
Import-AzurePublishSettingsFile $azuresettings

write-host "Azure VM Deletion Script"
write-host "Options Menu:"
write-host "1.`t Delete One VM in a Cloud Service"
write-host "2.`t Delete ALL VM in a Cloud Service"
$answer = read-host "Please Select Your Choice"

Switch ($Answer)
{
    1{$vmname = read-host "Please Enter VM Name To Delete";StopVM $azurecloud $vmname;DeleteVM $azurecloud $vmname}
    2{$vmname = $null;read-host "THIS WILL DELETE ALL VM'S in Cloud Service:`t $azurecloud Press Enter To Continue";StopVM $azurecloud $vmname; DeleteVM $azurecloud $vmname}
}