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等等(字母都不分大小写)。
[编辑]技术基础
Windows PowerShell是以.NET Framework技术为基础,并且与现有的WSH保持向后兼容,因此它的脚本程序不仅能访问.NET CLR,也能使用现有的COM技术。同时也包含了数种系统管理工具、简易且一致的语法,提升管理者处理,常见如登录数据库、WMI。Exchange Server 2007以及System Center Operations Manager 2007等服务器软件都将自带Windows 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://blogs.msdn.com/powershell/rss.aspx" 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