问题陈述: 所以我正在尝试编写一个 dotnet 项目以在 AVD 中附加一个 vhdx 应用程序。还需要从 AVD 实例中取消发布或删除相同的应用程序。我知道我需要将其从主机池和应用程序组中删除;在此之后,我需要从相应的文件共享容器中删除 vhdx。
我看到这些 PowerShell 命令允许我这样做:
$applicationGroup = "AG"
$resoureGroupName = "RG"
$hostPoolName = "HG"
$applicationName = "AN"
Get-AzWvdApplication -ApplicationGroupName $applicationGroup -ResourceGroupName $resoureGroupName
Remove-AzWvdMsixPackage -FullName $applicationName -HostPoolName $hostPoolName -ResourceGroupName $resoureGroupName
Get-AzWvdApplication -ApplicationGroupName $applicationGroup -ResourceGroupName $resoureGroupName
Remove-AzWvdApplication -ApplicationGroupName $applicationGroup -Name $applicationName -ResourceGroupName $resoureGroupName
上述命令有效,但从文件共享中删除 vhdx 文件时出现错误。我关闭了我所有的虚拟机并尝试删除文件,然后文件被删除了。
我正在利用 Azure.Storage.Files Nuget 来处理文件共享操作(我有适当的连接字符串来执行此操作)。
我在删除文件共享时遇到错误 - 因为链接文件共享的 VM 正在运行并且在上面提到的 vhdx 上有一个虚拟锁。
提问:
我如何在不关闭虚拟机的情况下实现这一点,因为我不知道哪个虚拟机安装了应用程序?
或者有没有其他方法可以轻松实现所有这些(完全分离 vhdx)?