Powershell ForEach-Object 仅返回列表中第一个对象的值

问题描述

我对 Powershell 脚本很陌生,在这里不知所措。我们正在尝试构建一个脚本,该脚本最终将从一个域中的所有系统中收集许多从文本文件提取的详细信息,从中查询特定数据,然后将此数据导出到 CSV 文件作为“入职”操作。

下面的代码是我目前正在使用的代码,它可以很好地提取信息,但它仅适用于系统列表中的一个系统。如果我们在 txt 文件中有 10 个系统,它只会列出该系统的信息 10 次。我错过了什么,或者我是否以错误的方式处理这个问题?

$SERVERS = Get-Content C:\TEMP\Systems.txt

Foreach ($Server in $Servers) 
{

$Name = (Get-CimInstance -ClassName Win32_ComputerSystem).Name
$Manufacturer = (Get-CimInstance -ClassName Win32_ComputerSystem).Manufacturer
$Model = (Get-CimInstance -ClassName Win32_ComputerSystem).Model
$SerialNumber = (Get-CimInstance -ClassName Win32_BIOS).SerialNumber
$OS = (Get-CimInstance -ClassName Win32_OperatingSystem).Caption

$SERVERS |
     ForEach-Object{

         [pscustomobject]@{
              NAME=(@($Name)| Out-String).Trim()
              MAKE=(@($Manufacturer)| Out-String).Trim()
              MODEL=(@($Model)| Out-String).Trim()
              SERIALNUMBER=(@($SerialNumber)| Out-String).Trim()
              OS=(@($OS)| Out-String).Trim()
        }
    } |
    Export-Csv C:\TEMP\somefile.csv -NoTypeinformation

}

以下是针对包含 10 个系统(DC01-DC05 和 FP01-FP05)的 txt 文件运行时示例输出文件图像的链接。我们看到的只有 10 行,里面有 DC01 的收集数据。

Example CSV Output

感谢您的耐心和您可以提供的任何帮助。

-帕特

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...