我一直在尝试创建一个脚本,该脚本可以获取Azure中所有托管磁盘的列表,其中包括vmname,diskname,size,OSType和资源组名称,更重要的是剩余可用空间和可用磁盘空间。
我可以使用Powershell获取基本信息,但是我似乎无法获得当前的磁盘使用量和可用空间,我希望得到一些指导或指向正确的方向。
$vms = Get-AzureRmVM
foreach ($vm in $vms) {
Get-AzureRmDisk | select -Property $vm.Name,Name,DiskSizeGB,OSType,ResourceGroupName
}
提前致谢
答案 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 表中