揭开系统任务/进程背后的秘密
软件世界
利用Win2000/XP下的任务管理器(按“Ctrl+Alt+Del”组合键,选择“任务管理器”),我们可以获取完整的任务/进程列表,而且可以通过定制视图的方式获取更多的进程信息。遗憾的是,如果我们想了解为什么有些系统服务的资源占用率要明显高于其他系统服务,究竟“哪些人”在使用这项系统服务?任务管理器就无能为力了。
这时候,我们不得不选择其他的途径。在WinXP环境下,我们可以使用一个新增的命令行工具tasklist.exe来实现上面的任务。Tasklist是一个用来显示运行在本地或远程计算机上的所有任务/进程的命令行工具,带有多个执行参数,这里我们主要介绍其中两个主要的参数“/svc”和“/m”。
参数“/svc”主要用来显示某项系统服务的详细使用情况,使用的命令形式如下:
tasklist.exe /svc
执行后会以表格的形式显示出每个系统服务的实际使用情况。在笔者的机器上,“SVCHOST.EXE”这个系统进程占用了13MB的内存,运行Tasklist后才发现,原来有十数项服务在使用这个进程。
另一个参数“/m”的作用是显示使用了某个DLL动态库文件的所有任务/进程,如果在参数后面没有指定具体的DLL动态库文件名,则显示当前状态下所有任务/进程加载的动态库信息。
例如:我们希望了解哪些任务/进程使用了“shell32.dll”动态库,则输入以下命令:
tasklist /m shell32.dll
如果要获取完整的DLL动态库使用情况,输入“tasklist /m”即可。
在Win2000中,要使用该命令,可运行安装光盘上“Support→Tools”目录下的Setup程序,安装程序会在“C:\Program Files\Support Tools”目录下安装一个名为tlist.exe的命令行工具。安装好后启动命令行窗口,输入“tlist /s”或“tlist /m”即可执行和WinXP下tasklist相对应的任务了。