上个月 PowerShell 7 发布了第 5 个预览版,离最终正式版本又更进了一步。本文介绍一下 PowerShell 7 将带来的 5 大变化,主要是一些大方向上的特性。
.NET Core 3.0
16 年开源之前(PowerShell 5.1),PowerShell 仅支持 Windows,并且基于 .NET 框架,开源之后(PowerShell Core 6)基础框架修改为 .NET Core,.NET Core 支持所有操作系统,使得 PowerShell 支持 Linux 与 macOS。
PowerShell 7 的一项重大工作是将 PowerShell Core 6 代码库移植到 .NET Core 3.0,所以 PowerShell 的发布时间取决于使用 .NET Core 3.0 完成 PowerShell 的集成和验证。
微软表示为了让 PowerShell 7 与 .NET Core 时间轴保持一致,因此 GA 版本将在 .NET Core 3.0 发布 GA 之后再推出。
另外,值得一提的是,PowerShell 上一个大版本是 PowerShell Core 6.2,新版本不是 PowerShell Core 6.3 而变成 PowerShell 7 是因为在过去两年里,PowerShell Core 的使用率显著增加,其中大部分增长来自 Linux 平台,这对于将 PowerShell 打造成跨平台 工具 是一个可喜的数据,但是 Windows 版本的使用量并没有显著增长,微软表示这可能与 Windows 平台上版本(PowerShell 5.1)的功能缺失有关,由于不支持的模块、程序集和 API,现有的 PowerShell 用户无法利用 PowerShell Core 的新功能、性能增强和 bug 修复。为了解决这个问题,微软决定在 PowerShell 7 中完全替换 Windows PowerShell 5.1。
Windows 兼容性
PowerShell 7 的主要目标之一是缩小 PowerShell 与 PowerShell Core 之间可用 cmdlet 数量的差距,目标是提高与模块的兼容性,以在这些版本之间实现奇偶校验,以便管理员可以无缝地完全迁移到 PowerShell Core。
长期支持(LTS)
微软将为 PowerShell 采用新的生命周期,发布 LTS 和非 LTS 版本的 PowerShell 7,使其与 .NET Core 支持的生命周期紧密保持一致。每月将提供预览版本,以便尽早获得反馈。与当前发行版相比,LTS 发行版将在最初发行后的三年内得到支持,而当前发行版仅在随后的当前发行版或 LTS 发行后的三个月内得到支持。
安全凭证管理
脚本编写通常可以通过自动化任务来简化 IT 管理员的工作,但是随着对本地、云和混合资源的依赖越来越大,这可能导致需要多个凭据的资源无法正常运行。PowerShell 拥有用于在一定程度上保护凭据的方法,以在某种程度上避免在脚本中嵌入纯文本形式的凭证。
更进一步,微软正在努力创建凭据存储,该存储将充当安全存储库,存储本地或远程维护管理员凭据,用户不必以不安全的方式输入凭据。
集中记录
PowerShell 的日志记录功能仅限于本地计算机,执行脚本和 cmdlet 生成的日志都会保留在运行 cmdlet 的本地设备上。这样可以对日志进行排序,以获取有关问题的反馈,但却非常耗时,需要用户分别查看所有设备。PowerShell 7.0 通过策略将日志收集标准化,该策略会将所有日志定向到目标系统(或 syslog 类型的服务器),以进行 OS 无关的集中式管理。
本文参考了“5 changes coming to PowerShell 7.0”,关于 PowerShell 更多相关内容可以查看:
猜你喜欢: