Массив PowerShell с хэш-таблицей - PullRequest
0 голосов
/ 08 июля 2019

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

$Servers = @('server1', 'server2', 'server3')
$export = @()
foreach ($server in $Servers) {

$filePath = "\\$server\d:\application\application.log"
$ipsFailed = Get-Content $filePath | Select-String "Could not resolve" | ForEach-Object {($_.tostring()).split()[-1]} | Select-Object -Unique
$export += New-Object psobject -Property @{
    ipsFailed = $ipsFailed
    }

$export
$exportFile| Export-Csv "ipsFailed.csv" -NoTypeInformation
}

Когда я запускаю этот код (без экспорта), я получаю это на экране, а это не то, что я хочу. Я хочу больше линейной таблицы, чем этот массив? Излишне говорить, что экспорт бесполезен.

ipsFailed                     
-------------                     
{192.168.141.161, 192.168.141.162}
{192.168.141.161, 192.168.141.162}
{192.168.141.160, 192.168.141.162}

Я знаю, что я на правильном пути, потому что выполнение команды ниже возвращает то, что я хочу, хотя это только для 1 сервера, но как мне передать это в хеш-таблицу для работы на нескольких серверах, не испортив вывод? Помощь.

PS C:\> Get-Content $filePath | Select-String "Could not resolve" | ForEach-Object {($_.tostring()).split()[-1]} | Select-Object -Unique
192.168.141.160
192.168.141.162

1 Ответ

0 голосов
/ 08 июля 2019
  • Имя общего ресурса не может содержать двоеточие внутри
  • назначить выходные данные обоих foreach переменной, собирающей все выходные данные
  • использовать [PSCustomObject]
$Servers = @('server1', 'server2', 'server3')

$export = foreach ($server in $Servers) {
    $filePath = "\\$server\d`$\application\application.log"
    Get-Content $filePath | Select-String -Pattern "Could not resolve"| ForEach-Object{
        [PSCustomObject]@{
           ipsFailed = ($_ -split ' ')[-1]
        }
    }
} | Select-Object ipsFailed -Unique
$export
$export | Export-Csv "ipsFailed.csv" -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...