PowerShell启动报错主因是ExecutionPolicy策略阻止脚本执行,需设为RemoteSigned;VSCode终端红字还可能源于profile路径错误(PowerShell 7用$HOME\Documents\PowerShell\)、PSReadLine版本不匹配或终端编码/字体问题。
PowerShell启动报错:ExecutionPolicy被阻止执行脚本
VSCode里打开PowerShell终端时满屏红字,大概率是
策略拦截了配置文件(比如
)或模块自动加载。PowerShell默认策略为
,连本地脚本都不让运行,而VSCode的PowerShell扩展常会尝试加载用户配置或PSReadLine等模块——一碰就报错。
检查当前策略:
,重点关注
和
作用域
临时绕过(仅当前会话):
永久生效(推荐):
,避免改系统级策略(
)需管理员权限
别用
——它会让所有远程脚本无警告运行,安全风险明显
VSCode PowerShell扩展加载profile失败
即使策略放开,VSCode的PowerShell终端仍可能报
,本质是profile路径不对或被跳过。VSCode默认不读取Windows PowerShell的profile(
指向的是
目录),但你装的可能是PowerShell 7(
vs
)。
确认VSCode用的是哪个PowerShell:
或看终端左下角显示的可执行文件路径
PowerShell 7的profile路径是:
(不是
)
在VSCode设置里搜
,确保选对版本;或手动指定终端路径:
profile里别写阻塞式操作(如网络请求、长sleep),否则终端卡住几秒才起来
PSReadLine模块版本冲突导致崩溃
满屏红字里如果含
、
或
,基本是模块版本和PowerShell版本不匹配。PSReadLine 2.2+只支持PowerShell 7.2+,而旧版Windows PowerShell(5.1)只能用2.1.x。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
查模块版本:
卸载冲突版本:
(示例)
重装适配版:PowerShell 5.1用
;PowerShell 7.2+可用最新版
VSCode里按
→
,别只关终端——模块缓存还在进程里
终端编码或字体引发的乱码式“红字”
有些报错看着像红字,其实是终端渲染问题:中文字体缺失、UTF-8编码未生效、或者ANSI颜色码被错误解析。尤其在WSL或远程SSH连接到Linux PowerShell时更常见。
先排除颜色干扰:在VSCode设置里搜
,关掉试试——如果红字变白字,说明只是着色逻辑误判
强制设编码:
加到profile里
Windows终端字体建议用
或
,避免用等宽性差的中文字体(如微软雅黑)
WSL环境下,确保
里
已生效,否则PowerShell输出的Unicode字符会被截断成问号或乱码
真正麻烦的不是报错本身,而是多个因素叠加:比如你改了
,但profile路径错了,里面又调了个新版PSReadLine——三者一起触发,红字就叠得根本看不清哪条是根因。逐项验证比瞎试快得多。
ExecutionPolicyMicrosoft.PowerShell_profile.ps1RestrictedGet-ExecutionPolicy -ListCurrentUserProcessSet-ExecutionPolicy RemoteSigned -Scope Process -ForceSet-ExecutionPolicy RemoteSigned -Scope CurrentUser -ForceLocalMachineUnrestrictedThe term '...' is not recognized as the name of a cmdlet$PROFILEWindowsPowerShellpowershell.exepowershell7\pwsh.exeGet-Command powershell$HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1WindowsPowerShellpowershell.defaultVersion"terminal.integrated.profiles.windows": {"PowerShell 7": {"path": "pwsh.exe"}}PSReadLineSystem.MissingMethodExceptionUnable to load DLL 'libuv'Get-Module PSReadLine -ListAvailableUninstall-Module PSReadLine -RequiredVersion 2.2.6 -ForceInstall-Module PSReadLine -RequiredVersion 2.1.0 -ForceCtrl+Shift+PPowerShell: Restart Current Sessionterminal.integrated.enableColorSupport$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'Cascadia CodeConsolas/etc/default/localeLANG=en_US.UTF-8ExecutionPolicy