Get-CimInstance CIM_Processor returns 多个 "names"

Get-CimInstance CIM_Processor returns multiple "names"

我正在尝试获取我域中所有机器的 cpu 名称。我是运行以下

Get-CimInstance -ComputerName $i.DNSHostName -Class CIM_Processor | Select-Object "PSComputerName", "Name", "NumberOfCores"

我正在利用此结果构建自定义对象

 $workstationWithIp = [PSCustomObject]@{
            ComputerName = $i.DNSHostName
            CPU = $workstationObj.Name
            Cores = $workstationObj.NumberOfCores
            IP = $ip
            Memory = $memory
            Uptime = $uptimeHours
            OS = $os.Caption + " " + $os.Version
        }

我的问题是有些机器有多个处理器,因此“名称”会 return 多个结果。所有这些服务器都有多个相同的模型,那么我怎样才能得到结果,以便我可以将它作为一个字符串放入我的自定义对象中?我正在使用这些自定义对象制作 CSV,其中一些将具有 cpu 名称和核心,但具有多个 cpus 的将给我 System.Object[] 作为名称和 csv

中的核心计数

如评论中所述,从潜在的 array/collection 值中选择最多 1 项的安全方法是通过管道传输至 Select-Object -First 1:

[PSCustomObject]@{
    ComputerName = $i.DNSHostName
    CPU = $workstationObj.Name |Select-Object -First 1
    Cores = $workstationObj.NumberOfCores |Select-Object -First 1
    IP = $ip
    Memory = $memory
    Uptime = $uptimeHours
    OS = $os.Caption + " " + $os.Version
}