gpt4 book ai didi

windows - 如何使用 Get-Counter 一次返回多个性能计数器?

转载 作者:可可西里 更新时间:2023-11-01 09:19:24 25 4
gpt4 key购买 nike

我不知道如何使用列表从系统中记录多个指标。 $CounterList var 不起作用,但 $CounterList_Working var 起作用。我看过一些示例,这些示例根据 (Get-Counter -List Processor(*)).Paths 等路径获取列表。

我以为我可以在变量中指定路径,但这行不通。

PowerShell 脚本中的 $CounterList 有什么问题?我收到的错误消息是“Get-Counter:在计算机上找不到指定的对象。”。这让我觉得它正在尝试将列表作为单个值来读取。

$CounterList = "\Network Interface(*)\Packets/sec
\Network Interface(*)\Current Bandwidth
\Network Interface(*)\Bytes Total/sec
\Memory\Committed Bytes
\Memory\Commit Limit"

$CounterList_Working = "\Processor(*)\% Processor Time"

echo "Gathering system data and writing to file $home\system_metrics.blg"
Get-Counter -Counter $CounterList -SampleInterval 2 -MaxSamples 10 | Export-counter -Path $home\system_metrics.blg

最佳答案

根据MSDN for Get-Counter , 参数 ...

-Counter

Specifies, as a string array, data from the specified performance counters. Enter one or more counter paths. You can also pipe counter path strings to this cmdlet.

您正在使用单个字符串,这对单个计数器来说没问题。您的多个计数器列表需要一个数组。

$CounterList = "\Network Interface(*)\Packets/sec",
"\Network Interface(*)\Current Bandwidth",
"\Network Interface(*)\Bytes Total/sec",
"\Memory\Committed Bytes",
"\Memory\Commit Limit"

应该像许多其他声明字符串数组的方法一样使用技巧。

如果出于某种疯狂的原因,您确实在使用换行符分隔的字符串,您可以使用 -split 将其转换为字符串数组。以下将为您提供与我的第一个示例相同的结果。

$CounterList = "\Network Interface(*)\Packets/sec
\Network Interface(*)\Current Bandwidth
\Network Interface(*)\Bytes Total/sec
\Memory\Committed Bytes
\Memory\Commit Limit" -split "`r`n"

但是,如果您对此有任何控制权,我会选择前一个声明。

关于windows - 如何使用 Get-Counter 一次返回多个性能计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43212500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com