Powershell - переменные и цикл foreach

Эта тема заставила меня начать очень хорошо, но теперь мне нужна дополнительная помощь

Я пытаюсь перебрать мой файл serverlist.txt и передать результаты Get-EventLog в Out-GridView, а затем в файл.csv. У меня это работает, но я должен выбрать все записи в окне GridView, а затем нажать кнопку ОК для каждого сервера.

Итак, у меня есть идея, что я хочу создать переменную $sys вне цикла, войти, добавить результаты к этой переменной для каждого сервера, а затем выйти из цикла и передать $sys в Grid-view.

Моя путаница возникает в отношении объявления переменных, их типа, добавления и размещения в коде...

Я только сейчас изучаю PS, так что это может быть немного для вас:)

этот код работает... нужно добавить в переменную идею в нужных местах:

#Drop the existing files
Remove-Item C:\system.csv

# SERVER LIST PROPERTIES
# Get computer list to check disk space. This is just a plain text file with the servers listed out.
$computers = Get-Content "C:\ServerList.txt"; 

#Declare $sys here ??

# QUERY COMPUTER SYSTEM EVENT LOG
foreach($computer in $computers)

{        
 if(Test-Connection $computer -Quiet -Count 1)
        {
   Try {
        # $sys = 
        Get-EventLog -ComputerName $computer -LogName System -EntryType "Error","Warning" -After (Get-Date).Adddays(-7) `
        | Select-Object -Property machineName, EntryType, EventID, Source, TimeGenerated, Message `
        | Out-GridView -PassThru | Export-Csv C:\System.csv -NoTypeInformation -Append;
       } 
   Catch 
       {
       Write-Verbose "Error $($error[0]) encountered when attempting to get events from  $computer"
       }
       } 
   else {
         Write-Verbose "Failed to connect to $computer"
        }


}
# $sys | Out-GridView....etc.

Спасибо!

Kevin3NF

1 ответ

Решение

Просто чтобы закрыть это, я использовал предложения из нескольких комментариев:

$ sys = @ () (вне цикла)

$ sys + = Get-EventLog (внутри цикла)

$ sys | Export-Csv (после цикла для отправки в.csv)

Я даже написал в блоге все это, включая все различные этапы обучения, которые я прошел: http://dallasdbas.com/getting-to-know-powershell-from-an-old-dba/

Спасибо всем, что помогло. Это дало мне основу, которую я буду продолжать использовать на этих серверах по мере необходимости.

Kevin3NF

Другие вопросы по тегам