我在 Windows 7 中经常使用 PowerShell。我的所有脚本在 Windows 8 中还能用吗?还有什么新功能吗?
答案1
Windows 7 附带PowerShell 2.0
,现在可以升级到PowerShell 3.0
。Windows 8 附带PowerShell 3.0
。版本 3 中有许多新功能。
一般的
- 添加了数百个新 cmdlet,并对现有 cmdlet 进行了改进。以下是新 cmdlet 的示例核心 cmdlet。
Where-Object
,也称为Where
或?
,语法进行了升级。在 2.0 版本中
Get-Process | Where-Object { $_.Handles -gt 1000 }
在 3.0 版本中
Get-Process | Where-Object Handles -gt 1000
-
Windows PowerShell 3.0 可检测客户端与服务器之间意外的连接中断,并尝试重新建立连接并自动恢复执行。如果无法在规定时间内重新建立客户端与服务器的连接,则会通知用户并断开会话。在尝试重新连接期间,Windows PowerShell 会持续向用户提供反馈。
如果使用 InvokeCommand 启动了断开连接的会话,Windows PowerShell 会为断开连接的会话创建一个作业,以便更轻松地重新连接并恢复执行。
这些功能提供了更可靠、可恢复的远程体验,并允许用户执行需要强大会话的长时间运行的任务,例如工作流。
增强的在线帮助。使用以下命令打开 cmdlet 的在线帮助文档。
Get-Help <cmdlet-name> -Online
-
Windows PowerShell 3.0 包括对通用信息模型 (CIM) 的支持,该模型为系统、网络、应用程序和服务提供了管理信息的通用定义,允许它们在异构系统之间交换管理信息。Windows PowerShell 3.0 中对 CIM 的支持,包括能够根据新的或现有的 CIM 类编写 Windows PowerShell cmdlet、基于 cmdlet 定义 XML 文件的命令、对 CIM .NET Framework 的支持。API、CIM 管理 cmdlet 和 WMI 2.0 提供程序。
模块改进。这主要是针对 PowerShell 模块开发人员的生活质量改进。
PowerShell ISE
- 输入和输出窗格已合并,以更好地类似于实际外壳。
- Intellisense 现在已经来到 PowerShell ISE!
这是增强版的制表符补全功能。在您输入时,ISE 会识别部分输入的 cmdlet 名称、cmdlet 参数名称、枚举等,并提供可能的替代方案。如果您输入 Get- 并暂停,PowerShell ISE 会显示一组以“Get-;”开头的有用项目,例如 Get-AsciiEncoding 等。这为编写脚本的人提供了巨大的好处 - 不仅 PowerShell 会减少输入,而且参数名称等内容现在会完整拼写出来(这对于生产脚本来说是一件好事)。
- 命令附加组件 - 您现在可以以图形方式浏览命令。如果您选择一个命令,您可以输入参数并运行该命令。您也可以随时使用 访问它
Show-Command
。
工作流程
- 工作流程是一种新型的 PowerShell 脚本。它们在大规模自动化任务中最有用。
工作流是一系列经过编程的连接步骤,用于执行长时间运行的任务或需要协调多个设备或托管节点上的多个步骤。Windows PowerShell 工作流允许 IT 专业人员和开发人员编写多设备管理活动序列或工作流中的单个任务作为工作流。根据设计,工作流可以长时间运行、可重复、频繁、可并行、可中断、可停止和可重新启动。它们可以暂停和恢复;它们还可以在意外中断(例如网络中断或计算机重启)后继续运行。