You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11下PowerShell脚本配置代理启动Anki2失败求助

Anki无法通过PowerShell脚本配置代理同步,Bat脚本正常的问题排查与修复

问题概述

Windows 11工作笔记本上,Anki2无法连接ankiweb.net同步学习进度。使用.bat脚本可正常完成同步,但PowerShell脚本启动Anki后出现连接错误:

Error details: ⁨error sending request for url (): error trying to connect: tcp connect error

可用的Bat脚本(anki-proxy.bat)

@echo off &SetLocal DisableDelayedExpansion
set /p USERNAME=<myuser>
set /p PASSWORD=<passwrd>


set "https_proxy=http://<myuser>:<passwrd>@mycompanyproxy-address:9090"
cd "C:\Users\<myuser>\AppData\Local\Programs\Anki"
start anki.exe
pause

出错的PowerShell脚本(anki2-proxy.ps1)

$proxyCreds=get-credential -username $env:username -message "Please put your Proxy password: "

Set-Variable http_proxy="http://{$proxyCreds.USERNAME}:{$proxyCreds.PASSWORD}@mycompanyproxy-address:9090"

Start "C:\Users\<myuser>\AppData\Local\Programs\Anki\anki.exe"

问题根源分析

  1. 环境变量作用域错误:PowerShell中Set-Variable仅创建PowerShell内部变量,并非进程级环境变量,Anki启动时无法读取该代理配置;而Bat脚本的set命令是设置当前进程的环境变量,Anki进程会直接继承。
  2. 变量语法与密码类型错误:
    • 用{}包裹变量是错误的PowerShell插值语法,应使用$()
    • Get-Credential返回的密码是SecureString类型,直接嵌入URL会导致格式异常
  3. 缺少HTTPS代理配置:Bat脚本设置了https_proxy,但PowerShell仅配置了http_proxy,而Anki同步使用HTTPS协议,必须对应设置https_proxy

修复方案

修正后的PowerShell脚本

# 获取代理凭据
$proxyCreds = Get-Credential -Username $env:USERNAME -Message "请输入代理密码:"

# 将SecureString密码转换为明文(注意:明文密码存在安全风险,仅在必要场景使用)
$plainPassword = [System.Net.NetworkCredential]::new("", $proxyCreds.Password).Password

# 设置进程级环境变量(Anki启动时会继承)
$env:http_proxy = "http://$($proxyCreds.UserName):$plainPassword@mycompanyproxy-address:9090"
$env:https_proxy = $env:http_proxy

# 启动Anki
Start-Process "C:\Users\<myuser>\AppData\Local\Programs\Anki\anki.exe"

关键修复点说明

  • 环境变量设置:使用$env:前缀配置进程级环境变量,和Bat脚本的行为逻辑一致,确保Anki能读取到代理信息
  • 密码处理:通过NetworkCredential将SecureString转换为明文,解决密码格式不兼容问题
  • 语法修正:用$()正确解析嵌套变量,避免URL格式错误
  • 补全HTTPS代理:同步请求依赖HTTPS,必须配置https_proxy才能建立连接

可选安全优化(避免明文密码)

如果公司支持系统自动代理配置,可跳过手动输入密码,直接让Anki使用系统代理:

# 启用系统代理自动检测
$env:HTTP_PROXY_AUTO_DETECT = "1"
$env:HTTPS_PROXY_AUTO_DETECT = "1"

Start-Process "C:\Users\<myuser>\AppData\Local\Programs\Anki\anki.exe"

内容的提问来源于stack exchange,提问作者WobblyWindows

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:32:43