删除每个 VM,包括 Azure 中的资源组

Delete every VM including Resources Group in Azure

我正在尝试创建一个 bash 脚本来删除所有订阅中可用的每个 VM 及其关联的资源组。一个班轮代码。

到目前为止,我所做的是:

for i in `az account list --query "[].{id:id}" --output tsv`; do az account set --subscription $i; VMS=`az vm list --query [].name --output tsv`; tLen=${#VMS[@]} ; for (( i=0; i<${tLen}; i++ )); do RG=`az vm list --query [$i].resourceGroup --output tsv`; az vm delete --ids $(az vm list -g ${RG} --query "[].id" -o tsv) --yes --no-wait ; az group delete --name ${RG} --yes --no-wait; done ; done

好吧,它有效,但并不完美。它留下了一些 VM 及其关联的资源组。所以,我想在 stack-overflow 上上传代码。好吧,它可能对某些人有用,我也需要一些帮助。

那么,有人可以帮助我吗?请查看我的代码,我非常擅长编码。我在这里需要一些专家建议。提前致谢:)

我调整了我的代码,现在这段代码可以按我的要求完美运行。 此代码删除每个 Azure 帐户订阅中可用的每个资源组。

for i in `az account list --query "[].{id:id}" --output tsv`; do az account set --subscription $i; for j in `az vm list --query [].resourceGroup --output tsv`; do az group delete --name $j --yes --no-wait; done ; done

它适用于 Powershell 和 Bash:

echo 'for i in `az account list --query "[].{id:id}" --output tsv`; do az account set --subscription $i; for j in `az vm list --query [].resourceGroup --output tsv`; do az group delete --name $j --yes --no-wait; done ; done' > deletevms.sh && bash deletevms.sh