如何将不同的变量放入数组以导出到PowerShell中的CSV

时间:2014-09-09 16:28:14

标签: powershell csv scom

所以我拉一个SCOM类来获取管理包名称,然后使用这些MP名称来获得不同的监视器。我想输出GUID,监视器显示名称和管理包名称。我遇到的问题是如何将其输出到CSV中,因为我不知道如何将它们分成列。有数百个监视器,所以我认为它也需要放入一个阵列。

目前,我可以在列中使用我需要的信息写入控制台,但是当我尝试使用Export-CSV cmdlet时,它会给我带来各种错误。以下是我到目前为止的情况:

$OMMgmtSrv = "SERVER"
$Classes = Get-SCOMClass -ComputerName $OMMgmtSrv
Foreach ($Class in $Classes)
{
$MP = $Class.ManagementPackName

$monitors = Get-SCOMMonitor -ManagementPack $MP  | sort-object displayname

Foreach($monitor in $monitors)
{

Write-Host $monitor.ID $monitor.displayname $MP

}
}

1 个答案:

答案 0 :(得分:0)

PowerShell 3.0或更高版本,您可以使用PSCustomObject

foreach ($monitor in $monitors) {
    [PSCustomObject]@{
        ID = $monitor.ID
        DisplayName = $monitor.displayname
        ManagementPackName = $MP
    } | Export-Csv -Path "C:\monitors.csv" -Append
}

此自定义对象将具有自定义属性ID,DisplayName和ManagementPackName,并且它将轻松导出为CSV。