原创作品首发51CTO博客,转载请注明出处:[url]http://babyxc.blog.51cto.com/[/url]
 
I’m back!再不更新blog就要挨骂了。今天给大家带来点新知识,Microsoft windows powershell!(后面的都简称Ps)什么是ps?它能给我们带来什么? Windows PowerShell 是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境两者既可以独立使用也可以组合使用。
 
与接受和返回文本的大多数外壳程序不同Windows PowerShell 是在 NET 公共语言运行时 (CLR) NET Framework 的基础上构建的它接受和返回 NET 对象。环境中的这一根本更改带来了管理和配置 Windows 的全新工具和方法。
 
Windows PowerShell 引入了 cmdlet读作command-let”)的概念这是内置到外壳程序中的一个简单的单一功能命令行工具。可以分别使用每个 cmdlet,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。Windows PowerShell 包括一百多个基本的核心 cmdlet,您可以编写自己的 cmdlet 并与其他用户共享它们。(原创作品首发51CTO博客,转载请注明出处:[url]http://babyxc.blog.51cto.com/[/url]
 
与许多外壳程序一样Windows PowerShell 为您提供了对计算机上文件系统的访问。此外使用 Windows PowerShell 提供程序还可以访问其他数据存储区如注册表和数字签名证书存储区,与访问文件系统一样容易。 Windows PowerShell 有很大不同 
·      Windows PowerShell 不处理文本。相反它基于 NET 平台处理对象。 
·      Windows PowerShell 附带了具有一致界面的大量内置命令。
·      所有的外壳程序命令都使用同一命令分析程序,而不是每个工具使用不同的分析程序。这样便可更轻松地学习如何使用每个命令。
其最好的优点在于,您不必忍痛舍弃自己惯用的工具。仍可以在 Windows PowerShell 中使用传统的 Windows 工具,如 NetSC Regexe
cmdlet读作command-let”) Windows PowerShell 中用于操作对象的单功能命令。可以通过其名称格式识别 cmdlet -- 由短划线 (-) 分隔的动词和名词,如 Get-HelpGet-Process Start-Service
在传统的外壳程序中,命令是从非常简单(如 attribexe)到非常复杂(如 netshexe)的可执行程序。 (原创作品首发51CTO博客,转载请注明出处:[url]http://babyxc.blog.51cto.com/[/url]
 
Windows PowerShell 大多数 cmdlet 都非常简单它们设计为与其他 cmdlet 组合使用。例如,“getcmdlet 仅检索数据,“setcmdlet 仅建立或更改数据,“formatcmdlet 仅设置数据格式,“outcmdlet 仅将输出定向到指定的目标。看了一些最基本的概念性问题,我们现在开始动动手。ps: PowerShell is designed to run on all recent versions of Windows including those based on x64 processors The only prerequisite for installing PowerShell is that you must first install v20 of the Microsoft NET Framework Note that PowerShell will preinstall in certain situations For example, PowerShell is part of the Exchange Server 2007 administrative tools。这是运行ps的需求!(原创作品首发51CTO博客,转载请注明出处:[url]http://babyxc.blog.51cto.com/[/url]
 
Ps的启动有3种方式。 若要从开始菜单启动 Windows PowerShell请依次单击开始所有程序Windows PowerShell 10 Windows PowerShell
 
若要从“运行”框启动 Windows PowerShell,请单击“开始”,再单击“运行”,然后键入:
powershell
 
若要从命令提示符 (cmdexe) 窗口启动 Windows PowerShell请在命令提示符下键入
powershell
 
若要查看用于启动 Windows PowerShell 的选项请在命令提示符窗口中键入
powershell -
 
Windows PowerShell 打开时可以使用 Get-Help cmdlet 查找帮助。在 Windows PowerShell 命令提示符下,键入:
get-help
我用的是第一种方式:
 
这就是ps的工作界面看起来如何。貌似跟cmdexe的界面差不多首先我们看看ps里面有多少cmdlet!很简单。get-command
 
看的眼睛都花了。下面我们将介绍如何用ps执行管理任务。先从进程说起吧。 核心进程 cmdlet 只有两个Get-Process Stop-Process。由于有可能使用参数或对象 cmdlet 来检查和筛选进程,因此可以只使用这两个 cmdlet 来执行一些复杂的任务。
也是平时用的最多的。get-process是管理进程的cmdlet。如下图:
 
通过无参数运行 Get-Process,可以获得正在本地系统中运行的所有进程的列表。
通过使用 Id或者name 参数,还可以返回单个进程。看图
 
这是本机运行的qq程序。如果要停止的话,就需要用到Stop-Process cmdlet 采用 Name ID 来指定希望停止的进程。是否能够停止进程取决于您的权限。某些进程不能停止。看图!
 
可以用 Confirm 参数强制进行提示。
 
 
是不是很简单啊觉得用ps管理进程真的很简单我觉得比我以前用的wmic都简单些。这只是些最常见的操作。。看复杂一点的——
通过使用某些对象筛选 cmdlet可以进行复杂的进程操作。由于进程对象有 Responding 属性,当进程不再响应时该属性将为 True,因此可以用以下命令停止所有无响应的应用程序:
Get-Process | Where-Object -FilterScript {$_Responding -eq $false} | Stop-Process
 
您可以在其他情况下使用相同的方法。例如假设用户启动一个应用程序时另一个辅助的系统任务栏应用程序自动运行。您可能发现这在终端服务会话中无法正确工作,但仍然需要使它在物理计算机控制台上的会话中持续运行。连接到物理计算机桌面的会话的会话 ID 始终是 0,因此通过使用 Where-Object 和进程的 SessionId,可以停止在其他会话中的所有进程实例:
Get-Process -Name BadApp | Where-Object -FilterScript {$_SessionId -neq 0} | Stop-Process
 
可能偶尔需要能够停止除了当前会话以外所有正在运行的 Windows PowerShell 会话。如果会话正在使用太多资源,或者不可访问(它可能正在远程运行,或者在另一个桌面会话中),则可能无法直接停止它。但是,如果试图停止所有正在运行的会话,则可能终止当前会话。
每个 Windows PowerShell 会话都有环境变量 PID其中包含 Windows PowerShell 进程的 ID。可以对照每个会话的 ID 检查该 $PID并只终止有不同 ID Windows PowerShell 会话。以下管道命令执行此操作,并返回被终止会话的列表(由于使用了 PassThru 参数):
PS> Get-Process -Name powershell | Where-Object -FilterScript {$_Id -ne $PID} | Stop-Process -
PassThru
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
334       9    23348      29136   143     103    388 powershell
304       9    23152      29040   143     103    632 powershell
302       9    20916      26804   143     103   1116 powershell
335       9    25656      31412   143     109   3452 powershell
303       9    23156      29044   143     105   3608 powershell
287       9    21044      26928   143     102   3672 powershell
上面这些是ps自带的文档里面的说明,有兴趣的可以试试。下次我们继续ps之旅。。菜菜水平很低,写这些呢,目的也是为和大家交流,在平时用电脑用的一些技巧。还望高人多多指点。。QQ:182188803See you!
原创作品首发51CTO博客,转载请注明出处:[url]http://babyxc.blog.51cto.com/[/url]