Windows PowerShell 微软官方解释
作者:
Windows PowerShell 是一种新的、交互式的命令行和基于任务脚本编写技术,它针对系统管理任务提供全面的控制和自动操作。
通过提供一百多种系统管理实用工具、一致的语法、及对普通管理数据更好地导航(如登记或 Windows Management Instrumentation (WMI)),Windows PowerShell 使 Windows 管理员提高了生产力。Windows PowerShell 还包括全面启动 Windows 系统自动化管理任务的脚本编写语言。Windows PowerShell 语言是直观的,并支持贵企业现有的脚本和命令行工具投入。Exchange Server 2007 和 System Center Operations Manager 2007 将利用 Windows PowerShell,提供改进的命令行自动操作。
PowerShell是一款基于对象的shell, 建立在.Net框架之上, 目前支持.Net Framework 2.0. 能够运行在Windows XP SP2, Windows Vista, Windows 7,Windows 2003操作系统上. 能够同时支持WMI, COM, ADO.NET, ADSI等已有的Windows管理模型. 根据微软公司的计划, 2009年将会实现所有微软公司的GUI管理工具通过PowerShell作为中间层对服务程序进行管理, 现阶段例如Exchange 2007等已经支持PowerShell的管理. 可以预期, 使用PowerShell管理Windows服务器指日可待. 目前PowerShell Version 2.0 已经研发成功并广泛应用于新系统Windows Vista。 这项全新的技术提供了丰富的控制与自动化的系统管理能力;而“脚本语言”(scripting languages)则是用来编写程序的计算机语言。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让写程序的人(开发者)快速完成程序的编写工作。 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。
编辑本段PowerShell上手
具体步骤
在“运行“中输入”PowerShell“命令或是直接在传统的命令行模式中输入“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
常用开发工具
powershell plus(收费) Windows Powershell ISE(V2自带) PowerGUI(免费)
PowerShell是一款基于对象的shell, 建立在.Net框架之上, 目前支持.Net Framework 2.0. 能够运行在Windows XP SP2, Windows Vista, Windows 7,Windows 2003操作系统上. 能够同时支持WMI, COM, ADO.NET, ADSI等已有的Windows管理模型. 根据微软公司的计划, 2009年将会实现所有微软公司的GUI管理工具通过PowerShell作为中间层对服务程序进行管理, 现阶段例如Exchange 2007等已经支持PowerShell的管理. 可以预期, 使用PowerShell管理Windows服务器指日可待. 目前PowerShell Version 2.0 已经研发成功并广泛应用于新系统Windows Vista。 这项全新的技术提供了丰富的控制与自动化的系统管理能力;而“脚本语言”(scripting languages)则是用来编写程序的计算机语言。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让写程序的人(开发者)快速完成程序的编写工作。 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。
编辑本段PowerShell上手
具体步骤
在“运行“中输入”PowerShell“命令或是直接在传统的命令行模式中输入“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
常用开发工具
powershell plus(收费) Windows Powershell ISE(V2自带) PowerGUI(免费)