office

位置:IT落伍者 >> office >> 浏览文章

如何用PowerShell获取进程信息


发布日期:2020年07月11日
 
如何用PowerShell获取进程信息
在脚本学校(Scripting School)专栏的前面内容里我们讨论了如何收集用户输入为其分配变量并将变量记录到帮助文档里这次我们将要解释如何检索电脑中进程的基本信息如何使用Windows PowerShell结束你不想要的进程

检索进程信息

Windows PowerShell中的getprocess cmdlet可以帮助你检索电脑中的进程信息不带任何参数地运行这个命令你可以获得如下所示的输出

Handles

NPM(K)

PM(K)

WS(K)

VM(M)

CPU(s)

ID ProcessName

XConfig

alg

atievxx

atievxx

csrss

ctfmon

如果你不确定NPMWSVM这些缩写分别代表什么可以借助下面的表格

资源名称

缩写

描述

Handles

进程的智能指针编号对内存的存储区域开放当句柄(handles)关闭时内存被释放

Nonpaged pool (in kilobytes)

NPM(nonpaged memory)

非分页池是从不分页到硬盘的存储器因此访问速度更快

Paged pool (in kilobytes)

PM(paged memory)

如果有空间需求分页池有可能发送给磁盘这使得分页池比非分页池更大(因为存储器空间仅受磁盘上的页面文件限制)一些内存读取操作可能耗时更长因为需要的的数据存储在硬盘上

Working set (in kilobytes)

WS

工作集是指一个进程占用物理内存的页面集只有存储在物理内存(当前没有分页到磁盘)的数据才在工作集中

Virtual memory (in megabytes)

VM

只用于进程的虚拟内存数量

CPU time (in seconds)

CPU (s)

进程占用的处理器时间(包括所有可用的处理器)

Process ID

给定进程的唯一标识符即使在一台共享式电脑上每个进程都只有一个唯一的进程ID

Process name

进程的易记标识但不同于进程ID它不一定是唯一的注意你还会接触到很多其它进程属性要想查看它们的属性名称键入getprocess | getmember即可基本列表对我们今天的目的来说已经足够了但是如果你要操作这些进程属性就需要查看完整的列表

如何检索最高负载的进程

你不一定需要所有进程的列表但你有必要大致了解哪些进程占用了大部分的资源举例来说一个进程的工作集(如上面的表格所描述)可以很好地指示其系统内存压力的情况为了找出工作集大于MB的所有进程输入下面的命令

getprocess | whereobject {$_WorkingSet gt }

记住美元符号代表变量现在我们来看这些进程的名称工作集属性及其工作集是否是大于(上面命令中的gt) 给定值的

这个命令会找到每个进程并把结果发送给whereobject cmdlet做评价然后你就会收到跟完全列表格式一模一样的一个列表但这个列表要短得多

结束不必要的进程

如果你管理自己的电脑很容易获取一些无用进程比如有一天你在机场想联机最后可能在电脑里留下Boingo客户端进程你下载过某一个系统审核软件的试用版本吗?即使你有几个月都没有使用过它进程列表仍可能包含系统审核代理

当然任务管理器也可以为你显示进程但getprocess更容易查看数据比如你可以不使用滚动条查看一个完整列表你需要应付这些垃圾进程但同时你也可以结束它们(在终止一个进程前你应该确定知道自己在干什么如果你并不确定哪个进程是干什么用的不要贸然结束它)

要结束一个进程先从整个列表或最消耗资源的前十个进程中检索出它们的识别信息然后运行stopprocess命令如果不带任何参数运行该命令它会提示你输入进程ID号(仅仅输入进程名称是无法结束进程的)你可以根据自己意愿结束多个进程完成后按Enter键就会退出cmdlet

你也可以使用–name parameterstopprocess –name processname等命令通过名称来停止进程然而我并不推荐这样做你应该养成用进程ID结束进程的习惯尽管记住进程ID比记住进程名称困难但这对防止结束共享电脑上其他人的进程有帮助

上一篇:WindowsPowerShell不一样的系统管理体验

下一篇:WindowsVista系统下如何取消office正版增值计划