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

[玩转系统] 从历史上讲

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

从历史上讲


所以我最近需要开始使用 Slack。我一开始使用网络浏览器,但由于有 Windows 客户端,我决定尝试一下。这篇文章并不是关于 Slack,而是关于我所好奇的以及我决定如何解决这个问题。

我读过一些关于 Slack 客户端性能的评论,虽然它们可能是指使用网络浏览器,但实际上并不重要。相反,我想:“我怎样才能获得一些历史数据?”您可能对进程或磁盘空间等有类似的需求。由于我对内存利用率感兴趣,我本可以使用性能计数器,也许我最终会写到这一点,但现在我有一个简单的单行命令,可以为我提供我想要跟踪的信息。


Get-Process Slack | measure -Property WS -sum | Select Count,Sum

[玩转系统] 从历史上讲

我想要的是一种全天重复拍摄快照并记录结果的方法。我决定使用 PowerShell 计划作业。

我想要一个重复的任务,就我而言,我决定只在 8 小时的时间范围内重复它。我使用参数哈希表来生成 New-JobTrigger。


$paramHash = @{
RepetitionInterval = (New-TimeSpan -Minutes 30)
RepetitionDuration = (New-Timespan -hours 8)
at = (Get-Date).AddMinutes(1)
Once = $True
}

$Trigger = New-JobTrigger @paramHash

我选择在创建触发器后一分钟开始工作。我可以为我的命令使用一个脚本文件,我将其扩展为将结果导出到带有一些附加信息的 CSV 文件。


$sb = {
Param([string]$Path)

Get-Process Slack | measure -Property WS -sum |
Select @{Name="Computername";Expression={$env:computername}},
@{Name="Date";Expression={Get-Date}},Count,Sum |
Export-CSV $path -Append -NoTypeInformation
}

剩下的就是使用 Register-ScheduledJob 创建计划作业。


$path = "C:\work\slackhistory.csv"
$paramHash = @{
Name = 'SlackHistory'
Trigger = $Trigger
MaxResultCount = 4
ScriptBlock = $sb
ArgumentList = $path
}

Register-ScheduledJob @paramHash

一整天,PowerShell 都将数据添加到我的 CSV 文件中。

[玩转系统] 从历史上讲

如果您注意到的话,我隐藏了类型信息。这样我就可以轻松地将 CSV 导入 Excel 并制作一些图表。

[玩转系统] 从历史上讲

我格式化了几列以制作更好的图表。尽管我当然可以首先在 PowerShell 中格式化值,例如以 MB 为单位的 WS 总和。

诚然,我这里的技术有点临时,也许还没有完全准备好用于企业范围的数据收集系统,当然是“穷人”的风格。但我希望您看到结合 PowerShell 和计划任务来完成工作是多么容易。

您可能有疑问,请随时在评论中提问。

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

取消回复欢迎 发表评论:

关灯