所以我拉一个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
}
}
答案 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。