PowerShell:输出彩色进程信息表单

原创 2007年09月22日 00:26:00

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。

By:Anders      Mail:katrina520@163.com       

先简略地讲述下脚本运行的大致过程:一开始先以列表的形式输出进程的信息,然后筛选出Handles,ProcessName列表栏下的信息,最后借用一个Cmdlet输出一个彩色的信息表单(表单的颜色标明是以Handles到了一定数量以后来显示的)。如果Handles值为5**的数值就用红色标明,Handles值为6**的数值就用绿色标明出来。

运行结果基本如下:

脚本内容如下:

Get-Process | Select-Object Handles,ProcessName| Sort-Object Handles | Where-Object -FilterScript {$_.Handles -ge 300} | ConvertTo-Html -Title "This is a Process Table" -Body "<H3>This is a Process Table</H3>" | ForEach {$_ -replace "<tr>","<tr bgcolor=cyan>"} | Foreach {if($_ -like "*<td>5??</td>*") {$_ -replace "<tr bgcolor=cyan>","<tr bgcolor=red>"} elseif ($_ -like "*<td>6??</td>*") {$_ -replace "<tr bgcolor=cyan>","<tr bgcolor=green>"} else {$_}}  > D:/ps.htm

Invoke-Item D:/ps.htm

分解(1):

Get-Process | Select-Object Handles,ProcessName| Sort-Object Handles | Where-Object -FilterScript {$_.Handles -ge 300} 

这行脚本是使用了Get-Process列出本地计算机的进程的信息列表,然后使用Select-Object来选择要列出的Handles,ProcessName列表栏目。之后使用Sort-Object 和 Where-Object进行排序和筛选。

在PowerShell的环境下运行结果如下图(看起来十分简洁,一点没错!):

 

分解(2):

ConvertTo-Html -Title "This is a Process Table" -Body "<H3>This is a Process Table</H3>" | ForEach {$_ -replace "<tr>","<tr bgcolor=cyan>"} | Foreach {if($_ -like "*<td>5??</td>*") {$_ -replace "<tr bgcolor=cyan>","<tr bgcolor=red>"} elseif ($_ -like "*<td>6??</td>*") {$_ -replace "<tr bgcolor=cyan>","<tr bgcolor=green>"} else {$_}}  > D:/ps.htm

(增加颜色标明):

这里我们要提到的是,使用了一个cmdlet,它就是ConvertTo-Html。这个cmdlet的主要功能是可以用来创建显示一个或一组对象的HTML页面。之后我们编写一些基本的控制语句来判断Handles数值的大小,到了一定数值后就用特定的颜色来以此标明。

最后在添加一个Invoke-Item cmdlet C:/ps.htm 让脚本在输出表单后自动打开表单^_^

关于ConvertTo-Html的补充:

名称
    ConvertTo-Html

摘要
    创建显示一个或一组对象的 HTML 页。


语法
    ConvertTo-Html [[-property] 
<Object[]>] [-inputObject <psobject>] [-body <string[]>] [-head <string[]>] [-title <string>] [<CommonParameters>]

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

PowerShell中的同步命令运行及信息输出

在PowerShell中有时候当我们运行一个命令的时候,在控制台上都会直接输出他结果信息,当我们想要把输出信息保存到一个文件的时候我们一般都会直接用管道传递给另一个输出命令将信息保存进一个文本文件里。...
  • itanders
  • itanders
  • 2016年05月17日 10:36
  • 1602

[Powershell]导出域内主机信息

在域控制器上启动Active Directory Module for Windows PowerShell 执行如下命令获取主机信息。导出域内主机全部信息Get-ADComputer -Filter...
  • Dearggae
  • Dearggae
  • 2017年04月06日 15:07
  • 855

PowerShell由进程名获取PID

利用管道 赋值给$id $id  = Get-Process -name explorer* | Select-Object id | ForEach-Object -Process{$_.id} ...
  • aoebug
  • aoebug
  • 2016年09月02日 16:49
  • 562

[原创][PowerShell教程][06]PowerShell中格式化命令和输出命令

好久不见, 我又食言了, 一直没有更新教程, 我也不想找借口, 因为我花了很多时间跑去玩大蛇无双和魔王再临. 今天, 我将为您介绍如何使用格式化和输出命令. 在PowerShell中,负责进行格式化和...
  • PowerShell
  • PowerShell
  • 2008年05月31日 23:14
  • 3205

学习windows powershell(基本信息获得和显示)

一、get-help这个命令我想肯定是初学者最常用的,当然老手也得常用,我基本上不相信有人能把所有参数都能记下来的,如果真能全部记下来,我真的是五体投地了,这人超强。任何命令有任何疑问都不要忘了使用这...
  • zheninchangjiang
  • zheninchangjiang
  • 2008年08月30日 13:54
  • 3112

PowerShell 2.0 实践(四)管理Windows进程

上一次我们对Windows服务进行了简单的管理,学习了获取本地及远程计算机上服务的方法,以及查找特定服务,开始、结束、暂停、恢复服务等操作。本次我们来关注一下Windows管理中另一个核心内容:进程管...
  • lovenjoy
  • lovenjoy
  • 2011年10月06日 10:01
  • 2720

学习windows powershell(进程和服务)

在日常使用过程中,进程和服务的管理用得非常多,当然日志也是常用的,不过日志是要用system.diagnostics.eventlog对象来完成的,cmdlets并没有直接支持的命令.一、进程管理PS...
  • zheninchangjiang
  • zheninchangjiang
  • 2008年09月02日 07:43
  • 1554

PowerShell 读写Unicode文件

Powershell读写文本文件非常简单,利用Get-Content和Add-Content可以很方便的读取和写入文本文件。 下面代码演示了unicode文本文件的读取,并将感兴趣的结果写入文件中。...
  • fandongguang0702
  • fandongguang0702
  • 2017年06月08日 20:56
  • 453

powershell 杀掉子进程

powershell 执行  taskkill /f /pid  1223 /t 即可
  • qdujunjie
  • qdujunjie
  • 2013年12月05日 09:59
  • 1666

在PowerShell中等待进程退出

http://thepowershellguy.com/blogs/posh/archive/2007/01/16/powershell-the-admin-development-model.asp...
  • PowerShell
  • PowerShell
  • 2008年05月23日 22:12
  • 1563
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PowerShell:输出彩色进程信息表单
举报原因:
原因补充:

(最多只允许输入30个字)