通过提供一百多种系统管理实用工具、一致的语法、及对普通管理数据更好地导航(如登记或 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(免费)
Windows PowerShell 微软官方解释
2020-05-24 11:34脚本之家 PowerShell
Windows PowerShell 是一种新的、交互式的命令行和基于任务脚本编写技术,它针对系统管理任务提供全面的控制和自动操作。
延伸 · 阅读
- 2021-12-28在Windows 10/11中打开PowerShell的八种方法
- 2021-12-15Windows 11将从明年起将终端作为默认命令行工具:
- 2021-11-23使用 Powershell 来自动化 Linux、macOS 以及 Windows 流
- 2021-11-09如何使用PS2EXE将PowerShell脚本编译为可执行程序
- 2021-03-28如何在powershell添加vim实现代码示例
- 2021-02-22在Windows10中禁用PowerShell,保护电脑安全
- PowerShell
PowerShell中定义多个变量并赋值的例子
这篇文章主要介绍了PowerShell中定义多个变量并赋值的例子,即一次性定义多个变量,这在其它的编程语言中也是常见的写法,需要的朋友可以参考下...
- PowerShell
使用HTTP api简单的远程执行PowerShell脚本
为了你能非常简单的远程执行PoweShell脚本,使用REST API是一个很好的选择,因为现在许多流行的编程语言都可以简单的执行HTTP的GET操作。...
- PowerShell
PowerShell中以管理员权限启动应用程序的方法
这篇文章主要介绍了PowerShell中以管理员权限启动应用程序的方法,方法很简单,本文给出启动词本和powershell为例讲解如何用管理员身份启动软件,需要的朋友...
- PowerShell
PowerShell用户认证Function实例代码
这篇文章主要介绍了PowerShell用户认证Function的资料,并附实例代码,帮助大家学习理解,有需要的小伙伴可以参考下...
- PowerShell
PowerShell管理Windows server 2008 r2
在Windows Serve 2008 R2中,一个重要改进就是PowerShell版本升级为2.0。Win 2008 R2包括一系列新的服务器管理界面,这些均建立在PowerShell 2.0之上。它新增了240个c...
- PowerShell
PowerShell使用Remove-Item命令删除文件、注册表项介绍
这篇文章主要介绍了PowerShell使用Remove-Item命令删除文件、注册表项介绍,另外Remove-Item的别名也有很多,需要的朋友可以参考下 ...
- PowerShell
PowerShell单行注释、多行注释、块注释的方法
这篇文章主要介绍了PowerShell单行注释、多行注释、块注释的方法,即PowerShell注释语法讲解,需要的朋友可以参考下 ...
- PowerShell
探索PowerShell(十) 循环语句介绍
本节所要讨论的内容的实质更多的偏向于程序设计方面,所以在此不做过多详细讲解,只针对PowerShell中的应用进行具体讲解 ...