【发布时间】:2013-11-07 22:06:21
【问题描述】:
我有一个 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 当前正在使用中 通过在托管服务中运行的虚拟机 YYY ZZZ,部署 XYZ。
奇怪的是,我可以在几分钟后对 Remove-AzureDisk 发出相同的调用,并且它成功返回。
好像对 Remove-AzureVM 的调用返回得太快了。即它在 VM 被完全删除之前或在磁盘的链接被删除之前报告成功。
谁能解释为什么会这样以及我可以如何解决这个问题?
提前致谢
杰米
【问题讨论】:
标签: powershell azure virtual-machine