2016-08-24 4 views
1

私は借りてきた以下のコードを持っていますが、期待した出力が得られません。最後に、最後のx個の値を含む各カウンタのリスト/配列を作成したいと思います。 しかし、$objは私が踏むことができるカウンターのリストになると思っていました。下のコードは、各カウンターの間に***の出力を与えていましたが、そうではありませんか?Powershellの複数のカウンタからの出力値

各カウンタを順番にループして値を取得するにはどうすればよいですか?

$counters = get-counter -ComputerName sql -Counter "\SQLServer:General Statistics\User Connections","\SQLServer:Memory Manager\Memory Grants Pending","\SQLServer:SQL Statistics\batch requests/sec","\SQLServer:SQL Statistics\sql compilations/sec","\SQLServer:SQL Statistics\sql re-compilations/sec" -SampleInterval 1 

foreach($metric in $counters)    
{    
    $obj = $metric.CounterSamples | Select-Object -Property Path, CookedValue;    

    write-host $obj 
    write-host "***" 
} 

私が手電流出力は以下の通りです:

@{Path=\\sql\\sqlserver:general statistics\user connections; CookedValue=96} @{Path=\\sql\\sqlserver:memory manager\memory grants pending; CookedValue=0} @{Path=\\sql\\sqlserver:sql statistics\batch requests/sec; CookedValue=110.969626692457} @{Path=\\sql\\sqlserver:sql statistics\sql compilations/sec; CookedValue=17.9950745987768} @{Path=\\sql\\sqlserver:sql statistics\sql re-compilations/sec; CookedValue=5.99835819959228} 
*** 

私はこのようなより多くを期待していた:

Counters 1 = 0.5 
*** 
Counter 2 = 1.2 
*** 

これは、別のカウンターに出力を破るだろうが、私は思います私は今、コメントを理解しています。

+0

$ objは$ countersの1回の反復に対するCounterSamplesのリストです(おそらく$ countersはあなたのカウンタのリストです)。あなたはまた、あなたが得たアウトプットを説明しません。これは、コンソールに統計の束を出力する必要があるように見えますが(あなたが何でもできる何らかのリストではありません)。 –

+0

get-counter、start-job、get-gobなどのヘルプを見たいかもしれません –

+0

Deadly-Bagel、私はこの権利を見ていませんでしたが、$ objのアイテムはループしていませんでした$カウンタ。ありがとう、あなたが答えとして投稿したいのであれば、私はうれしく受け入れます。 – DevilWAH

答えて

0

これはあなたの探しているものですか?

$counters = $(Get-Counter -Counter '\Processor(_Total)\% Processor Time', '\LogicalDisk(_Total)\% Free Space').CounterSamples | Select-Object -Property Path, CookedValue 

foreach($obj in $counters)    
{    
    Write-Host -Object '***' 
    $obj = $($obj | ConvertTo-Json| 
     ForEach-Object -Process { 
     [System.Text.RegularExpressions.Regex]::Unescape($_) 
     }) -replace ‘[{},\n]’ 
    Write-Host -Object $obj 
    Write-Host -Object '***' 
} 
+0

上記のように、この問題は、返された変数をどのように見ていたのか、そしてDeadly_Bagelが答えを持っていたことでした。乾杯 – DevilWAH

関連する問題