上了大学接触嵌入式后遇到一些软件不能识别中文user文件路径导致报错,而网上大概有2中方法。
第一种就是创建一个新用户,但是要重新安装软件。第二种就是利用第三方软件修改注册表来改名字
我咨询了Microsoft社区了后有一个人分享了这个方法,十分管用,原理大概是创建了一个类似中转站的用户名,软件识别到是英文实际上数据还是你的中文用户提供,欺骗软件。
原社区文章作者是 王小石
当您的用户账户文件夹名称包含中文字符、特殊符号(例如空格)等特殊内容时,部分应用程序可能无法正常工作。此篇文章将提供一种解决方法以改善该问题。
适用于以下 Windows 版本:
Windows 7
Windows 8
Windows 8.1
Windows 10
Windows 11
详细信息
从 Windows Vista 开始,微软将用户配置文件存放到 C:\Users 文件夹(驱动器C通常为 Windows 启动分区,如果您使用的是中文语言看到的应该是 “C:\用户 “”文件夹),而在更早的版本中(例如 Windows XP )用户配置文件存放在 C:\Documents and Settings 这样的文件夹中,这样的变更带来了兼容性问题,一些程序将 C:\Documents and Settings 这样的路径固化在代码中,如果此路径不可访问程序将出现异常或者直接退出。
为了改善这个问题,微软使用了"符号链接",在 Windows Vista 及更高版本中当程序要访问 C:\Documents and Settings 这样的路径时,会自动重定向到 C:\Users 文件夹,这样在程序看来自己依然是在访问 C:\Documents and Settings 没有任何问题,但实际的数据读写都由 Windows 转到 C:\Users 完成。
此篇文章借鉴了这一做法,如果当前您的用户账户文件夹名称由于包含中文字符、特殊符号等内容导致某些程序无法正常工作时可以按照文章中的操作创建符号链接,将用户账户文件夹修改到名称更规范的路径上。让我们开始吧!
步骤
按下
键(Windows 徽标键 +R键),将打开“运行”对话框,复制以下命令粘贴到对话框中然后按回车键(Enter)执行:
POWERSHELL.EXE Start-Process POWERSHELL -ArgumentList """SET-ITEM ENV:USERNAME '$ENV:USERNAME';SET-ITEM ENV:USERPROFILE '$ENV:USERPROFILE';POWERSHELL""" -Verb RunAs |
命令将以管理员身份运行 PowerShell 并将一些必要的信息保留下来,随后请继续复制下面的命令并在 PowerShell 中粘贴执行:
$NEW_USERPROFILE="UserX";if ((Test-Path -path $ENV:USERPROFILE\..\$NEW_USERPROFILE) -EQ $False) {NET USER Temp /ADD;NET LOCALGROUP Administrators Temp /add;$SID= (New-Object System.Security.Principal.NTAccount $env:USERNAME).Translate([System.Security.Principal.SecurityIdentifier]).Value;REG EXPORT "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SID" "$env:PUBLIC\Desktop\User-$env:USERNAME-info.reg"} ELSE {"已经存在$NEW_USERPROFILE文件夹,请不要继续执行后面的命令"} |
当显示“操作成功完成。”时即表示命令结束,命令会新增一个名为 Temp 的账户并将其也设置为管理员,同时会在桌面上生成一个名为 “User-xxxx-info”的文件(xxxx为您的用户名),这是当前账户的注册表备份文件,请妥善保存生成的文件在出现错误时您还可以登录 Temp 账户打开该文件进行还原。
我建议把注册表文件保存在你的C盘里的用户文件夹里
确认“User-xxxx-info”文件已经正确生成后,请继续复制下面的命令并在 PowerShell 中粘贴执行:
if (Test-Path -path "$env:PUBLIC\Desktop\User-$env:USERNAME-info.reg") {CMD /C"MKLINK /J "%USERPROFILE%\..\$NEW_USERPROFILE" "%USERPROFILE%"";REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SID" /V ProfileImagePath /T REG_EXPAND_SZ /D (Resolve-Path $ENV:USERPROFILE\..\$NEW_USERPROFILE) /F} |
当显示“操作成功完成。”时即表示命令结束,命令会创建符号链接,并将用户账户文件夹修改为 UserX 完整路径为:C:\Users\UserX
当上述操作都成功完成后 PowerShell 中显示的内容应该和下面的示例图片相似,操作完成后请重新启动计算机,启动后 Windows 将使用 UserX 作为新的用户账户文件夹。
当然你还可以用自己想要的非中文名字
您可以将第二组命令中红色的 UserX 修改成您期望的名称,然后继续执行第三组命令即可。会创建您设定名称的符号链接。例如下面的修改将会创建名为 Xbox 的符号链接。在设置名称时请仅使用数字、字母的组合,不要包含其他特殊符号。文章来源:https://www.toymoban.com/news/detail-477434.html
$NEW_USERPROFILE="Xbox";if ((Test-Path -path $ENV:USERPROFILE\..\$NEW_USERPROFILE) -EQ $False) {NET USER Temp /ADD;NET LOCALGROUP Administrators Temp /add;$SID= (New-Object System.Security.Principal.NTAccount $env:USERNAME).Translate([System.Security.Principal.SecurityIdentifier]).Value;REG EXPORT "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SID" "$env:PUBLIC\Desktop\User-$env:USERNAME-info.reg"} ELSE {"已经存在$NEW_USERPROFILE文件夹,请不要继续执行后面的命令"}文章来源地址https://www.toymoban.com/news/detail-477434.html |
到了这里,关于中文用户名改为英文只要3步复制黏贴的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!