拓冰建站拓冰建站
首页 / 资讯中心 / 正文

PowerShell 7.2 LTS 全版本演进解析:从 preview.1 到 7.2.23 的完整版本档案

PowerShell 7.2 LTS 全版本演进解析从 preview.1 到 7.2.23 的完整版本档案【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell本文基于仓库中的 CHANGELOG/7.2.md 完整梳理 PowerShell 7.2 系列的全部 24 个版本节点从 2020 年 11 月的 preview.1到 2021 年 11 月的 GA再到 2024 年 8 月的最后一个长期支持补丁 7.2.23。你将掌握 7.2 系列引入了哪些破坏性变更与核心新特性ANSI 渲染、原生命令参数传递、跨平台 DSC 等、LTS 补丁版本的服务节奏与 .NET 6 基线演进并能结合当前仓库源码验证这些特性的落点。一、文档定位7.2 是一个完整的 LTS 生命周期CHANGELOG/7.2.md 覆盖 7.2 从孵化到停止服务的全过程时间跨度约 3 年 9 个月2020-11-17 至 2024-08-20。该文件在版本索引 CHANGELOG/README.md 中作为 “7.2 changelog” 独立列出与 7.37.6、preview 等 changelog 并列。整个生命周期可分三个阶段阶段版本范围时间特征预览版7.2.0-preview.1 ~ preview.10、rc.12020-11 ~ 2021-10密集的功能引入破坏性变更、实验特性、性能优化、代码清理GA7.2.02021-11-08基于 .NET 6 GA 构建LTS 服务版7.2.1 ~ 7.2.232021-12 ~ 2024-08以安全修复、.NET 6 服务版升级、打包与签名流程改进为主其中 7.2.10 的一条记录#19069明确把 “7.2.x releases” 标记为latest LTS but not latest stable从 changelog 本身可以确认 7.2 系列承担的是长期支持LTS角色。二、版本时间线总览版本日期核心要点7.2.0-preview.12020-11-17.NET 5 RTM 基线Start-Transcript默认回退编码改为 UTF8 无 BOM7.2.0-preview.22020-12-15实验特性PSAnsiRendering$PSStyle首次引入7.2.0-preview.32021-02-11Get-Date -UFormat %u修复为符合 ISO 8601跨平台 DSC 能力7.2.0-preview.42021-03-16启用 Apple M1 运行时构建Get-Date -UFormat %G/%g修复7.2.0-preview.52021-04-14Linux deb/RPM 包改为 universalPSNativeCommandArgumentPassing实验特性7.2.0-preview.62021-05-27跨平台 DSC 代码移入引擎子系统性能优化集中落地7.2.0-preview.72021-06-17移除 PSDesiredStateConfiguration v2.0.5 模块改由 PowerShell Gallery 发布7.2.0-preview.82021-07-22$PSNativeCommandArgumentPassing增加 Windows 模式$PSStyle增强7.2.0-preview.92021-08-23$PSStyle.OutputRendering默认值改为Host五个实验特性转正7.2.0-rc.12021-10-21包内加入 Software Bill of Materials代码签名验证修复7.2.02021-11-08GA基于 .NET 6.0.100 RTM 构建7.2.12021-12-14框架依赖包恢复pwsh.exe以支持Start-Job$PSStyle.OutputRendering默认值改为Ansi7.2.2 ~ 7.2.32022-03-16 / 2022-04-26SBOM 清单、全局工具校验和、模块搜索路径修复7.2.42022-05-17.NET SDK 6.0.203RPM 包增加 sha256 摘要7.2.52022-06-21修复 osx-arm64 原生库加载7.2.62022-08-11修复ForEach-Object -Parallel传递脚本块变量问题7.2.72022-10-20Invoke-WebRequest移除小文件下载 1 秒最小延迟7.2.82022-12-13.NET SDK 6.0.403System.Data.SqlClient 4.8.57.2.92023-01-24修复 JEA 会话函数泄漏7.2.102023-02-237.2.x 标记为 latest LTSazCopy 107.2.112023-04-12包构建重构以简化签名与打包阶段7.2.122023-06-27发布工具增加 backport 函数包许可证校验7.2.132023-07-13子系统测试超时调整7.2.142023-09-18发布 rhel9 RPM 包MSI 注册表写入ProductCode7.2.152023-10-10安全修复受限远程会话中阻止从网络位置获取帮助7.2.162023-10-26新增 mariner2 arm64 运行时与打包支持7.2.172023-11-16ErrorRecord 中脱敏 Auth 头内容7.2.182024-01-11runtimeconfig.json设置rollForwardOnNoCandidateFx7.2.192024-04-11OneBranch 协调构建流水线7.2.202024-06-06限制发布仅 .NET SDK 容器镜像全局工具生成方式变更7.2.212024-06-187.2.20 面向广泛渠道发布7.2.222024-07-18.NET 6.0.424修复模块清单文件路径解析7.2.232024-08-20.NET 6.0.425RPM/DEB 签名证书修正三、贯穿 7.2 全线的破坏性变更与行为修正破坏性变更Breaking Changes在 changelog 中单独成节是使用方升级前必须核对的部分。7.2 系列累计包含以下关键项打包与平台层面7.2.0-preview.5#15109Linux deb 与 RPM 包改为 universal 包不再按具体发行版版本号命名同一提交系列中还包含“Make universal deb package based on the deb package specification”#14681。这意味着安装脚本与仓库地址不再需要绑定精确发行版。7.2.0-preview.5#15035强制执行 AppLocker Deny 配置优先于 Execution Policy Bypass 配置——AppLocker 拒绝规则不再会被执行策略旁路绕过。7.2.0-preview.5#15142禁止在命令行参数前缀中混用连字符与斜杠收紧了pwsh -Command之外参数解析的歧义。7.2.0-preview.7#15536PSDesiredStateConfigurationv2.0.5 模块从产品包中移除改由 PowerShell Gallery 发布。使用 DSC 的脚本需要显式Install-Module PSDesiredStateConfiguration。7.2.0-preview.9#15859Windows 上pwsh.exe -File仅接受.ps1脚本文件。日期与格式化行为7.2.0-preview.3#14549Get-Date -UFormat %u修复为符合 ISO 86011 表示周一。7.2.0-preview.4#14555Get-Date -UFormat的%G与%gISO 8601 年号行为修正。输出渲染7.2.0-preview.9#15882$PSStyle.OutputRendering默认值改为OutputRendering.Host并移除OutputRendering.Automatic。7.2.1Internal 18394$PSStyle.OutputRendering默认值进一步改为Ansi即 GA 后默认启用 ANSI 渲染。原生命令参数传递7.2.0-preview.5#14692引入实验特性PSNativeCommandArgumentPassing默认使用 .NET 的ArgumentList机制启动原生可执行文件被标注为 breaking change改变了参数引号转义与空格处理的行为7.2.0-preview.8#15408为该变量增加 Windows 模式允许部分已知命令回退到旧式参数传递。当前仓库的源码印证了该特性至今的形态NativeCommandProcessor.cs 中维护着一份“触发 Legacy 行为的可执行文件列表”在 Windows 模式下通过ShouldUseLegacyPassingStyle(filePath)判断是否对特定程序如 cmd 系列调用回退旧式参数解析其余情况走startInfo.ArgumentList路径。四、7.2 引入的核心新特性预览期沉淀GA 转正1. ANSI 渲染与$PSStylePSAnsiRendering7.2 最显著的用户可见特性之一。演进链如下7.2.0-preview.2#13758实验特性PSAnsiRendering引入$PSStyle支持通过它启用 ANSI 格式化并抑制 ANSI 输出7.2.0-preview.3支持删除线与超链接#14461修复闪烁码#144477.2.0-preview.5$PSStyle渲染尊重TERM与NO_COLOR环境变量#14969不支持虚拟终端时进度条回退为ProgressView.Classic#150487.2.0-preview.4增加UseOSCIndicator设置以在终端启用进度指示器#149277.2.0-preview.3实验特性PSAnsiProgress提供基于 ANSI 的最小进度条#144147.2.0-preview.8Format-List使用$PSStyle.Formatting.FormatAccent、Format-Table使用$PSStyle.Formatting.TableHeader#14406Get-Error用错误色高亮异常Message并对PositionMessage加下划线#157867.2.0-preview.9#15864PSAnsiRendering、PSAnsiProgress、PSUnixFileStat、PSCultureInvariantReplaceOperator、PSNotApplyErrorActionToStderr五个实验特性整体转正为稳定特性。一个可验证的旁证当前默认分支的实验特性清单experimental-feature-linux.json、experimental-feature-windows.json中已经不存在PSAnsiRendering等条目仅剩PSFeedbackProvider、PSSubsystemPluginModel等新特性——这与 changelog 中“转正即从实验列表移除”的描述一致。2. 跨平台 DSC7.2.0-preview.3 的引擎更新说明配合 PowerShell Gallery 的PSDesiredStateConfigurationv3 模块Get-DscResource、Invoke-DscResource与 DSC 配置编译可在所有受支持平台使用基于类式 DSC 资源7.2.0-preview.6#15127跨平台 DSC 代码移入 PowerShell 引擎子系统engine subsystem从“模块内实现”变成引擎级扩展点。3.Remove-Item对 OneDrive 的支持一次完整回退-重做该特性在 changelog 中留下了罕见的三段式记录preview.5 增强-Recurse支持 OneDrive#14902→ preview.6 重新实现#15260→ preview.7 因长路径问题整体回退#15546→ preview.9 再增强#15571。阅读该 changelog 时可以把它当作“破坏性回退也会被如实记录”的典型案例。4. 其他值得注意的命令修正7.2.0-preview.4Start-Process移除环境块 32,767 字符上限#14111DFS 路径下Move-Item改用 copy-delete#14913Web cmdlet 不再把可能的敏感信息写入 verbose 流#147887.2.0-preview.5ConvertTo-Json最小深度改为 0#14830Set-Clipboard允许空字符串#14579-replace运算符IEnumerable变体优化7.2.0-preview.6ForEach-Object -Parallel嵌套调用变量修复#14548Unix 下管线释放时结束原生进程#15287Add-Type受限机器 NoLanguage 模式禁止preview.9 的 #16245 为 rc 阶段补充7.2.0-preview.9Set-Clipboard增加-PassThru#13713Tee-Object增加-Encoding#12135Write-Error的-Exception/-ErrorRecord变为位置参数 0#13813ConvertTo-Csv在-UseQuotes AsNeeded下正确转义含引号与换行的字段#157657.2.0-rc.1#16165FileSystemInfo.Target从CodeProperty改为指向FileSystemInfo.LinkTarget的AliasProperty符号链接目标查询更直接7.2.0-preview.1Start-Transcript的GetEncoding默认回退编码改为 UTF8 无 BOM#13732避免转写文件出现 BOM7.2.1#16535框架依赖framework-dependent包恢复pwsh.exe保证Start-Job在最小安装下可用——这是 GA 后第一个补丁版本中影响面较大的行为回补。五、LTS 服务节奏7.2.1 到 7.2.23 的服务版解析7.2 GA 之后的 23 个补丁版本呈现清晰的 LTS 服务模式绝大多数条目为Build and Packaging Improvements其中规律性最强的是 .NET 6 运行时/SDK 的跟随升级形成了一条可追溯的 .NET 基线演进线版本.NET 6 基线同期值得关注的变更7.2.4SDK 6.0.203RPM 包增加 sha256 摘要#17215空Get不携带content-length头#165877.2.6SDK 6.0.8#17589ForEach-Object -Parallel脚本块变量修复#16564MSI 增加 Microsoft Update 选项7.2.7SDK 6.0.402停止采集ApplicationType遥测#18168Invoke-WebRequest移除 1 秒最小延迟#181707.2.8SDK 6.0.403System.Data.SqlClient 4.8.4 → 4.8.5#185157.2.96.0.13修复 JEA 会话函数泄漏Internal 23821 23819Linux 构建产物增加 Authenticode 签名7.2.106.0.14 / SDK 6.0.4067.2.x 标记为 latest LTS发布流水线增加框架依赖包测试7.2.126.0.411backport 工具化#19568校验包内许可证数据#195437.2.146.0.414rhel9 RPM 发布#20234MSI 安装注册表写入ProductCode#202337.2.166.0.416mariner2 arm64 打包与 PMC 发布#20564、#205677.2.176.0.417ErrorRecord 脱敏 Auth 头Internal 28411——安全相关7.2.18SDK 6.0.418runtimeconfig.json设置rollForwardOnNoCandidateFx为 1仅在 minor/patch 版本间向前滚动#206897.2.20.NET 6.0.31限制发布仅 .NET SDK 容器镜像全局工具生成方式与 WiX 打包流程调整7.2.21—7.2.20 从容器渠道扩展到广泛发布为PowerShell.Windows.x64全局工具生成powershell.config.json#239417.2.226.0.424导入文件与模块清单引用文件的路径解析修复Internal 31777 317887.2.236.0.425RPM/DEB 使用正确签名证书#21522PackageManagement 升级到 1.4.8.1其中两个变更可以直接在当前仓库源码中找到落点运行时滚动策略7.2.18 引入的rollForwardOnNoCandidateFx设置对应 src/powershell-unix/runtimeconfig.template.json文件内注释写明 “This is required to roll forward to supported minor.patch versions of the runtime.”值为1仅 minor/patch。src/powershell-win-core/runtimeconfig.template.json 与 src/Microsoft.PowerShell.GlobalTool.Shim/runtimeconfig.template.json 采用相同配置。其效果是7.2 框架依赖包只会在 .NET 6 的 minor/patch 之间向前滚动不会跳到 .NET 8/9 等更高主版本这正是 LTS 包“运行时基线锁定”的实现方式。Windows 全局工具7.2.20/7.2.21 围绕PowerShell.Windows.x64全局工具的重构对应 src/GlobalTools/PowerShell.Windows.x64/PowerShell.Windows.x64.csproj——PackAsTooltrue、ToolCommandNamepwsh引用 SDK 与诊断、CimCmdlets、WSMan 等项目。需要说明的是当前默认分支已迁移到 .NET 11 preview见 global.json 与 DotnetRuntimeMetadata.json该 csproj 的TargetFramework已是net11.07.2 时代对应的是net6.0基线。打包与供应链方面的里程碑均见于 7.2 changelog 的 Build and Packaging 条目rc.1 起主包附带 Software Bill of Materials#162027.2.2 增加发布包 SBOM manifest#166417.2.0-preview.2 起 Linux/macOS/NuGet 与第三方签名逐步迁移到 ESRP7.2.20 起引入 vPack 发布通道。这些条目的价值在于LTS 补丁版中看似琐碎的“Build and Packaging Improvements”实际承载了签名、SBOM、发布通道等供应链合规能力。六、安全相关条目速查对 LTS 用户而言补丁版中真正必须关注的是安全与行为安全条目7.2 系列中包括7.2.9JEAJust Enough Administration会话函数泄漏修复7.2.15受限远程会话中阻止从网络位置获取帮助Internal 276997.2.17ErrorRecord 中的 Auth 头内容脱敏Internal 284117.2.22导入文件与模块清单引用文件的路径解析修复Internal 31777 31788rc 阶段进入 7.2.0 GA 前AppLocker 系统锁定时禁止 COM 调用#16268、锁定机器 NoLanguage 模式禁止Add-Type#16245。七、使用与核查建议版本定位$PSVersionTable.PSVersion主版本为 7.2 的部署即处于 LTS 服务线应跟进到系列最新版本按本 changelog 为 7.2.232024-08-20以获得全部上述安全与服务性修复升级前核对破坏性变更从 7.1 升 7.2 的脚本需重点核对第四节列出的行为变化尤其是PSDesiredStateConfiguration模块不再随包附带、Get-Date -UFormat语义修正、$PSStyle.OutputRendering默认Ansi、以及原生命令ArgumentList参数传递运行时滚动行为框架依赖安装受rollForwardOnNoCandidateFx: 1约束仅在同一 major 内向前滚动见 src/powershell-unix/runtimeconfig.template.json跨大版本升级需显式更换安装包追踪机制本仓库采用按主版本分文件、按小节折叠细节的 changelog 组织方式索引见 CHANGELOG/README.md每条记录附 PR 编号如 #15109或内部工单号可据此在代码评审历史中定位具体提交适用前提说明当前仓库为默认分支masterglobal.json指向 .NET 11 preview SDK因此诸如 PowerShell.Windows.x64.csproj 中的net11.0目标框架反映的是 7.2 之后的演进状态7.2 系列自身的 .NET 6 基线以 CHANGELOG/7.2.md 的逐版本记录为准。八、小结CHANGELOG/7.2.md 不仅是一份补丁清单而是 PowerShell 首个 .NET 6 LTS 系列的完整档案预览期密集落地了 ANSI 渲染、原生命令新参数传递、跨平台 DSC 引擎化等特性并完成转正GA 后通过 23 个服务版持续跟随 .NET 6 运行时基线同时沉淀了 SBOM、ESRP 签名、vPack 通道、rollForwardOnNoCandidateFx运行时锁定等供应链与兼容性机制。对运维方而言它回答“该升到哪个补丁”对开发者而言它是 7.2 行为边界的一手权威依据。【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门