昨天远程服务器后,服务器无故卡住了,鼠标各种延迟与无反应,想在进程管理器里关闭程序也卡住,想点击重启系统也卡死无反应。纠结后win+R打开了cmd用shutdown重启才算搞定。重启期间思考了下,如何用cmd命令来管理系统进程,搜索后得到用tasklist与taskkill十分方便,记录如下:
cmd命令输入 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 显示每个进程中主持的服务。 /V 显示详述任务信息。 /FI filter 显示一系列符合筛选器指定的标准的任务。 /FO format 指定输出格式。 有效值: "TABLE"、"LIST"、"CSV"。 /NH 指定列标题不应该在输出中显示。 只对 "TABLE" 和 "CSV" 格式有效。 /? 显示帮助消息。 筛选器: 筛选器名 有效操作符 有效值 ----------- --------------- -------------------------- 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 会话编号 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 用户名,格式为 [domain]user SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 MODULES eq, ne DLL 名称 说明: 当查询远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 示例: TASKLIST TASKLIST /M TASKLIST /V /FO CSV TASKLIST /SVC /FO LIST TASKLIST /M wbem* TASKLIST /S system /FO LIST TASKLIST /S system /U domainusername /FO CSV /NH TASKLIST /S system /U username /P password /FO TABLE /NH TASKLIST /FI "USERNAME ne NT AUTHORITYSYSTEM" /FI "STATUS eq running"
输入 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 AUTHORITYSYSTEM" /IM notepad.exe TASKKILL /S system /U domainusername /FI "USERNAME ne NT*" /IM * TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
还可以用tskill命令 但win7下无效, 2012r2上得到的帮助信息如下
结束进程。 TSKILL processid | processname [/SERVER:servername] [/ID:sessionid | /A] [/V] processid 要结束的进程的 Process ID。 processname 要结束的进程名称。 /SERVER:servername 含有 processID 的服务器(默认值是当前值)。 使用进程名和 /SERVER 时,必须指定 /ID 或 /A /ID:sessionid 结束在指定会话下运行的进程。 /A 结束在所有会话下运行的进程。 /V 显示正在执行的操作的信息。