关于升级win10导致环境变量和注册表中的盘符被修改为星号*这件事

坑爹的起因

  • 最开始是公司电脑可能被其它同事安装一些证书时弄的有点问题了,导致请求微信api、下载maven包等各种需要https的请求都会报PKIX path building failed相关错误,但这个不是一直报,多次请求后就不报了,过一会又报,可以参考原先的一些讨论https问题PKIX path building failed
  • 没办法,太费时间,想重装系统,但正好发现win10可以升级到新版本,所以先升级看看,直接用微软易升1909升到了20H2,然后测试了下请求https接口,太好了,正常了,不再出问题了,但接着悲剧就来了,请求java -version发现报错,打开环境变量一看,所有的D:\java...都变成了*:\java...,而且不单单是java的不行,只要是装在D盘中的路径相关,都变成星号了,没办法只能批量修改下所有的环境变量。
  • 但是修改后完全不管用啊,网上一搜还要修改注册表,我导出了整个注册表,批量检索了下关键字*:\,有1万多条,有点懵逼,批量修改了下(分关键字检索修改,因为有些*:\并不一定是要替换为D:\),然后导入注册表时又提示没有权限。。。额。。。

解决方法

  • 相关软件
    • Registry Finder,可以查找替换注册表,不需要在文本中自己替换了,但替换时还是会提示没有权限。
    • PsExec,可以以system权限打开相关软件,这样就可以有权限了。
  • 相关操作
    • 通过PsExec来打开Registry Finder,管理员身份打开cmd,切换到PsExec的解压目录,然后运行命令psexec.exe -i -d -s registry-finder应用全路径,这样打开的registry finder就有权限来修改注册表了。
    • Registry Finder的操作就不详细说了,右键根目录搜索关键字例如*:\Program,搜索出来后在导航栏Edit中选择Replace in Find Results,查找的输入*:\Program,替换的输入D:\Program,然后就会替换了。

其它

posted @ 2021-01-30 10:42  漫游云巅  阅读(512)  评论(0编辑  收藏  举报