我正在编写一个脚本,它将自动从 .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 块,其中每个主机都已参数化。
只是想知道是否有更好的方法来做到这一点?