Cómo eliminar máquinas virtuales y su almacenamiento asociado en lotes
Puede eliminar máquinas virtuales y discos en lotes ejecutando el archivo de script de PowerShell RemoveVMandDisk.ps1 en el archivo adjunto. El código detallado es el siguiente:
param($serviceName)
echo "Iniciando eliminar todas las máquinas virtuales del servicio $serviceName"
#$serviceName="erictest"
echo "Obtener todos los nombres de disco de todas las máquinas virtuales del servicio $serviceName."
$azureDiskNames= Get-AzureDisk| donde{$_.AttachedTo -ne $null -y
$_.AttachedTo.HostedServicename.StartsWith($serviceName)} seleccione DiskName
$ azureDiskNames
if($azureDiskNames -eq $null -or $azureDiskNames.Count -le 0){
echo "No se desean eliminar máquinas virtuales".
exit
}
echo "`r`nStarting remove all VMs of service $serviceName..."
Get-AzureVM | donde{$_.ServiceName .StartsWith($serviceName)} | Remove-AzureVM
-Verbose
#Dedica tiempo a eliminar la VM en el backend.
echo "Esperando eliminación de VM en el backend..."
Inicio-suspensión -Seconds 120* $azureDiskNames.Count
echo "`r`nIniciando eliminación de todos los discos relacionados... "
foreach($diskName in $azureDiskNames){
Get-AzureDisk | donde {$_.DiskName -eq $diskName.DiskName } |
Eliminar -AzureDisk -DeleteVHD -Verbose
}
echo "`r`nStarting eliminar todos los servicios"
Get-AzureService donde{$_.ServiceName.StartsWith | ($serviceName)} |
Remove-AzureService -Force -Verbose
Pasos de ejecución:
Abra Windows Azure PowerShell e importe la información de suscripción (Suscripción).
Para saber cómo instalar y configurar Azure PowerShell, consulte /publishsettings/index?client=powershell
, luego inicie sesión y obtenga el archivo de suscripción
Ejecute el comando Set-ExecutionPolicy RemoteSigned actualiza la política de ejecución.
Ejecute el script RemoveVMandDisk.ps1.
Sintaxis: RemoveVMandDisk.ps1 lt; ServiceNamegt; #Puedes eliminar todas las máquinas virtuales que comiencen con este ServiceName
Ejemplo: RemoveVMandDisk.ps1 ericwenService
Si Después de eliminar la máquina virtual, aparece el error "El disco actual está ocupado" al eliminar el disco. Puede modificar el tiempo de espera para la ejecución en segundo plano: Inicio-Suspensión -Seconds 120*
$azureDiskNames.Count<. /p>
También puede usar el comando (Get-AzureDisk | donde{ $_.AttachedTo -eq $null } | Remove-AzureDisk
-DeleteVHD -Verbose ) para eliminar todos los discos no utilizados (adjunto a la VM) p>
Los scripts y códigos anteriores son solo de referencia, puede ajustarlos y modificarlos de acuerdo con su lógica empresarial.