私は借りてきた以下のコードを持っていますが、期待した出力が得られません。最後に、最後の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
***
これは、別のカウンターに出力を破るだろうが、私は思います私は今、コメントを理解しています。
$ objは$ countersの1回の反復に対するCounterSamplesのリストです(おそらく$ countersはあなたのカウンタのリストです)。あなたはまた、あなたが得たアウトプットを説明しません。これは、コンソールに統計の束を出力する必要があるように見えますが(あなたが何でもできる何らかのリストではありません)。 –
get-counter、start-job、get-gobなどのヘルプを見たいかもしれません –
Deadly-Bagel、私はこの権利を見ていませんでしたが、$ objのアイテムはループしていませんでした$カウンタ。ありがとう、あなたが答えとして投稿したいのであれば、私はうれしく受け入れます。 – DevilWAH