ARM中的磁盘详细信息的Azure PS cmdlet

时间:2016-09-06 07:21:43

标签: azure azure-storage azure-powershell azure-resource-manager

我正在尝试列出一个订阅中的磁盘的详细信息。对于使用 - Get-AzureDisk

的经典门户网站中的所有磁盘,这非常简单

但是,这并没有列出位于较新门户网站中的磁盘。我试过在ARM中找到相同的命令,但我不能。

NB :我使用的是Azure PS 1.5.0版。我不想列出VM的磁盘详细信息,而是有兴趣清理新门户中的孤立磁盘。

2 个答案:

答案 0 :(得分:3)

这里的问题是ARM没有磁盘的概念,它只是一个存储在存储中的文件。将该文件作为VHD附加到VM时,它将成为连接到VM的磁盘。

如果要查询需要查询VM的磁盘,则会获得有关附加到其上的磁盘的信息。

正如singhkays在评论中的github问题中所述

  

没有用于获取数据磁盘的直接API。 Get-AzureRmVM作为VM返回的一部分返回数据磁盘

StorageProfile : {
"DataDisks": [
 {
  "Lun": 0,
  "Caching": "ReadWrite",
  "CreateOption": "Empty",
  "DiskSizeGB": 1,
  "Name": "data-disk-1",
  "SourceImage": null,
  "VirtualHardDisk": {
  "Uri": "http://jenkinswinstore.blob.core.windows.net/vhds/data-disk-1.vhd"
   }
  }
],

答案 1 :(得分:1)

  

我更感兴趣的是清理新门户网站中的孤立磁盘。

如果您只是想在新门户中找到孤立磁盘,实际上,您正试图找到未发布的vhd。

然后,您只需要查询" ICloudBlob.Properties.LeaseStatus" vhd文件的属性。

我为你写了一个示例脚本,它适用于我。

$RGName = "stlvm"
$SAName = "stlvmstorage"
$ConName = "vhds"
$TempObj = New-Object -TypeName PSCustomObject
$TempObj |Add-Member -Name BlobName -MemberType NoteProperty -Value $null
$TempObj |Add-Member -Name LeaseState -MemberType NoteProperty -Value $null
$Keylist = Get-AzureRmStorageAccountKey -ResourceGroupName $RGName -StorageAccountName $SAName
$Key = $Keylist[0].Value
$Ctx = New-AzureStorageContext -StorageAccountName $SAName -StorageAccountKey $Key
$List = Get-AzureStorageBlob -Blob *.vhd -Container $ConName -Context $Ctx
$List | ForEach-Object { $TempObj.BlobName = $_.Name; $TempObj.LeaseState = $_.ICloudBlob.Properties.LeaseState; $TempObj }

以下是我实验室的截图:

Sample