我有一个 Azure VM,我正在尝试使用 Powershell 将其删除。我还想删除该 VM 操作系统所在的磁盘(没有数据磁盘)。我假设我将需要以下两个 cmdlet:
- 删除-AzureVM
- 删除-AzureDisk
这是我的代码:
$VMs = Get-AzureVM $svcName
foreach ($VM in $VMs)
{
$OSDisk = ($VM | Get-AzureOSDisk)
if ($VM.InstanceStatus -eq "ReadyRole") {
Stop-AzureVM -Name $VM.Name -ServiceName $svcName
}
remove-azurevm -ServiceName $svcName -Name $VM.Name
Remove-AzureDisk -DiskName $OSDisk.DiskName
}
当我执行此操作时,对 Remove-AzureVM 的调用成功返回,但对 Remove-AzureDisk 的调用返回错误:
Remove-AzureDisk :BadRequest:名称为 XXX 的磁盘当前由在托管服务 ZZZ 中运行的虚拟机 YYY 使用,部署 XYZ。
奇怪的是,我可以在几分钟后对 Remove-AzureDisk 发出相同的调用,并且它成功返回。
好像对 Remove-AzureVM 的调用返回得太快了。即它在VM 被完全删除之前报告成功,或者在磁盘的链接被删除之前报告成功。
谁能解释为什么会这样以及我如何解决这个问题?
提前致谢
杰米