Сценарий инвентаризации

#windows #powershell #csv

Вопрос:

Нуб здесь, мне нужно извлечь некоторые данные из опроса cim списка серверов, однако вывод csv-это то же самое повторение локального сервера, общая сумма которого равна количеству строк во входном файле. Я думаю, что делаю что-то не так с массивом, но я бил себя по голове. Помочь?

 $ErrorActionPreference = 'SilentlyContinue'   #Define Some Variables $importpath = "c:directory1" $workingpath = "c:directory2"  #Do Some Filtering Import-CSV -Path "$importpathsomefile.csv" | where {$_.Powerstate -ne "PoweredOff"} | where Guest -notlike *somestring* | Export-Csv "$workingPathPRODUCTION.csv" -NoTypeInformation   Import-csv -Path "$workingPathPRODUCTION.csv" | Select-Object -Property Name | Export-Csv -Path "$workingpathSERVERS.csv" -NoTypeInformation  #Create final input foreach routine Import-CSV -Path "$workingpathSERVERS.csv" | Out-file $workingpathSERVERS.txt  $servers = Get-Content -path "$workingpathSERVERS.txt"  $results = foreach ($server in $servers) {  Get-CimInstance -ClassName win32_OperatingSystem -ErrorAction SilentlyContinue | Select-Object *   }  $results | Export-Csv -Path "$workingPathPRODUCTIONRESULTS.csv" -NoTypeInformation -Append  

Ответ №1:

Попробуйте включить имя компьютера при выполнении команды Get-CimInstance

 $results = foreach ($server in $servers) {  Get-CimInstance -ComputerName $server -ClassName win32_OperatingSystem -ErrorAction SilentlyContinue | Select-Object *   }