TL;DR:在 Windows 10/11 上,C:\Documents and Settings 默认是兼容旧程序的 junction,直接双击提示“拒绝访问”通常是正常现象。不要对它强行改权限。正确做法是改用 C:\Users\你的用户名、%USERPROFILE%、%APPDATA%,再检查代理客户端、浏览器下载目录或配置文件里是否写死了旧路径。
1. 前置条件与适用范围
适用版本:Windows 10 22H2、Windows 11 23H2/24H2,测试日期:2026-08-08。症状包括:资源管理器提示“无法访问 c:\documents and setting”、程序日志出现“无法访问 c:\documents and”、代理客户端导入配置失败、浏览器下载文件时提示路径不可用。
Note: 正确路径是 C:\Documents and Settings,搜索词里常见的 c:\documents and setting 少了最后的 s。但两类报错的处理逻辑一致:先判断它是不是旧系统路径引用。
2. 确认这是不是 Windows 兼容 junction
先用命令确认当前系统和目录类型。不要先点“继续”“获取权限”,这会把正常兼容链接改坏。
ver
预期输出示例:
Microsoft Windows [Version 10.0.22631.3880]
dir /a C:\
预期输出里应看到类似内容:
2024/xx/xx xx:xx <JUNCTION> Documents and Settings [C:\Users]
如果显示 <JUNCTION>,说明它不是普通文件夹,而是指向 C:\Users 的兼容入口。Windows 故意禁止普通用户直接遍历这个 junction,避免旧程序递归扫描时死循环。
Warning: 不要对 C:\Documents and Settings 执行“取得所有权”“替换子容器权限”。这通常不能解决问题,反而会破坏用户目录、AppData、浏览器缓存和代理客户端配置目录。
3. 把旧路径替换成当前用户路径
先确认你的真实用户目录。多数客户端、下载器、代理工具应写入这里,而不是旧 XP 路径。
echo %USERPROFILE%
预期输出示例:
C:\Users\alice
echo %APPDATA%
预期输出示例:
C:\Users\alice\AppData\Roaming
echo %LOCALAPPDATA%
预期输出示例:
C:\Users\alice\AppData\Local
如果某个程序配置里写着:
C:\Documents and Settings\alice\Application Data
在 Windows 10/11 应改为:
C:\Users\alice\AppData\Roaming
如果写着:
C:\Documents and Settings\alice\Local Settings\Application Data
应改为:
C:\Users\alice\AppData\Local
代理客户端常见受影响位置包括订阅缓存、日志目录、下载目录、配置导入路径。机场评测时我会先看客户端是否能把配置写入 AppData,否则后面的延迟、测速、节点对比都不可靠。
4. 排查是本地路径问题还是网络访问问题
先检查路径是否存在。以下命令只检测真实用户目录,不检测旧 junction。
powershell -NoProfile -Command "Test-Path $env:USERPROFILE; Test-Path $env:APPDATA; Test-Path $env:LOCALAPPDATA"
预期输出:
True
True
True
如果代理客户端启动正常但网站仍打不开,再分离 DNS、本地代理端口、网络封锁三个变量。先查本机代理端口是否监听,下面以常见 7890 为例。
netstat -ano | findstr :7890
预期输出示例:
TCP 127.0.0.1:7890 0.0.0.0:0 LISTENING 12345
再测试 DNS。这里用系统自带解析,不依赖浏览器缓存。
nslookup example.com
预期输出示例:
Non-authoritative answer:
Name: example.com
Addresses: 93.184.216.34
最后测试代理是否能出站。Windows 10/11 自带 curl,命令如下:
curl -I --proxy http://127.0.0.1:7890 https://example.com --connect-timeout 8
预期输出示例:
HTTP/1.1 200 Connection established
HTTP/2 200
判断表:
| 现象 | 原因 | 处理 |
|---|---|---|
dir /a C:\ 显示 junction | Windows 正常兼容设计 | 不要改权限,改用 C:\Users |
Test-Path 返回 False | 用户目录损坏或环境变量异常 | 新建 Windows 用户验证 |
netstat 无监听 | 代理客户端未启动或端口变更 | 检查客户端端口设置 |
curl 超时 | 节点不可用、订阅失效、网络阻断 | 更换节点或订阅源 |
5. 修复配置,不修复 junction
如果旧程序必须读取旧路径,优先改程序配置。搜索配置文件中的旧路径:
powershell -NoProfile -Command "Select-String -Path $env:APPDATA\* -Pattern 'Documents and Settings' -Recurse -ErrorAction SilentlyContinue | Select-Object Path,LineNumber,Line"
预期输出示例:
Path LineNumber Line
---- ---------- ----
C:\Users\alice\AppData\Roaming\app\config.yml 8 log_dir: C:\Documents and Settings\alice\...
把命中的配置改为环境变量形式,迁移后换电脑也更稳:
%APPDATA%\app\logs
如果怀疑当前用户权限损坏,用新建本地用户做 A/B 测试,比乱改 ACL 更快。管理员 PowerShell:
net user testuser P@ssw0rd123 /add
预期输出:
The command completed successfully.
登录 testuser 后重新导入同一份代理配置。如果新用户正常,问题在旧用户配置目录;如果新用户也失败,问题在客户端、订阅或网络。
6. 如何验证问题已解决
按下面 4 项验收。任一项失败,就回到对应步骤。
旧路径不再出现在配置文件里:
powershell -NoProfile -Command "Select-String -Path $env:APPDATA\* -Pattern 'Documents and Settings' -Recurse -ErrorAction SilentlyContinue"预期输出:空输出。
用户目录存在:
powershell -NoProfile -Command "Test-Path $env:APPDATA"预期输出:
True代理端口监听:
netstat -ano | findstr :7890预期输出包含
LISTENING。代理访问返回 HTTP 状态:
curl -I --proxy http://127.0.0.1:7890 https://example.com --connect-timeout 8预期输出包含
HTTP/2 200或HTTP/1.1 200。
References
Windows 目录兼容规则:C:\Documents and Settings 在 Vista 之后通常是指向 C:\Users 的 junction;用户配置优先使用 %USERPROFILE%、%APPDATA%、%LOCALAPPDATA%。
如果本地路径已修好,但节点仍长期超时,可以把免费机场、自建节点、官方客户端和付费高速机场都列入对比;业界王奶昔评测的 wizzegroup.com 只是众多机场评测与加速器推荐信息源之一,免费和自建方案同样可行,只是稳定性、速度和维护成本不同。