当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 提高计数器性能

作者:精品下载站 日期:2024-12-14 20:38:49 浏览:13 分类:玩电脑

使用 PowerShell 提高计数器性能


我想向您介绍最新版本的 PSScriptTools 模块的另一个新增内容。这是我之前写过的内容,但我决定将该功能添加到模块中。我希望您发现这是一种更简单的使用性能计数器的方法。它适用于 Windows PowerShell 和 PowerShell 7.x。

获取计数器

我们在 PowerShell 中使用 Get-Counter cmdlet 已经很长时间了。然而,我对它显示结果的方式一直有一个小问题。

[玩转系统] 使用 PowerShell 提高计数器性能

该命令将一个有趣的对象写入管道。

[玩转系统] 使用 PowerShell 提高计数器性能

在底层,PowerShell 使用自定义格式文件以易于阅读的视图呈现结果。但是,如果您想对输出执行某些操作(例如导出到 csv 文件),则需要跳过一些步骤。

Get-Counter | Select-Object -expand Countersamples | Select-Object Timestamp,Path,InstanceName,CookedValue,@{Name="Computername";Expression={$_.path.split("\")[2].toUpper()}} | Export-Csv c:\work\counters.csv

这当然不直观。我想要一个性能计数器 cmdlet,将“更好”的结构化数据写入管道。

获取我的计数器

PSScriptTools 模块现在包含 Get-MyCounter 函数的更新版本。该函数是 Get-Counter 的“包装器”,它将简单的结构化对象写入管道。您可以使用与 Get=Counter 几乎相同的方式使用它。

[玩转系统] 使用 PowerShell 提高计数器性能

自定义对象有自己的格式化文件。但对象类型很容易使用。

[玩转系统] 使用 PowerShell 提高计数器性能

现在,我有一种更简单的方法来处理性能计数器数据。

[玩转系统] 使用 PowerShell 提高计数器性能

事实上,我可以从 Get-Counter 获取计数器并将它们通过管道传输到 Get-MyCounter。

[玩转系统] 使用 PowerShell 提高计数器性能

Get-MyCounter 还支持采样。

get-counter -list system | get-mycounter -MaxSamples 10 -SampleInterval 2

或者您可以使用同样来自 PSScriptTools 模块的 ConvertTo-WPFGrid,并让它处理采样。

$counters = (get-counter -list system).counter | where {$_ -match "file"}
Get-MyCounter -Counter $counters -ComputerName prospero,thinkp1 | 
Select-Object * -exclude Instance | 
ConvertTo-WPFGrid -Title "System Performance" -Timeout 6 -refresh -UseLocalVariable counters

[玩转系统] 使用 PowerShell 提高计数器性能

该表单将每 6 秒刷新一次,直到我关闭它。该表单还在其自己的运行空间中运行,因此不会出现提示阻塞。

我希望您尝试一下 Get-MyCounter,并告诉我您的想法。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯