获得AzureRm托管磁盘空间使用和可用空间 - Powershell

时间:2018-02-13 23:07:24

标签: powershell azure

我一直在尝试创建一个脚本,该脚本可以获取Azure中所有托管磁盘的列表,其中包括vmname,diskname,size,OSType和资源组名称,更重要的是剩余可用空间和可用磁盘空间。

我可以使用Powershell获取基本信息,但是我似乎无法获得当前的磁盘使用量和可用空间,我希望得到一些指导或指向正确的方向。

$vms = Get-AzureRmVM 
foreach ($vm in $vms) {
Get-AzureRmDisk | select -Property $vm.Name,Name,DiskSizeGB,OSType,ResourceGroupName
}

提前致谢

2 个答案:

答案 0 :(得分:2)

根据我的知识,这是不可能的。你可以查看managed disk rest APi。 Azure不提供此类参数。

因此,您无法使用Azure Power Shell获取托管磁盘使用情况信息,您只能获得总空间。

一种解决方案,您需要登录您的VM并使用命令来获取磁盘使用情况。

答案 1 :(得分:1)

您也可以使用 Hybrid-Worker 并运行此命令:

获取所有本地磁盘(不包括临时驱动器 D)

$Disks = get-WmiObject win32_logicaldisk `
| Where-Object -Property VolumeName -ne "Temporary Storage"

以百分比计算可用空间并创建一个 PS 自定义对象

$Report = @()
foreach ($Disk in $Disks) {
    $myObject = [PSCustomObject]@{
        Hostname     = hostname
        Disk         = $Disk.DeviceID
        FreeSpace    = [math]::Round((($Disk.FreeSpace * 100) / $Disk.Size),0)
    }
    $Report += $myObject
}

并将结果存储在 StorageAccount 表中