Powershell Erstellen neue Zeile für mehrere array-Objekte mit Export-csv

Habe ich ein Kuckucksei, dass ich noch nicht viel gesehen, die schreiben auf. Wie auch immer, hier geht.

Ich versuche zu bauen, ein array, und exportieren Sie Sie in CSV. Das problem ist, wenn es mehr als ein Ergebnis zurückgegeben, ich kann nicht herausfinden, wie Sie es zu der CSV-Datei als neue Zeile. Ich bin derzeit mit einem join zu werfen, alle Ergebnisse in die gleiche Zelle, aber das ist nicht optimal. Was ich wirklich mag zu tun ist, fügen Sie eine neue Zeile und werfen Sie die zusätzlichen Ergebnisse, darunter in der gleichen Spalte. Macht das Sinn? Hier ist, was ich jetzt habe:

# 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

} 

Durch die Art und Weise, diese ist mit VMware PowerCLI-Snap-in. Jede Hilfe wird sehr geschätzt.

  • Welche Eigenschaft ist Ihnen mehrere gibt?
InformationsquelleAutor John | 2014-01-28
Schreibe einen Kommentar