尧图精选

VSCODE/TRAE 设置新版 PowerShell:terminal.integrated.profiles.windows 与 defaultProfile 配置指南

🕒 发布时间:2026/10/2 11:59:55 📁 来源:尧图网络
1. 为什么 VSCODE 和 TRAE 的终端总在跑旧版 PowerShell如果你最近在 Windows 上装了 PowerShell 7兴冲冲打开 VSCODE 或 TRAE 的集成终端敲下$PSVersionTable结果PSVersion那一行还是5.1.x——别怀疑人生这不是你装错了而是编辑器默认还在调用系统自带的powershell.exe。这个问题的根源在于Windows 系统里同时存在两个可执行文件。老版本是C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe也就是 Windows PowerShell 5.1它随系统预装、路径固定、几乎不会变。新版本是 PowerShell 7可执行文件名是pwsh.exe通常装在C:\Program Files\PowerShell\7\pwsh.exe需要你手动下载安装。VSCODE 和 TRAE 的集成终端在默认配置下走的是source: PowerShell这条自动探测逻辑而这条逻辑在不少版本里会优先命中系统自带的 5.1于是你每次开终端看到的都是旧版。对日常写代码的人来说这个差异不是「版本号好看不好看」的问题。PowerShell 7 基于 .NET跨平台、启动更快、对 UTF-8 支持更好、||这类管道链式操作符可以直接用Get-ChildItem之类的命令输出也更规整。很多现代工具链比如一些 Node、Python 的脚本钩子默认假设你在用 pwsh一旦落到 5.1 上编码乱码、命令不识别、脚本报错就会接连出现。所以把集成终端切到新版是一件一次配置、长期受益的事。这篇内容聚焦的就是这个场景在 VSCODE 和 TRAE 里通过terminal.integrated.profiles.windows和integrated.defaultProfile.windows两个配置项把默认终端指向 PowerShell 7并演示重启终端后怎么验证版本号。适合刚装完 PowerShell 7、或者一直被旧版终端困扰的 Windows 开发者。下面我会先讲清楚配置写在哪、怎么写再给出可直接复制的 JSON 片段最后把常见的报错和排查路径列出来。2. TaoToken 前置准备让终端里的模型调用也能跑通配置终端本身不需要任何账号但如果你打算在 VSCODE 或 TRAE 里做 AI 辅助编码——比如用 Claude Code、Cline 这类工具或者直接在终端里调模型对话——那终端环境就是这些工具的运行底座。终端版本不对后面接模型时出现的报错会更难定位。所以这一步先把 TaoToken 的接入信息准备好后面配置完终端可以直接验证。TaoToken 是一个面向开发者的模型接入服务提供统一的 API 入口支持对话、代码补全、Agent 等场景。它的 API 地址是https://taotoken.net/api你需要在控制台创建一个 API Key然后在工具里填三样东西Base URL、API Key、Model ID。这三件套是后面所有接入动作的基础。具体操作路径是这样的先打开控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsole登录后在 API Keys 页面创建一个新的 Key复制保存好这个 Key 只显示一次。然后到接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc看一下你所用工具的配置格式不同工具对 Base URL 的写法略有差异有的要求带/v1有的直接填根路径。如果你只是想先验证模型能不能通可以用模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodels直接发一条消息确认 Key 有效、额度正常。这一步不依赖本地终端能帮你把「Key 问题」和「终端问题」分开排查。对于长期在 VSCODE 或 TRAE 里做编码、跑 Agent 的场景Coding Plan 会更合适它针对高频调用做了额度优化接入方式在https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan有说明。如果你用的是 Claude Code 这类命令行工具它的接入细节在https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code里配置项同样是 Base URL、Key、Model ID 三件套。这里要提醒一句终端配置和模型接入是两件事但它们在同一个环境里运行。终端版本旧可能导致某些 CLI 工具启动异常进而让你误以为是 Key 或网络问题。所以先把终端切到 PowerShell 7再去配模型工具排查链路会清晰很多。3. 可复制配置settings.json 里的 profiles 与 defaultProfile这一节是核心。VSCODE 和 TRAE 的终端配置都写在settings.json里区别只是打开设置界面的入口不同。TRAE 的话走「通用 → editor 设置」然后切到 JSON 视图VSCODE 直接按CtrlShiftP输入Preferences: Open User Settings (JSON)打开用户级配置。建议改用户级这样所有项目都生效如果你只想对某个项目生效就改工作区的.vscode/settings.json。先确认 PowerShell 7 的安装路径。默认安装位置是C:\Program Files\PowerShell\7\pwsh.exe。如果你装的是预览版路径可能是C:\Program Files\PowerShell\7-preview\pwsh.exe。不确定的话在旧终端里跑一句Get-Command pwsh | Select-Object Source它会直接告诉你pwsh.exe在哪。把路径记下来下面配置要用。然后是terminal.integrated.profiles.windows这个配置项定义「有哪些终端可选」。你要做的是新增一个名为PowerShell7的 profile把它的path指向pwsh.exe。注意source和path是两种不同的指定方式source: PowerShell是让编辑器自动探测path是硬编码可执行文件位置。我们要的是后者因为自动探测正是命中旧版的原因。{ terminal.integrated.profiles.windows: { PowerShell: { source: PowerShell, icon: terminal-powershell }, Command Prompt: { path: [ ${env:windir}\\Sysnative\\cmd.exe, ${env:windir}\\System32\\cmd.exe ], args: [], icon: terminal-cmd }, Git Bash: { source: Git Bash, icon: terminal-git-bash }, PowerShell7: { path: C:\\Program Files\\PowerShell\\7\\pwsh.exe, args: [], icon: terminal-powershell } } }这段 JSON 里PowerShell7就是新增的 profile。path用双反斜杠转义这是 JSON 字符串的写法别写成单反斜杠。args留空即可如果你想让 pwsh 启动时跳过配置文件可以填[-NoProfile]但一般不需要。icon只是终端标签页的图标不影响功能。接着是terminal.integrated.defaultProfile.windows这个配置项决定「默认用哪个 profile」。它的值必须和上面 profiles 里的键名完全一致注意大小写。很多人配完 profiles 却忘了改 defaultProfile结果开终端还是旧版就是漏了这一步。{ terminal.integrated.defaultProfile.windows: PowerShell7 }把这两段合并进你的settings.json。如果你原来已经有terminal.integrated.profiles.windows不要整个覆盖而是把PowerShell7这个键加进已有的对象里避免把 Git Bash、Command Prompt 这些原有配置弄丢。合并后的完整片段大概是这样{ terminal.integrated.defaultProfile.windows: PowerShell7, terminal.integrated.profiles.windows: { PowerShell: { source: PowerShell, icon: terminal-powershell }, Command Prompt: { path: [ ${env:windir}\\Sysnative\\cmd.exe, ${env:windir}\\System32\\cmd.exe ], args: [], icon: terminal-cmd }, Git Bash: { source: Git Bash, icon: terminal-git-bash }, PowerShell7: { path: C:\\Program Files\\PowerShell\\7\\pwsh.exe, args: [], icon: terminal-powershell } } }保存文件。VSCODE 和 TRAE 都会自动重载配置不需要重启整个编辑器。但已经打开的终端不会自动切换你需要关掉当前终端再新开一个或者点终端面板右上角的加号新建。新开的终端才会读取新的 defaultProfile。这里有个细节如果你在 TRAE 里找不到 JSON 视图可以在设置搜索框里直接搜terminal.integrated.defaultProfile.windows它会显示一个下拉框但下拉框里可能没有PowerShell7选项——因为下拉框只列出编辑器能自动探测到的 profile。这种情况下必须手动编辑 JSON把PowerShell7写进去。这也是为什么推荐直接改 JSON而不是依赖图形界面。4. 验证请求重启终端后确认版本号与模型调用配置写完接下来是验证。这一步分两层先确认终端本身切到了 PowerShell 7再确认在这个终端里跑模型工具没问题。第一层验证很简单。关掉所有已打开的终端按Ctrl新开一个。终端标签页上应该显示PowerShell7这个名字如果你配了 icon会显示对应图标。然后在终端里输入$PSVersionTable.PSVersion如果输出类似Major 7、Minor 4、Patch 2这样的结构说明已经是 PowerShell 7 了。再跑一句$PSVersionTable.PSEditionPowerShell 7 会返回Core而 5.1 返回的是Desktop。这两个命令组合起来能百分百确认版本。如果输出还是5.1.x说明 defaultProfile 没生效。先检查settings.json里defaultProfile.windows的值是不是PowerShell7大小写是否和 profiles 里的键名一致。再检查pwsh.exe的路径是否正确可以在文件资源管理器里粘贴那个路径看能不能找到文件。路径错了profile 会静默失败终端会回退到默认的 PowerShell 5.1。第二层验证是模型调用。假设你已经按第 2 节准备好了 TaoToken 的 Key可以在 PowerShell 7 里用curl或Invoke-RestMethod发一个测试请求。PowerShell 7 对Invoke-RestMethod的支持比 5.1 好尤其是 JSON 处理和 UTF-8 编码。示例$headers { Authorization Bearer 你的APIKey Content-Type application/json } $body { model 你的ModelID messages ( { role user; content 回复一句终端配置成功 } ) } | ConvertTo-Json -Depth 5 Invoke-RestMethod -Uri https://taotoken.net/api/v1/chat/completions -Method Post -Headers $headers -Body $body如果返回里有choices字段和内容说明终端环境、网络、Key 都通了。这一步能跑通后面接 Claude Code、Cline 之类的工具就只是填配置的问题。如果你更想先在网页上确认 Key 有效可以打开模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodels发一条消息两边对照着看能快速定位问题出在终端还是 Key。实测下来PowerShell 7 里Invoke-RestMethod对中文返回的处理明显更稳5.1 经常需要额外指定-Encoding才能避免乱码。这也是切新版的一个实际收益。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth配置过程中最容易撞上的几类报错这里逐个拆。注意这些报错有的属于终端配置问题有的属于模型接入问题要分开看。报错一终端开了还是 5.1$PSVersionTable显示 Desktop。这不是报错信息但表现最普遍。原因通常是三个defaultProfile.windows的值拼错、pwsh.exe路径不对、或者你改的是工作区配置但当前打开的项目没加载。排查顺序是先确认settings.json保存成功再确认路径存在最后确认改的是用户级还是工作区级。TRAE 里如果改的是「通用 → editor 设置」那是用户级全局生效。报错二401 Unauthorized。这是模型接入的典型错误和终端版本无关。说明 API Key 无效、过期、或者请求头格式不对。检查Authorization头是不是Bearer开头注意 Bearer 后面有一个空格Key 有没有复制完整前后不能有空格。如果 Key 是在控制台https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keys刚创建的确认没有误删。401 不会因为终端是 5.1 还是 7 而改变所以遇到它先查 Key。报错三local proxy failed或连接超时。这类错误通常出现在工具尝试走本地代理时。检查你的工具配置里有没有多余的代理设置Base URL 是不是写成了https://taotoken.net/api而不是带/v1的完整路径。不同工具对路径要求不同接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc里有对照表。另外确认系统环境变量里没有残留的HTTP_PROXY、HTTPS_PROXYPowerShell 7 里可以用Get-ChildItem Env: | Where-Object Name -match PROXY查一下。报错四reading choices相关错误比如cannot read property choices of undefined。这通常意味着请求发出去了但返回结构不是预期的 OpenAI 格式。可能原因Model ID 填错、Base URL 少了/v1、或者返回的是错误对象而不是正常响应。解决办法是先把原始返回打印出来看在 PowerShell 7 里用Invoke-RestMethod时加-StatusCodeVariable或者直接ConvertTo-Json输出完整响应。确认返回里有choices数组再检查 Model ID 是否在服务支持列表里。报错五OAuth 相关错误比如OAuth token expired或invalid_grant。如果你用的是 Claude Code 这类走 OAuth 的工具遇到这个说明令牌过期或授权失效。需要重新走一遍授权流程或者在工具配置里改用 API Key 方式接入。Claude Code 的接入说明在https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code里面区分了 OAuth 和 Key 两种模式按你的场景选。报错六CC Switch、Cline MCP、Codex auth.json 配置不生效。这三个工具都要求 Base URL、Key、Model ID 三件套齐全缺一个就会静默失败或报错。CC Switch 里检查 profile 是否选中Cline 的 MCP 配置检查 JSON 格式有没有多余逗号Codex 的auth.json检查字段名是否和文档一致。三件套里最容易错的是 Model ID不同工具对模型名的写法可能不同以接入文档为准。排查的核心思路是先分层再定位。终端版本问题看$PSVersionTableKey 问题看 401路径问题看 local proxy failed返回结构问题看 choices授权问题看 OAuth。每一层都有独立的验证手段不要混在一起猜。6. 把终端和模型接入串起来后续怎么用终端切到 PowerShell 7 只是第一步真正的价值在于它让后续的 AI 编码工具跑得更稳。你可以在新终端里直接启动 Claude Code或者配置 Cline 的 MCP 服务这些工具在 PowerShell 7 下的兼容性明显好于 5.1。如果你还没决定用哪个可以先从模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodels试几条感受一下响应速度和返回格式再决定接哪个工具。对于长期在 VSCODE 或 TRAE 里写代码的场景Coding Plan 的额度模型更适合高频调用接入方式在https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan。配置时记住三件套Base URL 填https://taotoken.net/apiKey 用控制台创建的Model ID 按文档填。终端这边只要$PSVersionTable显示 7.x环境就没问题。最后留一个实用技巧如果你同时用多个终端 profile可以在settings.json里给PowerShell7加overrideName: true这样标签页名字不会被自动改写。另外terminal.integrated.profiles.windows里的PowerShell那条建议保留万一pwsh.exe路径变了你还能切回自动探测的旧版应急。配置这东西留一条退路总没错。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →