PowerShell 7 是微软推出的开源跨平台命令行工具,集命令行 shell、脚本语言与配置管理框架于一身,可独立安装在与 Windows PowerShell 不同的目录中,实现与 5.1 版本并行运行。它面向异构环境和混合云管理场景,不会替换系统自带的 Windows PowerShell 5.1。该版本引入并行化、新运算符和简化错误处理等改进,并可通过 Windows 兼容性功能调用部分旧版模块。

1、 采用 .NET 对象作为输入输出,无需解析文本即可提取信息
2、 支持 Tab 自动补全和命令预测,提升输入效率
3、 内置控制台帮助系统,类似 Unix 的 man 页面
4、 脚本语言常用于系统管理自动化,也适用于 CI/CD 环境的、测试与部署
5、 运行于 .NET 公共语言运行时(CLR)之上
6、 对 CSV、JSON、XML 等常用数据格式提供内置支持
- 可扩展的模块体系覆盖各类技术的部署与管理需求
- PowerShell Desired State Configuration(DSC)支持“配置即代码”方式管理企业基础结构
- DSC 可创建声明式配置和自定义脚本,实现可重复部署
- Microsoft.PowerShell.PSResourceGet 更新至 v1.2.0
- Microsoft.PowerShell.ThreadJob 更新至 v2.2.0,替换原有 ThreadJob 模块,Start-ThreadJob cmdlet 保持不变,使用模块限定名称的脚本需将名称改为 Microsoft.PowerShell.ThreadJob\Start-ThreadJob
1、 修复 WildcardPattern.Escape 对单独反撇号的转义
2、 将 -ChildPath 参数转换为 string[] cmdlet 的 Join-Path
3、 在参数补全中使用 HelpMessage 作为工具提示
4、 为 ArrayLiteralAst 和 ParenExpressionAst 中分配的变量添加代码补全
5、 修复 env/function 变量的选项卡补全
6、 更新命名与语句块类型推断,不将 AssignmentStatements 和递增/递减运算符视为输出部分
7、 为 -PropertyType(New-ItemProperty)添加参数补全器
8、 为 -Noun 的 Get-Command 参数添加单引号/双引号补全支持
9、 为 -PSEdition 的 Get-Module 参数添加单引号/双引号补全支持
10、 将 AnalysisCache 中的 InvalidCommandNameCharacters 转为 SearchValues<char> 提升字符搜索效率
11、 将补全器中的 s_charactersRequiringQuotes 转为 SearchValues<char> 提升字符搜索效率
12、 将无效路径/文件名的调用更新为 IndexOfAny(),便于 SearchValues<char> 高效搜索
13、 将 char[] 数组替换为 CompletionRequiresQuotes 中的缓存 SearchValues<char>
14、 使用单个帮助程序方法在 Verb、StrictModeVersion、Scope 和 PropertyType 参数完成器中添加引号处理
15、 使用提供程序和空格修复共享补全问题
16、 在推断变量时排除同 CommandAst 范围内的 OutVariable 赋值
17、 修复脚本要求失败时的参数补全问题
18、 修复依赖脚本块中伪绑定的补全功能
19、 为通过命令重定向分配的变量添加补全
20、 修复 TypeName.GetReflectionType() 处理 GenericTypeName 中泛型类型定义时的行为
21、 更新变量/属性赋值完成机制,可回退到类型推断
22、 使用 Get-Help 方法查找正确区域设置的 about_*.help.txt 文件以进行补全
23、 修复 Do 循环内分配变量的补全问题
24、 修复路径返回自身而非子路径时的提供程序路径补全问题
25、 支持不指定范围补全作用域变量
26、 修复非文件系统提供程序中使用通配符完成路径时结果不完整的问题
27、 为 -Delimiter 添加 Get-Clipboard 参数
28、 将过时的 BinaryFormatter 替换为自定义实现进行修复
29、 改进 Web cmdlet 中详细和调试日志记录级别的消息传递
30、 改进 Web cmdlet 请求和响应的调试日志记录
31、 添加 Register-ArgumentCompleter -NativeFallback 参数,支持为本机命令注册通用补全器
32、 在 -Target 中将 New-Item 视为字面意思
33、 更新 Windows 上包管理器可执行文件的 PATH 环境变量
34、 更新 Get-Service 以在检索非关键属性时忽略常见错误
35、 为 Join-String Argument Completer 添加单引号/双引号支持
36、 删除 IsScreenReaderActive() 检查
37、 改进 $using 表达式在 Invoke-Command 中的支持
38、 将默认反馈提供程序超时从 300 毫秒改为 1000 毫秒
39、 在 [bigint] 强制转换中添加千位分隔符支持
40、 为重载跟踪添加 MethodInvocation 跟踪
41、 修复 ConvertFrom-Json 忽略数组字面量中注释的问题
42、 修复 -Debug 不触发 ShouldProcess 提示
43、 修复 Write-Host 尊重 OutputRendering = PlainText
44、 修复高级函数的通用参数 -ProgressAction
45、 修复多线程写入进度记录到控制台时的 NullReferenceException
46、 在 FileSystemProvider.CreateDirectory 中使用绝对路径
47、 使继承的保护性内部实例成员在 PowerShell 类作用域中可访问
48、 为 -ExcludeModule 添加 Get-Command 参数
49、 列出备用数据流时 Get-Item 返回正确的 FileName 属性
50、 修复 Get-ItemProperty 报告强制转换异常的非终止错误
51、 修复 XmlNode 对象方法处理中的 bug
52、 传递无效目录名称时 New-Item -Force 出错
53、 允许 Start-Transcript 使用 $Transcript 包装的 PSObject 字符串指定转录路径
54、 提高 Start-Process -Wait 轮询效率
55、 修复 API CompletionCompleters.CompleteFilename() 中导致 null 引用异常的回归
56、 创建子 ssh 进程后关闭管道客户端句柄
57、 更新 PSDiagnostics 模块以在 PowerShell 7 中管理 PowerShellCore 提供程序
58、 允许使用环境变量 POWERSHELL_DIAGNOSTICS_OPTOUT 选择退出命名管道侦听器
59、 修复 stderr 控制台主机输出以确保遵循 NO_COLOR
60、 更新 PSRP 协议以弃用较新客户端和服务器之间的会话密钥交换
61、 修复 ssh 默认 Runspace 不可用时路径检查 SSHConnectionInfo
62、 添加 PSForEach 和 PSWhere 作为 PowerShell 内部方法 Where 和 Foreach 的别名
63、 向遥测收集列表添加 AIShell 模块
64、 在 EnumSingleTypeConverter 中添加辅助函数以将枚举名称作为数组获取
65、 更新 X509Certificate2 的 DnsNameList 以使用 X509SubjectAlternativeNameExtension.EnumerateDnsNames() 方法
66、 将带有空异常消息的 ErrorRecord 字符串化为空字符串
67、 将 PipelineStopToken 添加到 Cmdlet 以在管道停止时发出信号
68、 在 WldpCanExecuteFile 后回退到 AppLocker
69、 完成方法参数所需类型转换后,将 .NET 方法调用日志记录移到该步骤之后
70、 删除旧的模糊建议并修复本地脚本文件名建议
71、 使 SystemPolicy 公共 API 在 Unix 平台上可见但不执行操作,以便包含在 PowerShellStandard.Library 中
72、 使用 -NoNewWindow 启动进程时明确设置标准句柄
73、 修复变量扩展工具提示并包括描述
74、 在完成 using 语句的相对路径时使用脚本文件路径
75、 允许 DSC 通过 OS 体系结构转换层进行分析
2、 PSSerializeJSONLongEnumAsNumber 让 ConvertTo-Json 将大型枚举视为数字
3、 PSProfileDSCResource 为 PowerShell 配置文件添加 DSC v3 资源
4、 支持 x64 上的 Windows Server 2012、2012 R2、2016 和 2019,以及 RHEL/CentOS 7
5、 PowerShell 7.0 还支持 Debian、Ubuntu,以及 ARM32 和 ARM64 版本的 Alpine Linux
(您的评论需要经过审核才能显示)
0条评论