Checking LOG - Foreach Stopping on just 1 computer

This topic contains 2 replies, has 2 voices, and was last updated by  H Man 3 years, 3 months ago.

  • Author
  • #23264

    H Man

    Hello i have a list of computers that i want to check a log file , after an Install I am doing. I am getting no errors but The foreach loop isnt going thru my whole list. its only collecting the data for 1 computer, which is working.

    Here is what I have. Any Help would be great.

    $OnlineOnly = ipcsv $CsvFile | ? Online -eq 'TRUE'
    ForEach ($c in $OnlineOnly) {
    $content = get-content "\\$($c.Computername)\c$\windows\temp\MSXML.txt" -raw
    $match = "Product: MSXML 4.0 SP3 Parser -- Installation completed successfully"
    $data = if ($content -match "$($match)") {New-Object PSObject -Property @{Host = $($c.Computername); Value = $true}} else {New-Object PSObject -Property @{Host = $($c.Computername); Value = $false}}
  • #23265

    Don Jones

    Oy, with the aliases.

    As written, $data will be overwritten each time through the loop. At the end of the loop, it'll contain the last computer it processed. If your goal is to output the objects to the pipeline, you shouldn't be saving them into a variable.

  • #23267

    H Man

    Oy .. lol

    Thanks Don

You must be logged in to reply to this topic.