Hi
I converted a foreach to a workflow
works amazingly fast
only thing is I am struggling with output a little:)
this is the workflow:
<div class="pscode">workflow <span class="verbnoun">Test-performance</span><br /><br /> {<br /><br /> <span class="var">$Servers</span><span class="op">=</span><span class="string">"server1"</span>,<span class="string">"server2</span>
<br /><span class="string"> </span>
<br /><span class="string"> # The servers are processed in parallel.</span>
<br /><span class="string"></span>
<br /><span class="string"> ForEach -Parallel ($server in $servers)</span>
<br /><span class="string"></span>
<br /><span class="string"> {</span>
<br /><span class="string"></span>
<br /><span class="string"> # The commands run sequentially on each server. </span>
<br /><span class="string"></span>
<br /><span class="string"> (Get-Counter -pscomputername $server -Counter "</span>\Processor(_Total)\<span class="op">%</span> Processor Time" <span class="modifier">-SampleInterval</span> 10 <span class="modifier">-MaxSamples</span> 1)<br /><br /> <br /><br /> }<br /><br /> }</div>
so I run it like this to get data:
$data=test-performance
what I really want is output that looks like:
Pscomputername,readings
now readings I can get by running:
$data.readings(messed up a little) I can clean it by running:
$newdata=$data.readings -replace ".*:"
so I try this:
$data |Select pscomputername,@{n="Readings";Expression={$data.readings -replace ".*:" } }| FT -autosize
but it doesn't seem to work right(I get same readings for multiple servers) I think my expression definition is not right or something.
any ideas on how to fix it?
Thanks
here's code again(cannot get it to work right):
workflow Test-performance { $Servers="fdswp3313","fdswp3314","fdswp3315","fdswp3316","fdswp3317","fdswp3318","fdswp3319","fdswp3320","fdswp3321","fdswp3322","fdswp3323","fdswp3324" $data=@() # The servers are processed in parallel. ForEach -Parallel ($server in $servers) { # The commands run sequentially on each server. (Get-Counter -pscomputername $server -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 10 -MaxSamples 1) } }