feat: 添加文章

添加 IDEA 因为中文路径导致 Git Clone 报错的文章与修改 Windows 用户名的文章
This commit is contained in:
siujamo committed 2026-10-08 16:54:48 +08:00
1 parent 7ccf8be455
commit 8cb21379e0
5 files changed
+622 -1

No files matched your search

@@ -0,0 +1,185 @@
---
title: 将 Windows 用户名(用户目录)修改为英文的完整步骤
tags:
- windows
- user-profile
- registry
- troubleshooting
author:
name: Zihlu Wang
email: real@zihluwang.me
---
import { Kbd } from "@rspress/core/theme"
在 Windows 上使用中文用户名,系统本身能正常工作,却会给不少开发工具添麻烦——最典型的就是 [JetBrains IDE 用 SSH 方式 Clone 时反复要求输入密码](./jetbrains-git-ssh-clone-password-prompt.md)。根源在于用户目录 `C:\Users\张三` 里的非 ASCII 字符:Git、Node、Python、Docker 以及各类 CLI 工具在读取这条路径时各用各的编码,稍有不慎就会解析失败。
把用户名改成英文可以一劳永逸地解决这类问题。整个过程不算复杂,但对**步骤顺序**和**重启时机**比较敏感,下面按顺序逐步说明。
:::warning 开始之前
本文的操作会修改**注册表**和**用户配置文件目录**,属于有风险的操作。动手前请务必:
- 备份重要数据(尤其是桌面、文档、以及各类软件的配置目录);
- 确认当前账户拥有**管理员权限**;
- 建议先创建一个系统还原点,以便中途出问题时回退;
- 严格按本文的顺序执行,不要跳步,尤其是重启的时机。
:::
## 整体思路
Windows 里的「用户名」其实对应两样东西:
1. **账户显示名**——登录界面、开始菜单上看到的名字;
2. **用户配置文件目录名**——`C:\Users\<名字>` 这一层文件夹。
麻烦之处在于:Windows 不允许在用户处于登录状态时重命名它的配置文件目录;同时注册表里记录了这个目录的**绝对路径**,光改文件夹名而不改注册表,会导致下次登录时挂载不到原配置文件。
因此需要借助一个「过渡账户」来完成:
> 建临时账户 → 用它登录 → 改文件夹名 → 改注册表 → 回到原账户。
## 一、获取现有用户的 SID
以当前(中文用户名的)账户登录,打开 PowerShell 或命令提示符,执行:
```powershell
whoami /user
```
输出类似:
```text
用户信息
------------------
用户名 SID
================= ============================================
desktop-abc\张三 S-1-5-21-1234567890-1234567890-1234567890-1001
```
记下结尾那串 `S-1-5-21-...-1001`,它就是后面要找的 `{旧用户 SID}`。
如果想一次列出所有本地账户及其 SID,可以用:
```powershell
wmic useraccount get name,sid
# 或在较新版本的 PowerShell 中:
Get-LocalUser | Select-Object Name, SID
```
## 二、创建一个新的本地 Windows 用户
打开 `设置 → 账户 → 其他用户 → 添加账户`,在「如何登录?」这一步选择 **「我没有这个人的登录信息」**,接着选择 **「添加一个没有 Microsoft 帐户的用户」**,创建一个纯英文名的**本地账户**,例如 `tempadmin`。
创建完成后,在「其他用户」列表中选中该账户,进入「更改账户类型」,把它**提升为管理员**。
这个账户只是「过渡用」的,作用是让我们能在**原账户已注销**的状态下,去操作它的文件与注册表。
## 三、注销当前用户,登录新创建的账户
保存好手头的工作,注销当前账户,重启电脑,然后用刚才创建的临时账户登录。
## 四、重命名用户目录
在临时账户下打开**文件资源管理器**,进入 `C:\Users`,把 `张三` 重命名为你想要的英文名(例如 `JohnDoe`):
```text
C:\Users\张三 → C:\Users\JohnDoe
```
如果提示「文件夹正在使用」,说明原账户还有进程在运行(后台服务、同步网盘、常驻程序等)。可以先彻底重启再试,或者改用命令行重命名:
```powershell
Rename-Item -Path "C:\Users\张三" -NewName "JohnDoe"
```
:::tip 命名建议
新名字建议只用英文字母和数字,并且不要带空格。虽然 `C:\Users\zhang san` 也能用,但空格同样会让部分命令行工具出问题。
:::
## 五、修改注册表中的 ProfileImagePath
按 <Kbd>Win</Kbd> + <Kbd>R</Kbd>,输入 `regedit` 回车,打开注册表编辑器,定位到:
```text
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\{旧用户 SID}
```
也就是第一步记下的那串 SID 对应的项。双击右侧的 `ProfileImagePath`,把「数值数据」从:
```text
C:\Users\张三
```
改为:
```text
C:\Users\JohnDoe
```
确定后关闭注册表编辑器。
:::warning 这一步最关键
如果目录名改了、注册表却没改(或改错),下次登录会进入一个**临时配置文件**——桌面空白、文档为空,看起来像「用户数据全丢了」。其实数据还在 `C:\Users\JohnDoe` 里,只要回头核对 SID 与 `ProfileImagePath` 是否一致就能恢复。
另外,如果 `ProfileList` 下出现了两个相同 SID 的项,其中一个是带 `.bak` 后缀,说明此前发生过配置文件加载失败。此时应确保正确的那一项(不带 `.bak`)的 `ProfileImagePath` 指向新目录,并把重复项清理掉。
:::
## 六、注销临时账户并重启
再次注销临时账户,然后重启电脑。
## 七、登录原账户,等待 Windows 自动修复
用**原来的账户**登录(此时登录界面显示的名字可能还是中文,下一步再改)。登录过程中 Windows 会检测到配置文件路径的变化并自动修复,期间可能出现「正在准备 Windows」之类的提示,耐心等待它完成。
登录后确认两件事:
- `C:\Users\JohnDoe` 是你的用户目录,桌面、文档等个人文件都在;
- 打开命令提示符或 PowerShell 执行 `echo %USERPROFILE%`,输出应为 `C:\Users\JohnDoe`。
## 八、修正系统环境变量中的路径
右键 `此电脑 → 属性 → 高级系统设置 → 环境变量`,逐条检查**系统变量**与**用户变量**,把所有硬编码了旧路径的项,从 `C:\Users\张三\...` 改为 `C:\Users\JohnDoe\...`。
判断时注意区分:
- 形如 `%USERPROFILE%\AppData\...` 的项**不用改**,它会在运行时展开,会自动指向新目录;
- 只有**写死的绝对路径**才需要改,例如 `C:\Users\张三\scoop\shims`、`C:\Users\张三\AppData\Local\Programs\Python\Python312`;
- 用户变量里的 `TEMP`、`TMP` 通常是 `%USERPROFILE%\AppData\Local\Temp` 形式,一般无需修改。
## 九、修改账户的显示名
按 <Kbd>Win</Kbd> + <Kbd>R</Kbd>,输入 `control userpasswords2` 回车。在弹出的用户列表中选中原账户那一行,点击 **属性**,把「用户名」改为新的英文名,确定即可。
这一步只影响登录界面和界面里显示的名称,不改变 SID,也不会影响前面已经改好的目录。
## 十、清理临时账户(可选)
确认一切正常、重启后仍能正常登录之后,可以把过渡用的临时账户删掉:进入 `设置 → 账户 → 其他用户`,选中它并选择「删除」,再删掉 `C:\Users\tempadmin` 目录。
:::tip
删除前建议先重启一次并确认新账户一切正常,免得删完才发现还有问题需要回过头来用临时账户。
:::
## 改完之后:部分软件可能需要重装
用户名(用户目录)变更后,凡是把**绝对路径写进配置、服务、计划任务或快捷方式**的软件,都可能因为路径失效而无法启动或丢失配置。常见需要留意的有:
- **包管理器与运行时**——Scoop、Chocolatey、Anaconda、nvm,以及全局安装的 Node / Python 包,它们的 shims 和配置文件里往往写着旧路径;
- **开发工具**——JetBrains 系列 IDE(配置与缓存目录就位于旧路径下)、Docker Desktop、WSL 发行版、Git 的全局配置与凭据存储;
- **注册为服务的程序**——数据库、Web 服务器等,Windows 服务里通常固化了可执行文件与数据目录的绝对路径;
- **桌面快捷方式与「最近使用」列表**——可能全部失效;
- **各类云盘 / 同步客户端**——需要重新指定本地目录。
遇到这类情况时,**卸载后重新安装**通常是最省事、最可靠的处理方式;少数软件也可以通过重新指定路径或「修复安装」解决。建议改完用户名后,把日常使用的开发工具逐个打开验证一遍,发现异常就重装。
## 小结
把 Windows 用户名(尤其是用户目录)改成英文,是一次「一次疼、长期省」的操作:流程本身不复杂,但对步骤顺序和重启时机比较敏感。只要严格按顺序来——记 SID、建临时账户、改目录、改注册表、回来修正环境变量与显示名——就能顺利完成。
改完之后,[JetBrains IDE 用 SSH Clone 时要求输入密码](./jetbrains-git-ssh-clone-password-prompt.md) 这类由非 ASCII 路径引起的问题也会一并消失。
> 本文转载整理自抖音用户 **@90后科技说**,原视频地址:[https://v.douyin.com/2hqIZUsG9YM/](https://v.douyin.com/2hqIZUsG9YM/)