我写了这个脚本来输出表格格式的文件:
$VMs = Get-AzureRmVM
$vmOutput = $VMs | ForEach-Object {
[PSCustomObject]@{
"VM Name" = $_.Name
"VM Type" = $_.StorageProfile.osDisk.osType
"VM Profile" = $_.HardwareProfile.VmSize
"VM OS Disk Size" = $_.StorageProfile.OsDisk.DiskSizeGB
"VM Data Disk Size" = ($_.StorageProfile.DataDisks.DiskSizeGB) -join ','
}
}
$vmOutput | export-csv C:\***\data.csv -delimiter ";" -force -notypeinformation
是否有可能将每个对象的“ VM数据磁盘大小”相加?我使用-join参数只是因为数据未正确导出,因为每个虚拟机有多个数据磁盘。
答案 0 :(得分:4)
如果您有数字数组,并且想要将它们求和,请使用:
($NumArray | Measure -Sum).Sum
在您的情况下为:
"VM Data Disk Size" = ($_.StorageProfile.DataDisks.DiskSizeGB | Measure -Sum).Sum
Measure
是Measure-Object
的别名,如果您正在寻找帮助页面或其他任何内容,它也可以执行平均值,最小值/最大值等。