设为首页 收藏本站
查看: 1096|回复: 0

.net笔记3:关于PowerShell

[复制链接]

尚未签到

发表于 2017-5-19 13:30:10 | 显示全部楼层 |阅读模式
  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作为中间层对服务程序进行管理, 现阶段例如Exchange 2007等已经支持PowerShell的管理. 可以预期, 使用PowerShell管理Windows服务器指日可待.     
PowerShell这项全新的技术提供了丰富的控制与自动化的系统管理能力;而“脚本语言”(scripting languages)则是用来编写程序的计算机语言。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让写程序的人(开发者)快速完成程序的编写工作。     
Windows PowerShell 是微软公司为 Windows 环境所开发的壳程式(shell)及脚本语言技术,采用的是命令行界面。这项全新的技术提供了丰富的控制与自动化的系统管理能力。     
之前的专桉代号是 Monad,程式另一个名称叫 Microsoft Shell(MSH)。
DSC0000.jpg

  起源与目的
  
UNIX 系统一直有着功能强大的脚本(shell),Windows PowerShell 的诞生就是要提供功能相当于 UNIX 系统 BASH 的命令列壳程式,同时也内建脚本语言以及辅助脚本程式的工具。     

  程序特性
  
  一致性的设计让所有工具和系统资料的使用语法、命名原则都相同。   
脚本语言简单易学,而且能支援现有的脚本程式和命令列工具。     
内含129种称为 cmdlet 的标准工具,可用来处理常见的系统管理工作。     
具备完整的扩充功能,独立软体商或开发者都能很容易的自行扩充。     
cmdlet 是 Windows PowerShell 的指令,发音念法为 command-let。这相当于 DOS 或其他壳程式的内建指令,指令名称的格式都是以连字号(-)隔开的一对动词和名词,并且通常都是单数名词;例如线上查询说明的 cmdlet 指令为 get-help,名称的动词部分大致有 get、set、add、remove 等等(字母都不分大小写)。     

  技术基础
  
Windows PowerShell 是以 .NET Framework 技术为基础,并且与现有的 WSH 保持回溯相容,因此它的脚本程式不仅能存取 .NET CLR,也能使用现有的 COM 技术。同时也包含了数种系统管理工具、简易且一致的语法,提升管理者处理,常见如登录资料库、WMI。Exchange Server 2007 以及 System Center Operations Manager 2007 等伺服器软体都将内建 Windows PowerShell。     

  PowerSHell上手
  
  相对于传统的命令行工具,PowerShell对很多用户来说都会显得非常陌生。究竟PowerShell支持哪些命令呢?其实PowerShell可以管理系统进程,服务,注册表,系统日志甚至证书等多项内容。想知道它支持哪些命令,只需要在窗口内输入get-command并按下回画就可以了,这时屏幕上会显示所有PowerShell支持的命令。   
此处除了可以显示命令的类型外,还会显示名称和描述。想查看某个命令的详细用法就可以使用get-help命令来获得帮助,比如要查看add-content命令的详细内容,就可以输入get-help add-content,按下回车后就会显示命令的名称,摘要,语法,详细说明,相关链接以及备注。要想更深入了解powerShell就要经常获取帮助哦。PowerShell应用     
PowerShell可以方便地查看和结束系统内的进程,这样不仅可以监控系统内的可疑进程,还可以轻松地将其关闭。要想查看当前系统内的进程,就需要打开PowerShell,输入 get-process后按下回车,这样系统中进程的句柄,进程名,进程占用处理器时间和进程唯一标识符就会显示出来。     
如果要结束某个或多个进程,就需要记录下进程的唯一标识符,在powerShell中输入Stop-process后根据提示输入一个或多个进程的ID,按下回车后进程即可被自动结束。     
用别外快速启动程序     
对于某些常用的命令,powershell还支持将其设置为别名使用。比如需要给get-process设置别外,就可以在powershell中输入set-alias gp get-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 = "http://www.cnpowershell.net "     
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中文技术交流社区:http://www.cnpowershell.com/     
2.powershell中文网 http://www.cnpowershell.net     
3.PowerShell在Exchange中应用:http://www.Exchangecn.com     
4.PowerShell技术教程:http://www.hellocto.com/wz/list.aspx?cid=84

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379138-1-1.html 上篇帖子: 正则表达式 linux shell 删除偶数奇数行 取得最后一个字符 s/\(^.*$\)\n^.*$/\1/g 下篇帖子: powershell notes II
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表