我一直在网上搜索我的问题的答案,但我只能找到部分解决方案。
基本上,我希望得到一个文本、csv 等文件,其中包含每个用户进程的 cpu、磁盘 i/o 和内存使用情况(甚至可能是网络)。使用 PowerShell 获取每个进程的使用情况有很多结果,但我想更深入地查看每个用户的使用情况。
Windows 任务管理器(至少在 8 和 10 中)在“用户”选项卡下几乎完全按照我的需要显示了这些信息。
有人可以帮助我开始使用 PowerShell 编写脚本吗?
最佳答案
这是我正在使用的代码。当我在一两分钟后运行此脚本时,它返回一个错误,提示找不到 $.GetOwner() 并且在另一行中它给了我比其他人更多地使用内存的用户名,但是当计算不正确时我将它与 TaskManager 用户的选项卡进行比较。
$h = @{}
get-wmiobject win32_process | foreach {
$u = $_.getowner().user;
if ( $u -ne $null)
{
if ( !$h.ContainsKey($u) )
{
$h.add( $u, $_.WS);
}
else
{
$h.item($u) = $h.item($u) + $_.WS;
}
}
}
$h.GetEnumerator() | sort value -desc
关于windows - 每个用户进程的 CPU、磁盘和内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35429805/