问题现象
在 VSCode 中安装 TraeCode: Coding Assistant 扩展后,不仅无法成功加载插件,还反复弹出文件:
C:\\Users\\1\\.vscode\\extensions\\marscode.marscode-extension-1.7.8\\resource\\aiserver\\aiServerMainV2.js
根本原因
TraeCode 扩展启动 AI Server 时,通过 child_process.spawn() 执行 aiServerMainV2.js。但 Windows 系统中 .js 文件的默认关联程序是 WScript.exe(Windows Script Host),而非 Node.js。Windows 安全策略拦截了 WScript 自动执行 .js 文件,导致弹窗循环。
诊断命令:
# 检查 .js 文件关联
(Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\\.js').'(default)'
# 输出: JSFile
# 检查 JSFile 的打开方式
(Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\\JSFile\\shell\\open\\command').'(default)'
# 输出: C:\\Windows\\System32\\WScript.exe "%1" %* ← 问题所在
# 确认 Node.js 已安装
node –v
# 输出: v24.10.0
# 确认 Node.js 路径
(Get-Command node).Source
# 输出: D:\\Software\\nvm\\nodejs\\node.exe
解决方法
通过用户级注册表(HKCU\\Software\\Classes)覆盖系统级 .js 文件关联,将打开方式从 WScript.exe 改为 node.exe。不需要管理员权限。
# 1. 创建用户级 .js 关联,指向 JSFile
New-Item –Path "HKCU:\\Software\\Classes\\.js" –Force | Out-Null
Set-ItemProperty –Path "HKCU:\\Software\\Classes\\.js" –Name "(default)" –Value "JSFile"
# 2. 覆盖 JSFile 的打开方式为 node.exe(替换为你自己的 node.exe 路径)
$nodePath = "D:\\Software\\nvm\\nodejs\\node.exe"
New-Item –Path "HKCU:\\Software\\Classes\\JSFile\\shell\\open\\command" –Force | Out-Null
Set-ItemProperty –Path "HKCU:\\Software\\Classes\\JSFile\\shell\\open\\command" –Name "(default)" –Value "`"$nodePath`" `"%1`" %*"
验证是否生效:
(Get-ItemProperty "Registry::HKEY_CLASSES_ROOT\\JSFile\\shell\\open\\command")."(default)"
# 应输出: "D:\\Software\\nvm\\nodejs\\node.exe" "%1" %*
修改完成后重启 VSCode 即可。
原理说明
Windows 注册表解析顺序:HKCU\\Software\\Classes(用户级)优先于 HKLM\\Software\\Classes(系统级),两者合并后构成 HKCR(HKEY_CLASSES_ROOT)。
因此,在用户级创建相同的键即可覆盖系统级设置,无需管理员权限,也不修改系统级原始配置。
影响范围
| 双击 .js 文件 | WScript.exe 执行 | Node.js 执行 |
| cscript xxx.js | 正常 | 不受影响 |
| wscript xxx.js | 正常 | 不受影响 |
| node xxx.js | 正常 | 不受影响 |
唯一变化:双击 .js 文件的执行方式从 WScript 变为 Node.js。
如何撤销
随时执行以下命令,即可完全恢复系统原始设置:
Remove-Item –Path "HKCU:\\Software\\Classes\\JSFile" –Recurse
Remove-Item –Path "HKCU:\\Software\\Classes\\.js" –Recurse
删除后,.js 文件关联自动回退到系统级设置(WScript.exe)。
撤销后重新应用
如果撤销后又需要恢复修复,重新执行一次解决方法中的命令即可:
# 重新创建用户级覆盖
New-Item –Path "HKCU:\\Software\\Classes\\.js" –Force | Out-Null
Set-ItemProperty –Path "HKCU:\\Software\\Classes\\.js" –Name "(default)" –Value "JSFile"
$nodePath = "D:\\Software\\nvm\\nodejs\\node.exe"
New-Item –Path "HKCU:\\Software\\Classes\\JSFile\\shell\\open\\command" –Force | Out-Null
Set-ItemProperty –Path "HKCU:\\Software\\Classes\\JSFile\\shell\\open\\command" –Name "(default)" –Value "`"$nodePath`" `"%1`" %*"
# 验证
(Get-ItemProperty "Registry::HKEY_CLASSES_ROOT\\JSFile\\shell\\open\\command")."(default)"
环境
- OS: Windows 11 Home China
- Node.js: v24.10.0 (via nvm, 路径 D:\\Software\\nvm\\nodejs\\node.exe)
- VSCode 扩展: marscode.marscode-extension-1.7.8
- 日期: 2026-09-10



