我有一个奇怪的,我没有看到太多的写作。不管怎样,就到这里吧。
我正在尝试构建一个数组并将其导出为 CSV。问题是,如果返回的结果不止一个,我不知道如何将其作为新行添加到 CSV。我目前正在使用 -join 将所有结果放入同一个单元格,但这不是最佳的。我真正想做的是添加一个新行并将额外的结果放在它下面的同一列中。那有意义吗?这是我现在拥有的:
# Grab all VMs, put into variable
$vms = Get-VM
# Use to build report
foreach ($vm in $vms){
New-Object PSObject -Property @{
VMName = $vm.Name
UsedSpaceGB = $vm.UsedSpaceGB
StorageAllocatedGB = ($vm.HardDisks.capacitygb | Measure-Object -Sum).Sum
NumberOfCPUs = $cm.NumCpu
MemoryGB = $vm.MemoryGB
Datastores = Get-Datastore -VM $vm
Application = ($vm | Get-Annotation -CustomAttribute Applications -ErrorAction SilentlyContinue).Value | select
} | select VMName,@{label="Application";expression={$_.Application -join ","}},UsedSpaceGB,StorageAllocatedGB,NumberOfCPUs,MemoryGB,@{l="Datastores";e={$_.Datastores -join ","}} | Export-Csv -Path C:\script\VMCapacityUsedByApp.csv -NoClobber -Append -NoTypeInformation
}
顺便说一句,这是使用 VMware 的 PowerCLI 管理单元。任何帮助是极大的赞赏。