Checking LOG - Foreach Stopping on just 1 computer

This topic contains 2 replies, has 2 voices, and was last updated by Profile photo of H Man H Man 1 year, 9 months ago.

  • Author
    Posts
  • #23264
    Profile photo of H Man
    H Man
    Participant

    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
    Profile photo of Don Jones
    Don Jones
    Keymaster

    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
    Profile photo of H Man
    H Man
    Participant

    Oy .. lol

    Thanks Don

You must be logged in to reply to this topic.