0

.blg Perfmon ログからのデータの抽出を自動化するスクリプトを作成しています。

データを取得するために使用する必要がある主要な Import-Counter コマンドを作成しましたが、これをパラメーター化して、ログ ファイル内の各マシンに対して実行できるようにしようとしています (ログ ファイルを開く必要はありません)。これには 15 分または場合によってはそれ以上かかることがありますが、これが私がこのスクリプトを書いている理由です)、各ホスト名が何であるかを調べます。

私が持っているスクリプトは仕事をしますが、必要なデータを返すのにまだ1分かかります.Powershellに慣れていないので、これを行うためのより簡単な方法があるかどうか疑問に思いました.

ここに私が持っているものがあります:

$counters = Import-Counter -Path $log_path$logfile -ListSet * | Select-Object paths -ExpandProperty paths

$svrs = @()

# for each line in the list of counters, extract the name of the server and add it to the array
foreach ($line in $counters) {
    $svrs += $line.split("\")[2]
}

# remove duplicates and sort the list of servers
$sorted_svrs = $svrs | sort -unique

foreach ($svr in $sorted_svrs) {
    Write-Host $svr
}

今のところ名前を出力しているだけですが、適切なスクリプトの配列に入れられます。次に、これらの各ホストをパラメーター化して Import-Counter ブロックを実行します。

これを行うためのより良い方法があるかどうか疑問に思いましたか?

4

1 に答える 1

0
$sorted_svrs=Import-Counter "$log_path$logfile" -Counter "\\*\physicaldisk(_total)\% disk time" | %{$_.countersamples.path.split("\")[2]} | sort -Unique
于 2012-12-10T16:12:06.470 に答える