分享

win10一个重磅工具升级,PowerShell7推出,新版本变化太大

 一起来学电脑 2020-04-01

PowerShell是Windows和Windows Server的自动化平台和脚本语言,具有命令行界面,可为IT专业人员提供更多配置微软Windows系列操作系统的机会,是一种通用的管理工具,可让用户简化对系统的管理。与其他基于文本的外壳程序不同,PowerShell利用.NET Framework的功能,可提供丰富的对象和大量内置功能来控制Windows环境。

近日,微软发布了PowerShell 7,这是其跨平台PowerShell核心自动化工具和配置框架的最新版本。这次更新带来了一些重大的变化、新的功能和改进的向后兼容性。展望未来,PowerShell 7将成为“一个真正的PowerShell”,以取代之前Windows PowerShell和PowerShell核心之间的分层。

此版本中最大的更改之一是从.NET Core 2.x升级到了3.1版。微软在发布该版本的博客文章中说:“.NET Core 3.1带来了许多.NET Framework API,从而使它们与现有Windows PowerShell模块的向后兼容性大大提高。” “这包括Windows上许多需要GUI功能的模块,例如Out-GridView和Show-Command,以及Windows中附带的许多角色管理模块。”

win10一个重磅工具升级,PowerShell7推出,新版本变化太大

PowerShell安装目录改变

在安装PowerShell 7时,它将安装到新目录中,并与PowerShell 5.1一起运行。如果要从PowerShell Core 6.x升级,将覆盖PowerShell 6目录,并删除所有不必要的文件。以下是安装目录列表:

将PowerShell 7安装到%programfiles%\PowerShell\7目录

%programfiles%\PowerShell\7 文件夹已添加到 $env:PATH

PowerShell 7安装程序包将升级PowerShell Core 6.x的早期版本:

Windows:%programfiles%\PowerShell\6 替换为 %programfiles%\PowerShell\7

Linux: /opt/microsoft/powershell/6替换为 /opt/microsoft/powershell/7

macOS: /usr/local/microsoft/powershell/6 替换为 /usr/local/microsoft/powershell/7

PowerShell 7中的新功能

  • 管道并行化

  • 新的运算符

  • ConciseView和Get-Error cmdlet

  • 自动新版本通知

  • 直接从PowerShell 7调用DSC资源

  • 兼容层

在测试实际代码之前,请务必确保检查“环境变量”。

win10一个重磅工具升级,PowerShell7推出,新版本变化太大

1、管道并行化

现在,使用ForEach-Object-Parallel时,可以并行执行或处理对象,而不是使用sequence方法。此方法可以在不到10秒的时间内卸下三个WIM映像,而不是按顺序运行时的近25秒。下面是它的示例代码:

Get-WindowsImage -Mounted | foreach -Parallel {Measure-Command {Dismount-WindowsImage -Discard -Path $_.Path}}

2、新运算符

有三个新的三元运算符:a?b:c,管道链运算符;||和&&和Null条件运算符;??和??=。 它们的作用类似于一个简化的if-else语句,利用它们可以使编写代码变得容易,而不是一直使用If-else循环。

3、ConciseView和Get-Error cmdlet

ConciseView是一个用户可选择的视图,它是PowerShell 7的默认视图。如果错误不是来自脚本,将收到一个单行错误。如果来自脚本或存在解析错误,将收到一条多行错误消息以及一个指针,显示错误发生在哪一行。

win10一个重磅工具升级,PowerShell7推出,新版本变化太大

然后有一个新的cmdlet Get Error,可以帮助用户在需要时获得错误的详细视图。它可以显示最后发生的错误的完整详细信息,包括内部异常。

$Error | Get-Error

Get-Error -Newest 3 # Displays the last three errors that occurred in the session

4、自动新版本通知

从PowerShell 7开始,系统将每天检查一次更新,如果有新版本,系统将通知用户。此信息仅在后续会话开始时显示。

PowerShell更新有三个标志:

Default:GA、预览和RC版本

Off:关闭更新通知功能

LTS:只通知长期服务(LTS)GA版本的更新

如果要在PowerShell 7中关闭更新通知,请在PowerShell窗口中执行以下命令:

$Env:POWERSHELL_UPDATECHECK = 'Off'

5、直接从PowerShell 7调用DSC资源

Invoke-DscResource cmdlet运行指定的PowerShell所需状态配置(DSC)资源的方法,这是一个实验功能。

使用此cmdlet,配置管理产品可以通过使用DSC资源来管理Windows或Linux。当DSC引擎在启用调试的情况下运行时,此cmdlet还可启用资源调试。

6、兼容层

它允许PowerShell用户在隐式Windows PowerShell会话中导入模块。使用此功能,用户能够在远程计算机上将真实命令作为会话使用,并将结果返回到本地会话。现在它支持导入模块,用户可以在远程计算机上运行这些模块。

PowerShell 7是跨平台的,它支持Windows,macOS和各种Linux版本,PowerShell是Linux和macOS上都可用的开源软件。很高兴在PowerShell 7中看到如此多的新功能,希望微软加大开发力度,开发出功能更强大的版本。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多