Note that there are some explanatory texts on larger screens.

plurals
  1. POPowerShell: Start-Job, Receive-Job: no return value
    primarykey
    data
    text
    <p>Ok, Here is my script</p> <pre><code>$server=@("SERVER1","SERVER2") $A=@() foreach($srv in $server){ start-job -scriptblock {Get-AppHangs $srv}} while (Get-Job -State "Running"){} foreach($JB in Get-Job){$A+=Receive-Job $JB} Remove-Job * $A|Out-GridView function Get-AppHangs($srv){ $A=@() $XX=Get-EventLog -ComputerName $srv -LogName "application" | Where-Object {$_.InstanceID -ge 1000 -and $_.InstanceID -lt 1005} | select -First 5 foreach($x in $XX){ $time = $_.Time.ToString() $obj=New-Object PSObject $obj|Add-Member -MemberType "NoteProperty" -Name Server -Value $srv $obj|Add-Member -MemberType "NoteProperty" -Name Index -Value $x.Index $obj|Add-Member -MemberType "NoteProperty" -Name Time -Value $x.Time -SecondValue System.string $obj|Add-Member -MemberType "NoteProperty" -Name EntryType -Value $x.EntryType $obj|Add-Member -MemberType "NoteProperty" -Name Source -Value $x.Source $obj|Add-Member -MemberType "NoteProperty" -Name InstanceID -Value $x.InstanceID $obj|Add-Member -MemberType "NoteProperty" -Name Message -Value $x.Message $A+=$obj } $obj3=New-Object PSObject $A+=$obj3 return $A } </code></pre> <p>My problem is that I am expecting the line $A|Out-GridView to produce something meaningful. but the gridview doesn't even pop up.</p> <p>So if I look down this script, I don't see anything glaring at me, but I am hoping a fresh set of eyes can review... </p> <p>The purpose of this script is to be able to find all the Application Hang ID's in the event viewer for a set of servers and show up in a nice gridview... </p> <p>I am able to see the gridview if I cut out the start-job and receive-job business, but I want to make this run faster and more efficient.</p> <p>heeeeelp ;) Thanks in advance! Also I couldn't figure out how to get the Time property into my custom object... if you have a tip for that, that would be amazing as well.</p> <p>UPDATED Script:</p> <pre><code> $server=@("SERVER1","SERVER2") $A=@() foreach($srv in $server) { start-job -scriptblock { $A=@() $XX=Get-EventLog -ComputerName $srv -LogName "application" | Where-Object {$_.InstanceID -ge 1000 -and $_.InstanceID -lt 1005} | select -First 5 foreach($x in $XX){ $obj=New-Object PSObject $obj|Add-Member -MemberType "NoteProperty" -Name Server -Value $srv $obj|Add-Member -MemberType "NoteProperty" -Name Index -Value $x.Index $obj|Add-Member -MemberType "NoteProperty" -Name EntryType -Value $x.EntryType $obj|Add-Member -MemberType "NoteProperty" -Name Source -Value $x.Source $obj|Add-Member -MemberType "NoteProperty" -Name InstanceID -Value $x.InstanceID $obj|Add-Member -MemberType "NoteProperty" -Name Message -Value $x.Message $A+=$obj} $obj3=New-Object PSObject $A+=$obj3 return $A } } while (Get-Job -State "Running"){} foreach($JB in Get-Job){$A+=Receive-Job $JB} Remove-Job * $A|Out-GridView </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload