如何使用 PowerShell 将任务管理器统计信息导出到文件中?

如何使用 PowerShell 将任务管理器统计信息导出到文件中?

我想看看是否可以使用 PowerShell 每隔几分钟将 CPU/内存使用情况和进程传输到 csv 之类的文件中。

有任何想法吗?

编辑:

通过使用“任务列表”,我能够将信息发送到 CSV 文件中:

tasklist /FO csv > *path*

我可以使用计划任务按计划执行此操作,但由于数据被写入单独的 csv 文件中,因此它并不完全干净。

编辑2:

我已通过 OEM 支持联系人向 Microsoft 提交了一张票。性能监视器是理想的解决方案,但正如我下面所说,它没有按预期工作。他们正在调查。

答案1

你可以从这个开始。

Get-WMIObject WIN32_PROCESS | `
Sort-Object -Property ws -Descending | `
Select processname,@{Name="Mem Usage(MB)";Expression={[math]::round($_.ws / 1mb)}},@{Name="ProcessID";Expression={[String]$_.ProcessID}},@{Name="UserID";Expression={$_.getowner().user}} | `
Export-CSV test.csv -Append

输出:

ProcessName    Mem Usage(MB)       ProcessID    UserID
OUTLOOK.EXE    180                 7132         username
chrome.exe     160                 208          username
WINWORD.EXE    158                 14100        username

来源

答案2

我喜欢 Powershell,你可以用 Powershell 来做这件事,但为什么呢?!Perfmon 和数据收集器集更适合这项任务。请参阅通过文件监控 Windows Server 性能

相关内容