0

我正在编写一个脚本,它将自动从 .blg Perfmon 日志中提取数据。

我已经制定了我需要用来获取数据的主要 Import-Counter 命令,但我正在尝试对其进行参数化,以便我可以为日志文件中的每台机器执行此操作(无需打开日志Perfmon,这可能需要 15 分钟或更长时间,这也是我编写此脚本的原因),并找出每个主机名是什么。

我拥有的脚本可以完成这项工作,但是返回我想要的数据仍然需要一分钟,我想知道是否有更简单的方法可以做到这一点,因为我对 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 回答