0

我对 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 收集的数据。

CSV 输出示例

感谢您的耐心等待以及您可以提供的任何帮助。

-拍

4

0 回答 0