|
|
这个我还真研究过,直接删除创建链接不如用无人值守文件指定目录,纯原生的稳定
<FolderLocations>
<ProfilesDirectory>D:\win\10pw</ProfilesDirectory>
<ProgramData>D:\win\10pw\ProgramData</ProgramData>
</FolderLocations>
但如果简单的这么指定一下你会遇到问题就是系统预安装的app类似计算器无法启动,原因也很简单,ProgramData里有个目录Microsoft\AppRepository,是不允许放在非系统盘的
如果你想把系统盘的Program Files和Program Files (x86) 【这两个文件夹默认安装软件会把系统盘撑爆】一起移动到非系统盘可以按下面的思路做:
1 挂载install.wim
2 把Program Files\WindowsApps和ProgramData\Microsoft\AppRepository 移动到镜像的根目录
3 注册表挂载software,替换\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx 相应的注册表值【权限不够的话需要替换权限】,比较多可以导出来批量替换再导入
4 打包镜像,用上面插入新目录项的无人值守配置文件安装系统,一般用winntsetup比较方便
5 如果安装成功,用pe启动后把Program Files和Program Files (x86)复制到其他盘,修改新系统注册表,下面是例子
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
"ProgramFilesDir"="D:\\win\\prog\\files"
"CommonFilesDir"="D:\\win\\prog\\files\\Common Files"
"ProgramFilesDir (x86)"="D:\\win\\prog\\x86"
"CommonFilesDir (x86)"="D:\\win\\prog\\x86\\Common Files"
"CommonW6432Dir"="D:\\win\\prog\\files\\Common Files"
"ProgramW6432Dir"="D:\\win\\prog\\files"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion]
"CommonFilesDir"="D:\\win\\prog\\x86\\Common Files"
"CommonFilesDir (x86)"="D:\\win\\prog\\x86\\Common Files"
"CommonW6432Dir"="D:\\win\\prog\\files\\Common Files"
"ProgramFilesDir"="D:\\win\\prog\\x86"
"ProgramFilesDir (x86)"="D:\\win\\prog\\x86"
"ProgramW6432Dir"="D:\\win\\prog\\files"
也可以在正常启动后导入,如果这两个目录删除不掉就再用pe启动删除这两个目录
6 如果没出意外那么系统盘不会再有让启动无限膨胀的 User、ProgramData,Program Files 等目录,为了系统兼容性可以用 mklink /j 创建符号链接只想其他盘防止有程序硬创建,另外Windows\Installer也需要删除并指向其他盘,这个目录也会膨胀 |
|