根本原因是windows 12新安全模型与idea默认powershell集成冲突,需同时禁用terminal.use.conpty.on.windows、设置-dide.win.use.powershell=false,并避免中文/空格路径。

IntelliJ IDEA 在 Windows 12 下无法启动内置终端,或报错 failed to start [powershell.exe, -noexit, -executionpolicy...],根本原因不是 PowerShell 本身坏了,而是 IDEA 默认依赖的 PowerShell 集成路径与 Windows 12 新安全模型冲突 —— 尤其是 powershell-integration.ps1 脚本被系统策略拦截、执行策略绕过失效、或 CONPTY 终端子系统初始化失败。
terminal.use.conpty.on.windows 导致终端黑屏/闪退
Windows 12(预览版)默认启用更严格的 CONPTY(Console Pseudo-Terminal)沙箱机制,而 IDEA 2024.2+ 默认开启 terminal.use.conpty.on.windows。该选项在旧版 Windows 上提升终端响应,但在 Windows 12 下常触发权限拒绝或句柄泄漏。
- 按
Ctrl+Shift+A打开 Find Action,输入Registry进入注册表编辑器 - 搜索并找到
terminal.use.conpty.on.windows,取消勾选 - 重启 IDEA,终端将回落至传统 Win32 控制台模式,兼容性立即恢复
- 注意:禁用后 ANSI 颜色、部分快捷键(如 Ctrl+Shift+C/V)可能受限,但功能完整
PowerShell 执行策略绕过彻底失效
IDEA 启动终端时调用的命令形如:powershell.exe -NoExit -ExecutionPolicy Bypass -File "...powershell-integration.ps1"。Windows 12 已移除对 -ExecutionPolicy Bypass 的全局豁免能力,尤其当脚本位于非系统盘(如 D:\idea\...)或路径含中文(如用户名为“吴昊”)时,策略强制生效。
- 不要尝试以管理员身份运行 PowerShell 修改全局策略 —— Windows 12 中
Set-ExecutionPolicy对当前用户作用域已弱化 - 直接在 IDEA 中禁用 PowerShell 集成:打开
idea64.exe.vmoptions(位于bin/目录下),追加一行:-dide.win.use.powershell=false - 保存后重启,IDEA 将改用
cmd.exe初始化终端环境变量,跳过所有 PowerShell 脚本加载 - 该设置不影响你手动在终端里敲
powershell命令,只关闭 IDE 自动注入逻辑
插件路径含空格或 Unicode 字符引发启动失败
错误日志中出现类似 Failed to start [...] in E:\pythonweb\font\font\book,说明 IDEA 尝试在当前项目路径下执行集成脚本。若路径含中文、空格、或符号(如 &、(),PowerShell 进程启动时参数解析会崩溃,且 Windows 12 对此类路径的转义校验更严格。
- 临时规避:切换终端工作目录为纯英文无空格路径,例如
C:\dev\test - 永久修复:在
Settings → Tools → Terminal中,修改Shell path为绝对路径并显式包裹引号:"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" - 更稳妥方案:改用
cmd.exe作为默认 Shell(路径:C:\Windows\System32\cmd.exe),它对路径容错更强 - 避免将 IDEA 安装到含中文的路径(如
D:\软件\IDEA),重装时选C:\jetbrains\idea类路径
Windows 12 下的 PowerShell 兼容性问题核心不在版本高低,而在安全模型升级后,IDEA 旧有集成方式(脚本注入 + CONPTY + 策略绕过)被系统级拦截。绕过手段必须精准对应失效点 —— 关闭 CONPTY、禁用 PowerShell 自动集成、隔离敏感路径,三者缺一不可。任何试图“修复 PowerShell”的操作(如回滚到 2.0 或强行启用旧功能)在 Windows 12 上既无效也不安全。











