如何在 Windows 远程桌面会话主机上使用命令或 PowerShell 获取每个用户正在运行的进程数?

如何在 Windows 远程桌面会话主机上使用命令或 PowerShell 获取每个用户正在运行的进程数?

是否可以使用命令或 PowerShell 获取 Windows 远程桌面会话主机上运行的进程的每个用户数量?我想要定位运行进程数量高于 X 的用户并在此基础上执行后续操作。

答案1

这可以通过 Powershell 轻松完成。首先,您需要获取 RDS 主机上除系统进程之外的所有进程(例如,我排除了 NT AUTHORITY\SYSTEM,您可能想要更多)。然后检查唯一用户并计算每个用户正在运行的进程。

$pr = Get-Process -IncludeUserName | sort username | where {$_.username -ne "NT AUTHORITY\SYSTEM"}
$users = $pr.Username | Get-Unique
foreach ($user in $users) {
   $count = (Get-Process -IncludeUserName | where {$_.username -eq $user}).count
   if ($count -gt 50) {"User $user has $count processes running"}
}

希望有所帮助。

相关内容