Chinaunix首页 | 论坛 | 博客
  • 博客访问: 637776
  • 博文数量: 233
  • 博客积分: 2221
  • 博客等级: 大尉
  • 技术积分: 3184
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-16 14:01
个人简介

瓜瓜派的瓜瓜

文章分类

全部博文(233)

文章存档

2013年(28)

2012年(197)

2011年(8)

分类: IT业界

2012-01-09 16:36:55



PowerShell是微软公司于2006年第四季度正式发布的. 它的出现标志着, 微软公司向服务器领域迈出了重要的一步,拉近了与Unix, Linux等操作系统的距离. PowerShell的前身命名为Monad,在2006年4月25日正式发布beta版时更名为PowerShell。     
      PowerShell是一款基于对象的shell, 建立在.Net框架之上, 目前支持.Net Framework 2.0.能够运行在Windows XP SP2, Windows Vista, Windows 2003操作系统上. 能够同时支持WMI, COM,ADO.NET, ADSI等已有的Windows管理模型. 
根据微软公司的计划,2009年将会实现所有微软公司的GUI管理工具通过PowerShell作为中间层对服务程序进行管理, 现阶段例如Exchange2007等已经支持PowerShell的管理. 可以预期, 使用PowerShell管理Windows服务器指日可待. 
PowerShell这项全新的技术提供了丰富的控制与自动化的系统管理能力;而“脚本语言”(scriptinglanguages)则是用来编写程序的计算机语言。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让写程序的人(开发者)快速完成程序的编写工作。 
Windows PowerShell 是微软公司为 Windows 环境所开发的壳程式(shell)及脚本语言技术,采用的是命令行界面。这项全新的技术提供了丰富的控制与自动化的系统管理能力。     
之前的专桉代号是 Monad,程式另一个名称叫 Microsoft Shell(MSH)。  
     
  起源与目的  
   
UNIX 系统一直有着功能强大的脚本(shell),Windows PowerShell 的诞生就是要提供功能相当于 UNIX 系统 BASH 的命令列壳程式,同时也内建脚本语言以及辅助脚本程式的工具。     
  程序特性  
  
一致性的设计让所有工具和系统资料的使用语法、命名原则都相同。    
脚本语言简单易学,而且能支援现有的脚本程式和命令列工具。     
内含129种称为 cmdlet 的标准工具,可用来处理常见的系统管理工作。     
具备完整的扩充功能,独立软体商或开发者都能很容易的自行扩充。     
cmdlet是 Windows PowerShell 的指令,发音念法为 command-let。这相当于 DOS或其他壳程式的内建指令,指令名称的格式都是以连字号(-)隔开的一对动词和名词,并且通常都是单数名词;例如线上查询说明的 cmdlet 指令为get-help,名称的动词部分大致有 get、set、add、remove 等等(字母都不分大小写)。 
  技术基础  
   
WindowsPowerShell 是以 .NET Framework 技术为基础,并且与现有的 WSH 保持回溯相容,因此它的脚本程式不仅能存取 .NETCLR,也能使用现有的 COM技术。同时也包含了数种系统管理工具、简易且一致的语法,提升管理者处理,常见如登录资料库、WMI。Exchange Server 2007 以及System Center Operations Manager 2007 等伺服器软体都将内建 Windows PowerShell。 
  PowerSHell上手  
  
相对于传统的命令行工具,PowerShell对很多用户来说都会显得非常陌生。究竟PowerShell支持哪些命令呢?其实PowerShell可以管理系统进程,服务,注册表,系统日志甚至证书等多项内容。想知道它支持哪些命令,只需要在窗口内输入get-command并按下回画就可以了,这时屏幕上会显示所有PowerShell支持的命令。 
此处除了可以显示命令的类型外,还会显示名称和描述。想查看某个命令的详细用法就可以使用get-help命令来获得帮助,比如要查看add-content命令的详细内容,就可以输入get-helpadd-content,按下回车后就会显示命令的名称,摘要,语法,详细说明,相关链接以及备注。要想更深入了解powerShell就要经常获取帮助哦。PowerShell应用 
PowerShell可以方便地查看和结束系统内的进程,这样不仅可以监控系统内的可疑进程,还可以轻松地将其关闭。要想查看当前系统内的进程,就需要打开PowerShell,输入get-process后按下回车,这样系统中进程的句柄,进程名,进程占用处理器时间和进程唯一标识符就会显示出来。 
如果要结束某个或多个进程,就需要记录下进程的唯一标识符,在powerShell中输入Stop-process后根据提示输入一个或多个进程的ID,按下回车后进程即可被自动结束。     
用别外快速启动程序     
对于某些常用的命令,powershell还支持将其设置为别名使用。比如需要给get-process设置别外,就可以在powershell中输入set-alias gpget-process,其中gp为命令get-process的别外。按下回车后直接用gp就可以代替get-process命令了。 
同理很多系统内建的工具也可以在powershell中设置别名了,比如在powershell中输入notepad后就可以启动记事本。要想更快地启动记事本,就可以为其设置别名,输入set-alias np notepad后按下回车,这样再次输入np就可以打开记事本了。 
[1]PowerShell还有着管理系统服务,操作注册表和众多的网络相关操作。     
范例     
停止所有目前执行中的以"p"字元开头命名的程式:     
PS> get-process p* | stop-process     
停止所有目前执行中的所有使用大于1000MB内存的程式:     
PS> get-process | where { $_.WS -gt 1000MB } | stop-process     
计算一个目录下档桉内的位元组大小:     
PS> get-childitem | measure-object -property length -sum     
等待一个叫做"notepad"的程式执行结束:     
PS> $processToWatch = get-process notepad     
PS> $processToWatch.WaitForExit()     
将"hello, world!"字串转为英文大写字元,成为"HELLO, WORLD!":     
PS> "hello, world!".ToUpper()     
在字串"string"的第1个字元后插入字串"ABC",成为"sABCtring":     
PS> "string".Insert(1, "ABC")     
订阅一个指定的RSS Feed并显示它最近8个主题:     
PS> $rssUrl = " "     
PS> $blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl)     
PS> $blog.rss.channel.item | select title -first 8     
把"$UserProfile"设定成数值"UserProfile"的环境变数:     
PS> $UserProfile = $env:UserProfile     
最新版本     
目前的版本为 Windows PowerShell V2(CTP3)     
常用开发工具     
powershell plus 版本 3.0.1.0   参考资料  
   
PowerShell中文技术交流社区     
PowerShell中文技术交流社区  
扩展阅读:     
1.PowerShell中文技术交流社区:     
2.powershell中文网      
3.PowerShell在Exchange中应用:     
4.PowerShell技术教程:
阅读(644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~