3

我写了这个脚本来输出一个表格格式的文件:

$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 参数只是因为没有正确导出数据,因为每个 vm 有多个数据磁盘。

4

1 回答 1

4

如果您有一个数字数组并且想要对它们求和,请使用:

($NumArray | Measure -Sum).Sum

在您的情况下,它将是:

"VM Data Disk Size" = ($_.StorageProfile.DataDisks.DiskSizeGB | Measure -Sum).Sum

MeasureMeasure-Object如果您正在寻找帮助页面或其他任何内容,它是一个别名,它也可以执行平均、最小值/最大值等。

于 2018-07-04T10:57:08.243 回答