windows - 每个用户进程的 CPU、磁盘和内存使用情况

标签 windows powershell cmd

我一直在网上搜索我的问题的答案,但我只能找到部分解决方案。

基本上,我希望得到一个文本、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/

相关文章:

batch-file - 找到第一个命中后停止 DIR 命令搜索

windows - 如何向 Windows CMD 添加 gzip 命令?

windows - 是什么导致 GetCursorPos 返回不正确的 {0,0} 坐标?

powershell - 为什么自动化框架需要为每个 powershell cmdlet 提供代理功能?

c - localtime_s取决于智利圣地亚哥时区的当前系统时间

powershell - 使用 Powershell 检测系统关闭

powershell - runas.exe 和 Start-Process -Credential 的区别

windows - 隐藏批处理文件的 CMD 窗口

linux - Excel函数的命令行执行

windows - cpan 与 -MCPAN - Perl