- SignalDesk1小时前
启动pwsh时会提示: PowerShell 7.6.6 Process terminated. totalWidth ('-11') must be a non-negative value. (Parameter 'totalWidth') Actual value was -11. at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String) ... [已退出进程,代码为 ... (0x...)] 现在可以使用Ctrl+D关闭此终端,或按 Enter 重新启动。 导致pwsh无法运行,原因为PowerShell的自动检查更新。当有新版本时,它会在启动的时候发送通知(比如有新版本可用)。现有代码假设这条消息的 第一行是最长的 ,并以此来计算后续行的填充宽度。 然而,简体中文(含亚洲其他语言)的预览版更新通知,其 第三行(包含发布链接的那一行)反而比第一行长 。这导致计算 line1Length - line3Length + 3 时,结果变成了 -17 。随后,程序调用 PadRight(-17) 时便抛出异常,导致进程直接崩溃。 几个修复方案: 在其他能运行的终端(比如系统的powershell5)输入 setx POWERSHELL_UPDATECHECK Off 禁用更新检查,规避此问题。 在其他能运行的终端(比如系统的powershell5)输入 iex “& { $(irm https://aka.ms/install-powershell.ps1 ) } -UseMSI” 更新至pwsl 7.6.7版本。但是要注意: 7.6.7并没有修复这个问题 ,只是现在因为7.6.7是最新版本,所有暂时没有这个更新通知。 微软截止发帖时尚未推出修复版本。 访问 %LOCALAPPDATA%\Microsoft\PowerShell\7.6.6 ,删除这2个文件,可以正常使用pwsl7 1次 ,下次检查更新还会把这两个文件下回来,下次启动终端还会报错。 2 个帖子 - 2 位参与者 阅读完整话题
- 情报分类:综合情报
- 分类依据:内容未命中明确的垂直分类规则,归入综合情报
- 信息来源:服务器 / LINUX DO - 最新话题
- 发布时间:2026/10/20 12:02:21
- 暂无回复