--- 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 按 Win + R,输入 `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` 形式,一般无需修改。 ## 九、修改账户的显示名 按 Win + R,输入 `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/)