HOWTO: 解决因配置 FolderLocations 引发的软件安装故障
还记得前段时间 gOxiA 分享的一篇日志“HOWTO: 解决 Windows DISM error ID3 0x80070003 故障”,由于在 Windows 安装应答文件(Unattend.xml)中配置了“FolderLocations”来重定向用户目录,导致在离线模式下使用 DISM 配置系统失败。虽然微软官方确认了这是一个已知问题,并且给出了解决方案,但是发现并不能完全解决所有问题,例如当用户在使用 Folerlocations 重定向用户目录的系统环境中安装 AutoCAD 时就会出现故障问题,如下图所示:
可以看到 AutoCAD 安装向导在许可协议界面报错“错误: 1606。无法访问网络位置 Autodesk\AutoCAD 2014\R19.1”。
根据提示搜索了 AutoCAD 官方文档也未获得准确的提示和解决办法,有网友称需要安装什么 Windows 7 补丁,其实根据排错发现引发该问题的主要根源就是因为重定向了用户目录,而 Public 这个用户目录路径未能更新到注册表响应的键值上,而这罪魁祸首还是因为 FolderLocations,Sysprep 虽然能够处理 FolderLocaltions 并成功移动 Users 目录到其他分区,但是却未能更新所有的注册表键值。
要解决这个问题,就需要手工编辑注册表,定位到如下路径,修改其下 Public 的键值,确保路径正确。
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders”
修改完毕后,重新启动安装程序,便可解决故障问题。gOxiA 有幸加入到了 WDG Windows 10 TAP 项目,决心将这个 Bug 提交给产品开发组,希望能彻底解决这个问题。(从排错过程看,FolderLocations 导致的 Bug 可能涉及底层一些东西,因为在 Default 相关配置数据并未存储在注册表中!)