我的任务是自动创建Azure VM,自然而然地,我尝试部署VM映像进行了或多或少的不连续迭代。
我刚刚发现我的存储帐户的Blob服务正在收集用于启动诊断的大量容器列表。
因为我已经删除了许多属于它们的VM,所以这些容器对我来说都是无用的,并且在门户中,它们挤出了我想要的几个有用的文件夹。实际上,我有一个销毁VM的脚本(它删除了资源,VHD等)。我希望此脚本也可以杀死这些诊断容器。
但是容器的名称很尴尬-仅包含主机名的一部分...
我发现UUID是OS VHD文件旁边的“状态”文件名的一部分(我不知道该怎么做)!
function getUUID([string] $vmname) {
$storageContext = (Get-AzureRmStorageAccount | Where-Object{$_.StorageAccountName -match $azureStorage}).Context
$storageBlob = Get-AzureStorageBlob -Context $storageContext -Container "vhds"
$vhdList = $storageBlob | Where-Object{$_.Name -match "$vmname"} | Where-Object{$_.Name -match "^$hostname.*\.status$"}
$uuid = $vhdList.Name # Get name including UUID
$uuid = $uuid -replace "\.status","" # Remove suffix (".status")
$uuid = $uuid -replace ".*?\.","" # Remove prefix ("bootdiagnostics-$vmname.")
return $uuid
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句