Windows更改用户文件夹名

部分软件不支持中文路径,但Windows注册的时候有些人可能用了中文用户名,因此这里提供两种方法将用户文件夹改为英文,各有优劣,自行选择。

法一不需要另外复制文件,但要修改注册表

法二不需要修改注册表,但要复制部分文件

环境

Windows 10/11

方法一:重命名文件夹并修改注册表

Step-0 创建还原点,备份注册表

这里用作意外操作失误时恢复系统的保险手段,各位自行百度,这里就不再做一遍演示了。

Step-1 登录另一个管理员账户

下面二个选项选其一操作即可

Option-1 新建一个管理员账户

控制面板 -> 用户账户 -> 管理其他账户 -> 在电脑设置中添加新用户

添加账户

将其他人添加到这台电脑 -> 我没有这个人的登录信息 -> 添加一个没有Microsoft账户的用户 ->输入用户名(英文)和密码,然后修改该账户的类型为管理员(Administrator)。然后注销要修改的账户,登录新账户。

Option-2 启用Administrator账户

前置条件

  • Windows 专业版

右键此电脑,计算机管理,找到用户和组,在用户里面打开administrator的属性,取消“账户已禁用”的钩。 然后注销你现在用的账户,再用administrator账户登陆,然后就有权限改这个文件夹的名字了。

家庭版没有此选项可用,建议是找个序列号升级到专业版后操作,当然你也可以按其他教程的方法在家庭版开启Administrator

Step-2 重命名用户名文件夹

改你原来的用户文件夹名字

可能遇到的问题

文件夹被占用

结束占用的进程ctrl+alt+del 呼出任务管理器 -> 性能 -> 打开资源管理器 -> CPU -> 关联的句柄 ->搜索句柄,结束他,然后重新重命名,就OK了。

资源管理器

Step-3 更改注册表下用户对应值

改完名字以后,按win+R键,输入regedit进注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList,找到你原来目录名字的项,更改ProfileImagePath键为新的目录名就好了。

改完重启一下然后执行下一步。

更改注册表下用户对应值

Step-4 批量替换注册表相关路径值

这里我电脑上搜到4000+项相关值,手动是不可能了,这里给出一个注册表修改工具和自己写的Python脚本。

修改前还是建议先备份一下。

使用Registry Workshop修改

到Registry Workshop官网下载免费试用:http://www.torchsoft.com/en/download.html

1. 搜索

ctrl+F搜索Users\用户名,不区分大小写搜索

这里因为直接用了别人的图,所以图中是C:\Users\用户名并且选中了区分大小写的选项,实际上注册表里面这部分路径有时是以%环境变量%\users\用户名的形式出现的,而且路径是大小写不敏感的。

搜索<code>Users\用户名</code>

出来如下结果

搜索结果

2. 替换

然后ctrl+R

这里一样的,去掉C:\和区分大小写选项

批量替换

把含有“中文用户名”的地方,替换成对应的英文即可

使用Python脚本修改

前置条件

  • Python 3+

写的一个小脚本,有些小瑕疵,但一般你原来的用户名不是那种很容易出现的(可能会把别的地方同名改了)都没问题

  1. old_user_name改成你原来的用户名
  2. new_user_name改成你现在的用户名
  3. 运行脚本
  4. 手动处理脚本无法更改的一些值(可能会有2~3个值没权限或者长度太长改不了),这里重新跑一次脚本,会显示出来
import winreg
import json
import time

old_user_name = r"原来的用户名"
new_user_name = r"要改的用户名"

# 记录更改
logs = []

# 根注册表键
root_keys = [
    {"key": winreg.HKEY_CLASSES_ROOT, "path": "HKEY_CLASSES_ROOT"},  # 存储应用和shell的信息
    {"key": winreg.HKEY_CURRENT_USER, "path": "HKEY_CURRENT_USER"},  # 当前用户自定义的信息
    {"key": winreg.HKEY_LOCAL_MACHINE, "path": "HKEY_LOCAL_MACHINE"},  # 计算机系统所有的信息
    {"key": winreg.HKEY_USERS, "path": "HKEY_USERS"},  # 所有用户信息
    {"key": winreg.HKEY_PERFORMANCE_DATA, "path": "HKEY_PERFORMANCE_DATA"},  # 性能数据
    {"key": winreg.HKEY_CURRENT_CONFIG,
        "path": "HKEY_CURRENT_CONFIG"},  # 本地计算机系统的硬件配置文件
    {"key": winreg.HKEY_DYN_DATA, "path": "HKEY_DYN_DATA"},  # windows98后的版本无法使用
]

keys = []
keys.extend(root_keys)

cnt = 0
errors_cnt = 0

while keys:
    _key = keys.pop()
    key = _key["key"]
    path = _key["path"]
    try:
        sub_keys_num, values_num, last_modified_time = winreg.QueryInfoKey(
            key)
    except OSError:
        continue

    # 遍历键值
    for i in range(values_num):
        value_name, value, value_type = winreg.EnumValue(key, i)

        if type(value) == str:
            # 不分大小写匹配,user\old_user_name容错用户名
            target = "users\ + old_user_name
            target = target.lower()
            _value = value.lower()

            if _value.find(target) != -1:
                cnt += 1

                print(f"[+]Found source in {path}: {value}")

                new_value = value.replace(old_user_name, new_user_name)
                try:
                    winreg.SetValueEx(key, value_name, 0,
                                        value_type, new_value)

                    log = {"path": path, "value_name": '',
                            "value_type": value_type, "old_value": value, "new_value": new_value}
                    logs.append(log)
                except OSError:
                    # 传递给系统调用的数据区域太小。
                    errors_cnt += 1

    # 遍历子键
    for i in range(sub_keys_num):
        try:
            sub_key_name = winreg.EnumKey(key, i)

            # 访问子键未命名值
            value = winreg.QueryValue(key, sub_key_name)

            if type(value) == str:
                # 不分大小写匹配,user\old_user_name 用户名
                target = "users\ + old_user_name
                target = target.lower()
                _value = value.lower()

                if _value.find(target) != -1:
                    cnt += 1

                    print(f"[+]Found source in {path}: {value}")

                    new_value = value.replace(old_user_name, new_user_name)
                    value_type = winreg.REG_SZ
                    try:
                        winreg.SetValue(key, sub_key_name,
                                        value_type, new_value)

                        log = {"path": path+"\+sub_key_name, "value_name": '',
                                "value_type": value_type, "old_value": value, "new_value": new_value}
                        logs.append(log)
                    except OSError:
                        # 传递给系统调用的数据区域太小。
                        errors_cnt += 1

            # 插入子键到键表
            sub_key = winreg.OpenKey(
                key, sub_key_name, access=winreg.KEY_ALL_ACCESS)
            _sub_key = {"key": sub_key, "path": path+"\+sub_key_name}
            keys.append(_sub_key)
        except (PermissionError, OSError):
            continue

print(f"[=]{cnt} value matched, {cnt-errors_cnt} replaced, {errors_cnt} errors.")

# 把修改记录保存到 regedit_log_*.json 文件下
file_name = "regedit_log_" + str(time.time()) + ".json"
with open(file_name, "w", encoding="utf-8") as f:
    f.write(json.dumps(logs, ensure_ascii=False, indent=4))
print(f"[+]logs saved into {file_name}")

方法二: 新建新账户,并做账户数据同步与转移

没试过这个方法,转载来的

  • 打开设置(或控制面板)在帐户(也叫做用户帐户)中新建一个帐户,这个帐户必须是是本地帐户。新建时填写的用户名便是 User 目录下的显示名称(浏览器中点击图片看高清大图)。

新建本地账户

  • 紧接着提权到管理员权限。

更改账户类型为管理员

Win10 2017年2月更新后,单纯的新建本地账户不会出现新文件夹,要先注销然后登陆那个本地账户才能出现!!!

登陆之后User就有这个文件夹了,这个不要担心,先进行下一步:

  • 点最后一个菜单,将当前帐户(旧帐户)的自动同步设置开启!开启!开启(Win 8、8.1、10 都有此功能,而且默认的是开启的,下面的图是 错!误!示!范!)

错误示范

  • 当前帐户切换到本地。

切换账户到本地

注销,登陆刚刚创建的本地账户。 在新创建的帐户中登陆微软帐号,开启同步设置,这样就好了。

由于有些用户数据如桌面、我的文档,AppData还残留在旧的账户里,所以可以将旧账户里面的对应数据直接复制到新账户里即可

简单点就是,新建本地帐户,填写想要的用户名,在新帐户中登陆微软帐号,同步设置,能节省一大堆麻烦的事情。

参考

[1] 如何更改C盘user文件夹中账户文件夹的名字

[2] win10系统怎么修改c盘user文件夹下的计算机名称? - 浩瀚猫的回答 - 知乎

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇