我想看看是否可以使用 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 性能