Examples/RemoveVMs.ps1
############################################################ # DSC Azure Test Example - REMOVE VMS # # This script removes specific VMs from Azure # # This script is DESTRUCTIVE without a method of restoration # # The subscription must be in place in order to access Azure # and do work, so if this is being run in a new PS session # you might have to first apply the SetupSubscription.ps1 # script first. # # INSTANCE - use this identifier to select the instance [CmdletBinding()] param( [Parameter(Mandatory,ValueFromPipeline)][string]$Instance, [switch]$Force ) # Set the folder where your files will live $workingdir = split-path $myinvocation.mycommand.path $SetupSubscription = Join-Path $workingdir 'SetupSubscription.ps1' & $SetupSubscription # DSC Configuration Configuration DestroyAzureTestVMs { Import-DscResource -Module xAzure Node $AllNodes.NodeName { # List of VM's to Destroy xAzureVM TestVM1 { Ensure = 'Absent' Name = 'TestVM1' ServiceName = $Node.ServiceName StorageAccountName = $Node.StorageAccountName ImageName = 'a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201404.01-en.us-127GB.vhd' } xAzureVM TestVM2 { Ensure = 'Absent' Name = 'TestVM2' ServiceName = $Node.ServiceName StorageAccountName = $Node.StorageAccountName ImageName = 'a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201404.01-en.us-127GB.vhd' } } } $ConfigData= @{ AllNodes = @( @{ NodeName = 'localhost' StorageAccountName = "testvmstorage$Instance" ServiceName = "testvmservice$Instance" } ) } # Create MOF DestroyAzureTestVMs -OutputPath $workingdir -ConfigurationData $ConfigData if ($Force -eq $True) {$Safety = 'DESTROY'} else { Write-Host "" Write-Warning "ARE YOU SURE YOU WANT TO DESTROY THE VMS INCLUDING VHD FILES" $Safety = Read-Host "If you are certin please type DESTROY any other response will abort" } Switch ($Safety) { 'DESTROY' { # Apply MOF Start-DscConfiguration -ComputerName 'localhost' -wait -force -verbose -path $workingdir } Default {Exit} } |