Windows使用cmd杀会话、程序、注销用户、限制CPU和内存等
Tags: cmd命令logoffOSProcess LassotaskkilltasklisttaskmgrWindows杀会话注销限制
前言
当Windows系统卡死时,很难通过图形化界面的任务管理器来杀会话,杀进程等,此时可以通过cmd命令来操作。
tasklist
显示本地计算机或远程计算机上当前正在运行的进程列表。 Tasklist 替换 tlist 工具。
tasklist会按照pid(进程号)从小到大进行排列.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | C:\Users\lhr>tasklist /? TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH] 描述: 该工具显示在本地或远程机器上当前运行的进程列表。 参数列表: /S system 指定连接到的远程系统。 /U [domain\]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果省略,则 提示输入。 /M [module] 列出当前使用所给 exe/dll 名称的所有任务。 如果没有指定模块名称,显示所有加载的模块。 /SVC 显示每个进程中主持的服务。 /APPS 显示 Microsoft Store 应用及其关联的进程。 /V 显示详细任务信息。 /FI filter 显示一系列符合筛选器 指定条件的任务。 /FO format 指定输出格式。 有效值: "TABLE"、"LIST"、"CSV"。 /NH 指定列标题不应该 在输出中显示。 只对 "TABLE" 和 "CSV" 格式有效。 /? 显示此帮助消息。 筛选器: 筛选器名称 有效运算符 有效值 ----------- --------------- -------------------------- STATUS eq, ne RUNNING | SUSPENDED NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号 SESSIONNAME eq, ne 会话名称 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 小时, mm - 分钟,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用(以 KB 为单位) USERNAME eq, ne 用户名,格式为 [域\]用户 SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 模块 eq, ne DLL 名称 注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 Examples: TASKLIST TASKLIST /M TASKLIST /V /FO CSV TASKLIST /SVC /FO LIST TASKLIST /APPS /FI "STATUS eq RUNNING" TASKLIST /M wbem* TASKLIST /S system /FO LIST TASKLIST /S system /U 域\用户名 /FO CSV /NH TASKLIST /S system /U username /P password /FO TABLE /NH TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running" |
taskkill
结束一个或多个任务或进程。 可以通过进程 ID 或图像名称结束进程。 可以使用 tasklist 命令来确定要结束的进程的进程 ID (PID)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | C:\Users\lhr>taskkill /? TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F] 描述: 使用该工具按照进程 ID (PID) 或映像名称终止任务。 参数列表: /S system 指定要连接的远程系统。 /U [domain\]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示 输入。 /FI filter 应用筛选器以选择一组任务。 允许使用 "*"。例如,映像名称 eq acme* /PID processid 指定要终止的进程的 PID。 使用 TaskList 取得 PID。 /IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来 指定所有任务或映像名称。 /T 终止指定的进程和由它启用的子进程。 /F 指定强制终止进程。 /? 显示帮助消息。 筛选器: 筛选器名 有效运算符 有效值 ----------- --------------- ------------------------- STATUS eq, ne RUNNING | NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号。 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 时, mm - 分,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB USERNAME eq, ne 用户名,格式为 [domain\]user MODULES eq, ne DLL 名称 SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 说明 ---- 1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。 2) 远程进程总是要强行 (/F) 终止。 3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 例如: TASKKILL /IM notepad.exe TASKKILL /PID 1230 /PID 1241 /PID 1253 /T TASKKILL /F /IM cmd.exe /T TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*" TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe TASKKILL /S system /U 域\用户名 /FI "用户名 ne NT*" /IM * TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*" |
杀会话、程序
如果想根据程序名删除进程,可以使用 Windows 中的命令行工具 Taskkill。下面是具体的步骤:
- 打开命令提示符(cmd)。可以在Windows的“开始”菜单中,找到“Windows系统”文件夹下的“命令提示符”应用,或者使用快捷键 Win+R,输入“cmd”并回车来打开。
- 使用以下命令查找进程名对应的进程 ID(PID):
1 | tasklist | find "<进程名>" |
将“<进程名>”替换为要结束的进程名,使用双引号将进程名括起来。这会列出所有与进程名匹配的进程及其 PID。
找到需要结束的进程的 PID,并使用以下命令结束进程:
1 | taskkill /PID <PID> /F |
将“
例如,如果要删除进程名为“chrome.exe”的进程,则可以输入以下命令:
1 | tasklist | find "chrome.exe" |
找到对应的进程 ID,例如为 1234,然后输入以下命令结束进程:
1 | taskkill /PID 1234 /F |
需要注意的是,结束进程可能会造成数据丢失或其他问题。在结束进程之前,请确保保存所有未保存的工作,并谨慎地使用此命令。
注销用户
使用管理员角色来打开cmd命令行。
注销当前用户
在 Windows 中,可以使用命令行工具 cmd 来注销当前用户。下面是具体的步骤:
- 打开命令提示符(cmd)。可以在Windows的“开始”菜单中,找到“Windows系统”文件夹下的“命令提示符”应用,或者使用快捷键 Win+R,输入“cmd”并回车来打开。
- 输入以下命令:
1 | shutdown /L |
这会立即注销当前用户并返回登录屏幕。
需要注意的是,注销当前用户将关闭所有打开的应用程序并丢失所有未保存的工作。在注销之前,请确保保存所有未保存的工作,并谨慎地使用此命令。
注销其它用户
在 Windows 中,可以使用命令行工具 cmd 来注销其他用户。下面是具体的步骤:
- 打开命令提示符(cmd)。可以在Windows的“开始”菜单中,找到“Windows系统”文件夹下的“命令提示符”应用,或者使用快捷键 Win+R,输入“cmd”并回车来打开。
- 输入以下命令查找要注销的用户的会话 ID:
1 | query session |
这会列出当前所有用户的会话信息,包括会话 ID 和用户名。
找到要注销的用户的会话 ID。
使用以下命令注销用户:
1 | logoff <会话 ID> |
将“<会话 ID>”替换为要注销的用户的会话 ID。
例如,如果要注销会话 ID 2 的用户,则可以输入以下命令:
1 | logoff 2 |
需要注意的是,注销其他用户将关闭其所有打开的应用程序并丢失所有未保存的工作。在注销之前,请确保用户已保存所有未保存的工作,并谨慎地使用此命令。
taskkill示例
若要结束进程 ID 为 1230、1241 和 1253 的进程,请键入:
1 | taskkill /pid 1230 /pid 1241 /pid 1253 |
如果进程 Notepad.exe 是由系统启动的,要强行结束它,请键入:
1 | taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe |
若要结束远程计算机 Srvmain 上映像名称以 note 开头的所有进程,同时使用用户帐户 Hiropln 的凭据,请键入:
1 | taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im * |
若要结束进程 ID 为 2134 的进程及其它启动的任何子进程,但前提是这些进程是由管理员帐户启动的,请键入:
1 | taskkill /pid 2134 /t /fi "username eq administrator" |
若要结束进程 ID 大于或等于 1000 的所有进程,无论其映像名称如何,请键入:
1 | taskkill /f /fi "PID ge 1000" /im * |
tasklist示例
若要列出进程 ID 大于 1000 的所有任务,并将它们以 csv 格式显示,请键入:
1 | tasklist /v /fi "PID gt 1000" /fo csv |
若要列出当前正在运行的系统进程,请键入:
1 | tasklist /fi "USERNAME ne NT AUTHORITY\SYSTEM" /fi "STATUS eq running" |
若要列出当前正在运行的所有进程的详细信息,请键入:
1 | tasklist /v /fi "STATUS eq running" |
若要列出远程计算机 srvmain(其 DLL 名称以 ntdll 开头)上进程的所有服务信息,请键入:
1 | tasklist /s srvmain /svc /fi "MODULES eq ntdll*" |
若要使用当前登录用户帐户的凭据列出远程计算机 srvmain 上的进程,请键入:
1 | tasklist /s srvmain |
若要使用用户帐户 Hiropln 的凭据列出远程计算机 srvmain 上的进程,请键入:
1 | tasklist /s srvmain /u maindom\hiropln /p p@ssW23 |
错误
若系统卡死,也会报如下的错误:
1 2 | C:\Users\lhr>taskkill /IM chrome.exe ERROR: This operation returned because the timeout period expired. |
Windows Server如何限制用户或程序的CPU和内存的使用率
- Process Lasso:它是一款功能强大的进程管理工具,可以帮助您限制 CPU 和内存使用率、优化系统性能、自动优化进程等。该工具具有直观的用户界面和丰富的功能设置,适用于各种场景和需求。
- Windows System Resource Manager:这是一个 Windows Server 内置的资源管理工具,可以帮助您限制进程或用户的 CPU 和内存使用率,以及控制任务优先级和资源分配等。该工具需要在 Windows Server 上进行安装和配置,适用于对系统资源使用有严格要求的场景。
- Process Hacker:它是一款免费的进程管理工具,可以帮助您查看和控制进程、限制 CPU 和内存使用率、监控系统性能等。该工具具有可扩展的插件体系和强大的调试功能,适用于高级用户和开发人员。
请注意,这些工具可能会对系统性能产生一定影响,因此请谨慎选择并了解所做更改的影响。
总结
1、常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | -- 杀进程 tasklist | find "chrome.exe" taskkill /F /T /IM chrome.exe taskkill /PID 6248 /F -- 远程操作 taskkill /F /T /IM chrome.exe /s 172.17.0.8 /u administrator /p lhr tasklist /s 172.17.0.86 /u administrator /p lhr -- 注销用户 shutdown /L query session logoff 2 -- 重启操作系统 shutdown /r /t 0 -- 其中,/r 参数表示重启计算机,/t 参数表示指定延迟关闭计算机的时间(以秒为单位),0 表示立即关闭计算机。 -- 任务管理器打开命令 taskmgr |
2、要对内存或CPU占用排序,只能使用任务管理器操作,或tasklist导出到文件中,然后通过Linux的sort排序。
1 2 3 | tasklist /NH > c:\a.txt 上传c:\a.txt到Linux中 sort -r -nk 5 a.txt | head -n 10 |
3、限制CPU或内存,可以使用软件Process Lasso来完成。
参考
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/taskkill
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/tasklist