介绍PowerShell 7.0

今天,我们很高兴地宣布PowerShell(公共)  版本7.0的发布首先,我们要感谢我们的  许多贡献者,他们通过共享代码,测试,文档和有关问题的反馈使发布此版本成为可能。没有您的帮助,PowerShell 7将无法实现。



什么是PowerShell 7?


对于初学者来说,PowerShell 7是PowerShell的最新重大更新,PowerShell是跨平台(Windows,Linux和macOS)自动化工具和配置基础架构,已针对使用结构化数据(例如JSON,CSV,XML等),REST API进行了优化。和对象模型。 PowerShell包括命令行外壳,面向对象的脚本语言以及用于运行脚本/ cmdlet和管理模块的一组工具。

三年前,我们宣布PowerShell Core 6是PowerShell的全新版本。基于.NET Core,PowerShell Core引入了对Windows,macOS和Linux的跨平台支持,基于SSH的PowerShell Remoting,显着改进的REST和JSON支持,官方Docker容器等。此外,这是PowerShell的第一个版本,它是在开放源代码许可(MIT)下创建的,鼓励长期的PowerShell爱好者和初学者一样直接为源代码,测试和文档做出贡献。

在成功发布三个PowerShell Core之后,我们很高兴看到PowerShell 7,这是PowerShell持续开发的下一章。在PowerShell 7中,除了通常的许多新cmdlet / API和错误修复之外,我们引入了许多新功能,包括:

  • 使用ForEach-Object-Parallel进行管道并行化
  • 新的运营商:
    • 三元运算符:b:c
    • 管道链运营商:和&&
    • 空合并语句:?? 和?? =
  • 简化的动态错误查看和Get-Error cmdlet可以更轻松地调查错误
  • 兼容性级别,允许用户在隐式Windows PowerShell会话中导入模块
  • 自动更新通知
  • 能够直接从PowerShell 7调用DSC资源(实验性)

有关功能和修复的更完整列表,请参见  此处

从PowerShell Core 6.x升级到7.0也意味着从.NET Core 2.x升级到3.1。 .NET Core 3.1返回许多.NET Framework API(尤其是在Windows上),与现有Windows PowerShell模块的向后兼容性大大提高。这包括Windows上许多需要GUI功能的模块,例如Out-GridView和Show-Command,以及Windows附带的许多角色管理模块。有关更多信息,请查看我们的模块兼容性表,该表演示了如何使用可与PowerShell 7一起使用的最新的现代模块。

如果过去由于模块兼容性问题而无法使用PowerShell Core 6.x,则可能是利用自启动Core项目以来我们已经提供的某些功能的情况!

凉!如何获得PowerShell 7?


首先,请查看Windows,  macOS或  Linux的安装文档  可能有几种安装方法,具体取决于您的操作系统版本和首选软件包格式。

如果您已经知道要做什么,并且只是在寻找二进制包(无论是MSI,ZIP,RPM还是其他东西),请转到GitHub上的最新版本标签

或者,您可以使用我们许多Docker映像之一有关使用它们的更多信息,请查看我们的PowerShell-Docker存储库

PowerShell 7支持哪些操作系统?


PowerShell 7支持  以下  x64 操作系统,包括:

  • Windows 7、8.1和10
  • Windows Server 2008 R2、2012、2012 R2、2016和2019
  • macOS 10.13以上
  • 红帽企业Linux(RHEL)/ CentOS 7+
  • Fedora 29+
  • Debian 9+
  • Ubuntu 16.04以上
  • openSUSE 15+
  • 高山Linux 3.8+

此外,我们支持Debian和Ubuntu的ARM32和ARM64版本,以及ARM64 Alpine Linux。

尽管没有得到官方的支持,该社区还提供了ArchKali Linux的软件包

如果您需要对不在此列表中的平台的支持,请向GitHub发送分发请求(尽管应注意的是,最后我们仅限于支持.NET Core 3.1的事实)。

等一下,PowerShell“ Core”发生了什么?


.NET和.NET 5一样,我们认为PowerShell 7标志着我们向Windows PowerShell最大限度地向后兼容的道路的尽头。在这方面,我们认为PowerShell 7和更高版本是将来唯一受支持的PowerShell。

在Core版本中,PowerShell 7将继续具有特色,以区别于Windows PowerShell和6.x / 7.x,但总的来说,您会看到将来它将被称为PowerShell 7。

哪些Microsoft产品已经支持PowerShell 7?


PowerShell 7还支持PowerShell Core 6.x已支持的任何模块,包括:


在Windows上,我们还向导入模块中添加了-UseWindowsPowerShell参数,以简化使用不兼容模块的用户到PowerShell 7的过渡。此选项在PowerShell 7中创建一个代理模块,该代理模块使用本地Windows PowerShell进程隐式运行此模块中包含的任何cmdlet。有关此功能的更多信息,请查看Import-Module文档

对于仍然不兼容的那些模块,我们正在与许多同事一起添加对PowerShell 7的内置支持,包括Microsoft Graph,Office 365和其他。

Azure Cloud Shell已更新为使用PowerShell 7,而其他版本(例如.NET Core SDK Docker容器映像Azure功能将很快更新。

下一步是什么?


我们已经在PowerShell 7.1上进行了艰苦的工作,您可以期望它在不久的将来首次发布预览,其中包含7.0中未包含的新功能和修复。请继续关注更详细的路线图博客,该博客概述了我们当前对7.1的研究和期望。

如上所述,我们也将每年更新一次,以更好地匹配.NET版本及其支持生命周期(预发行版本大约每个月继续发行)。

All Articles