PowerShell Get-Counter 命令,-ComputerName 与 -Counter

Posted

技术标签:

【中文标题】PowerShell Get-Counter 命令,-ComputerName 与 -Counter【英文标题】:PowerShell Get-Counter command, -ComputerName vs -Counter 【发布时间】:2017-06-23 18:24:08 【问题描述】:

调用Get-Counter时使用-Co​​mputerName参数和使用-Co​​unter参数中的路径有区别吗?

Get-Counter -Counter "\Memory\Available MBytes" -ComputerName \\serv01 
Get-Counter -Counter "\\serv01\Memory\Available MBytes"

选择一个而不是另一个的原因是什么?

【问题讨论】:

【参考方案1】:

看起来通过使用-ComputerName 参数,您可以在一个命令中从多台计算机的性能计数器中获取数据,而通过在计数器路径中指定服务器名称,您需要使用循环或多个不同的命令.

示例 5:从多台计算机获取特定的计数器数据

The first command saves the **Disk Reads/sec** counter path in the $DiskReads variable.
PS C:\> $DiskReads = "\LogicalDisk(C:)\Disk Reads/sec"

The second command uses a pipeline operator (|) to send the counter path in the $DiskReads variable to the **Get-Counter** cmdlet. The command uses the **MaxSamples** parameter to limit the output to 10 samples.
PS C:\> $DiskReads | Get-Counter -Computer Server01, Server02 -MaxSamples 10
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.diagnostics/get-counter

【讨论】:

【参考方案2】:
Get-Counter -Counter "\Memory\Available MBytes" -ComputerName \\serv01 

这是一个通用命令,您通常知道您所指的计数器,并且可能知道或不知道位置。如果在不同位置有多个同名计数器,这将返回所有计数器。并且您还可以将计算机名中的多个服务器通过管道传递到所有这些服务器上的获取计数器。

Get-Counter -Counter "\\serv01\Memory\Available MBytes"

这是一个特定的例子,只有一个柜台,在一个特定的位置,你知道。

【讨论】:

以上是关于PowerShell Get-Counter 命令,-ComputerName 与 -Counter的主要内容,如果未能解决你的问题,请参考以下文章

加速PowerShell Get-Counter和Get-Process

Get-Counter 未检索到有效详细信息

运行 powershell 命令以在 c# 上按进程获取 GPU 使用情况

在 Powershell 的表中格式化计数器数据

微调 Get-Counter 脚本以加快执行速度

如何使用名称中带有 * 的 Get-Counter 选择性能计数器