#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 * }