//---------------------------------------------//---------------------------------------------//
//--------------------------- 缩写：WIT，全名: Windows Install Tool。----------------------------//
//---------------------------------------------//---------------------------------------------//


！！！安装系统属于危险操作，测试时请预先注意备份数据！！！
！！！在桌面重装系统，建议在空机上测试，以免丢失数据！！！


//---------------------------------------------//---------------------------------------------//
//------------------------------------------/功能特征/-----------------------------------------//
//---------------------------------------------//---------------------------------------------//
- 在WinPE下或者在Win11、Win10、8.1、8、7、Vista、XP等桌面环境重装Windows系统。
- 安装系统的同时，提供众多的优化操作复选项，以及导入驱动和调用万能驱动助理、驱动总裁（.ISO格式）。
- 支持的映像格式：ESD、WIM、SWM、.SNA、.TBI和GHO（包括将这些映像文件放在ISO里面，例如微软原版ISO映像文件）。
- 管理.WIM映像文件（支持常见的操作：查看和修改信息、映像校验、映像优化、格式转换、分卷导出、映像捕获、映像挂载、映像卸载等）
- 支持将系统安装到.VHD、.VHDx虚拟磁盘中，并且支持在其系统桌面实现重装、差分以及差分还原。
- 支持.WA格式的插件，比如安装Win7的时候，通过调用.WA格式的插件来实现集成.NET组件等。
- 支持在桌面重装系统时给目标磁盘重新分区。

- [安装外置组件]说明：
  商务办公=基本安装+办公软件
  平面设计=商务办公+平面设计软件
  休闲娱乐=商务办公+休闲娱乐软件
	
  基本安装：
  iPack_Basic.7z		适用于 Win11/10/8.1/8/7
  iPack_7601.7z			适用于 Win7，基于 iPack_Basic.7z。
  iPack_2600_Alone.7z	适用于 WinXP，不依赖 iPack_Basic.7z。

//--------------------------------------------//-------------------------------------------//
//---------------------------/窗口热键：详见\Part\Help_Hotkey.txt/---------------------------//
//--------------------------------------------//-------------------------------------------//

//--------------------------------------------//-------------------------------------------//
//---------------------------/命令行参数：详见\Part\Help_Param.txt/--------------------------//
//--------------------------------------------//-------------------------------------------//

//---------------------------------------------//---------------------------------------------//
//--------------------------/CONFIG.INI说明：详见\Part\Help_Config.txt/-------------------------//
//---------------------------------------------//---------------------------------------------//


//---------------------------------------------//---------------------------------------------//
//------------------------------------------/已知问题/-----------------------------------------//
//---------------------------------------------//---------------------------------------------//
- 文件路径包含特殊字符时可能会识别错误，比如：【】
- 某些外设可能会导致挂载/卸载映像文件时卡死在操作VHD阶段，比如 ThinkPad X201 的内置读卡器插有TF卡时。

//---------------------------------------------//---------------------------------------------//
//------------------------------------------/注意事项/-----------------------------------------//
//---------------------------------------------//---------------------------------------------//
- “禁止跨版本更新推送”仅适用于1607或者更高版本的Win10
- 安装通用驱动的前提是使用环境满足驱动总裁或者万能驱动运行的需求
- 映像挂载卸载使用 DISM 及 MOUN，映像导出合并使用 DISM，因为 Wimlib 不支持这些操作。
- .WIM映像挂载时，会自动挂载到 VHD（剩余空间最大的分区:\MountVHD.vhd）上，自动确定挂载盘符。
- 全程无人值守安装时可以自定义用户账户名和计算机名，输入方式为：用户名/计算机名，计算机名省略则为默认。
- 安装系统更新补丁是在部署中阶段执行的；此处安装补丁后不重启，Win10在首次登陆桌面后必须重启一次才能生效。

- 在桌面重装系统时采用的重启环境，优先级如下：
  - 1. \Boot\Boot.wim （留给用户自定义）
  - 2. \Boot\Boot_x64.wim \Boot\Boot_x86.wim（程序自带，推荐使用）
  - 2. EasySetup 量产U盘的 \Sources\Boot_x64.wim \Sources\Boot_x86.wim
  - 3. 与安装源映像文件同级目录的 boot.wim 的第二卷 （使用ISO映像的情形）
  - 4. 安装源映像文件内的 \Windows\System32\Recovery\WinRE.wim
  - 5. 当前系统的 WinRE.wim \Recovery\WindowsRE\WinRE.wim
  - 6. 按照程序的提示，实时手动指定。

//---------------------------------------------//---------------------------------------------//
//-----------------------------------------/命令行参数/----------------------------------------//
//---------------------------------------------//---------------------------------------------//
目前命令行仅支持[安装/恢复]模块，示例：
WIT.exe -Search -ACT -UNA
WIT.exe -Source:"D:\Install.wim" -wimIndex:2 -InstPart:D: -BootRepair:1 -BootPart:Auto -Shut:2 -UAC -UNA -Silent

-Source - 指定映像文件（.esd .wim .gho .sna .tbi .iso），比如：-Source:"D:\Install.wim"或者-Source:"D:\Win11x64.iso"。
-wimIndex - ESD/WIM指定映像文件的卷号，不指定或者省略本参数则默认选择卷1（在.ISO中的也可以，比如原版.ISO镜像），与-Source配合使用。

-InstPart - 指定目标系统盘符，比如：-InstPart:H:。
-BootRepair - 1为勾选“引导分区”复选项，0为不勾选，没有本参数时程序默认勾选，比如：-BootRepair:1。
-BootPart - 指定引导分区，Auto为自动确定引导分区，比如：-BootRepair:Auto或者-BootRepair:H:，无此参数则默认为 -BootRepair:Auto。

-OEMDrv - 指定用户驱动的文件包或者文件夹，比如：-OEMDrv:"D:\W10Drive"或者-OEMDrv:"D:\W10Drive.7z"
-SRSDrv - 指定用户驱动的文件包或者文件夹，比如：-SRSDrv:"U:\CeoMSX_4.0_20240116_LITE.iso"
-UNIDrv - 指定用户驱动的文件包或者文件夹，比如：-UNIDrv:"U:\DrvCEO_Win10_Win11_x64.iso"
-Rescue - 指定作为急救环境的PE包，比如：-Rescue:"D:\10PEx64.wim"

-ACT - 1为勾选“自动激活/导入公用密钥”复选项，0为不勾选，比如-ACT:0或者-ACT:1，-ACT等同于-ACT:1（如适用）。
-UNA - 1为勾选“全程无人值守”复选项，0为不勾选，比如-UNA:0或者-UNA:1，-UNA等同于-UNA:1（如适用）。
-HDI - 1为勾选“导入旧系统驱动”复选项，0为不勾选，比如-HDI:0或者-HDI:1，-HDI等同于-HDI:1（如适用）。
-SRS - 1为勾选“注入SRS/USB驱动”复选项，0为不勾选，比如-SRS:0或者-SRS:1，-SRS等同于-SRS:1（如适用）。
-RST - 1为勾选“注入英特尔RST驱动”复选项，0为不勾选，比如-RST:0或者-RST:1，-RST等同于-RST:1（如适用）。
-TRV - 1为勾选“禁止跨版本更新推送”复选项，0为不勾选，比如-TRV:0或者-TRV:1，-TRV等同于-TRV:1（如适用）。
-RTP - 1为勾选“关闭系统的实时保护”复选项，0为不勾选，比如-RTP:0或者-RTP:1，-RTP等同于-RTP:1（如适用）。
-UAC - 1为勾选“静默提升权限”复选项，0为不勾选，比如-UAC:0或者-UAC:1，-UAC等同于-UAC:1（如适用）。
-UDT - 1为勾选“转移用户文档”复选项，0为不勾选，比如-UDT:0或者-UDT:1，-UDT等同于-UDT:1（如适用）。
-NET - 1为勾选“集成.NET3.5”复选项，0为不勾选，比如-NET:0或者-NET:1，-NET等同于-NET:1（如适用）。
-ONE - 1为勾选“移除OneDrive”复选项，0为不勾选，比如-ONE:0或者-ONE:1，-ONE等同于-ONE:1（如适用）。
-ORD - 1为勾选“部署过程理顺盘符”复选项，0为不勾选，比如-ORD:0或者-ORD:1，-ORD等同于-ORD:1（如适用）。

-Shut - 1为勾选“关机”复选项，2为勾选“重启”复选项，比如：-Shut:1，建议配合-Silent参数使用。
-Silent - 自动静默执行（没有-Source参数时此参数无效）
-Search - 启动时打开[映像查找]对话框并查找映像文件

附加说明：
  • 同一参数，命令行参数会覆盖 Config.ini 中对应的设置！
  • 使用多个运行参数时，-Source 必须是首个参数（可以省略字符“-Source:”），其他参数不分先后顺序！
  • -SRS 和 -SRSDrv 任选其一；-SRS 是否能起作用，取决于程序启动的时候是否在预设的路径下搜索到可用的文件包。

//---------------------------------------------//---------------------------------------------//
//------------------------------------------/文件列表/-----------------------------------------//
//---------------------------------------------//---------------------------------------------//
│  
├ 读我文件.txt      
├ Config.ini        保存程序的可定义参数
├ WIT_x86.exe       32位版本的WIT主程序
├ WIT_x64.exe       64位版本的WIT主程序
├ WimScript.ini     捕获.ESD、.WIM映像使用的过滤配置文件
│ 
├ x64/x86
│   │   
│  !├ Ghost.exe     .GHO格式支持组件
│  !├ GhoPWD.exe    .GHO映像解密程序
│   │ 
│   ├ BCDEdit.exe   BCD菜单编辑器（兼容XP）
│   ├ BCDBoot.exe   NT6引导写入程序（兼容XP）
│   ├ Bootsect.exe  NT6引导扇区处理程序（兼容XP）
│   │ 
│   ├ Coreinfo.exe     检测CPU是否支持64位指令集（非必须，没用上）
│   ├ DetectLN-MT.exe  检测CPU是否支持64位指令集（仅x86环境需要）
│   ├ 
│   ├ WirelessKeyView.7z  获取无线网络连接的账号密码等信息，解压密码：WKey4567#。
│   │ 
│   ├ wofadk.reg          使 Windows 8/7 支持 Wimboot 和 Compact 的组件（已废弃，从25H1.0.0_TEST77开始改为程序直接写入）
│   ├ wofadk.sys          使 Windows 8/7 支持 Wimboot 和 Compact 的组件
│   ├ WimBootCompress.ini 使 Windows 8/7 支持 Wimboot 和 Compact 的组件
│   ├ WimExtract.ini      使 Windows 8/7 支持 Wimboot 和 Compact 的组件
│   ├ 
│  #├ fbwf.cfg      修改二次运行环境X:盘容量为32GB的组件
│  #├ fbwf.sys      修改二次运行环境X:盘容量为32GB的组件
│   ├ 
│   ├ libcdi.dll    读取磁盘健康度的动态链接库（未启用）
│   ├ tbs.dll       读取TPM信息的动态链接库
│   ├ 
│   ├ Reg.exe
│   ├ 
│   ├ Snapshot.exe  .SNA映像文件支持组件
│   │ 
│   ├ Imagew.exe    .TBI映像文件支持组件
│   ├ Ifw.ini       Imagew.exe的注册信息文件
│   │   
│   ├ 7Z            7-ZIP 9.35 Beta，用于释放压缩包、检测万能驱动7/驱动总裁驱动包是否匹配，以及获取文件的SHA256校验值。
│   │   ├ 7Z.dll
│   │   ├ 7Z.exe
│   │   
│   ├ OSFMount     （缺失的话，自动以程序内置的 ImDisk 代替）备用的虚拟光驱组件，给 Win7 及更低版本的系统提供 ISO 映像挂载支持。
│   │   ├ OSFMount.com
│   │   ├ OSFMount.sys
│   │   
│   ├ Wimlib        Wimlib组件，用于ESD/WIM映像文件释放，以及维护操作。
│   │   ├ libwim-15.dll
│   │   ├ wimlib-imagex.exe
│   │   
│   ├ DISM          DISM组件，用于处理驱动，离线集成更新补丁，离线精简APPx，以及WIM映像文件挂载处理。
│   │   ├ dism.exe
│   │   ├ dismcore.dll
│   │   ├ dismcoreps.dll
│   │   ├ dismprov.dll
│   │   ├ ffuprovider.dll
│   │   ├ folderprovider.dll
│   │   ├ logprovider.dll
│   │   ├ imagingprovider.dll
│   │   ├ wimprovider.dll
│   │   ├ wimgapi.dll
│   │   ├ wimserv.exe
│   │   ├ 
│   │   ├ zh-cn
│   │   │   ├ dism.exe.mui
│   │   │   ├ dismcore.dll.mui
│   │   │   ├ dismprov.dll.mui
│   │   │   ├ ffuprovider.dll.mui
│   │   │   ├ folderprovider.dll.mui
│   │   │   ├ logprovider.dll.mui
│   │   │   ├ imagingprovider.dll.mui
│   │   │   ├ wimprovider.dll.mui
│   │   │   ├ wimgapi.dll.mui
│   │   │   ├ 
│   │   
│   
├ Part
│   ├ NT5_Inject.exe  （仅 NT5 系统使用）用于部署过程中配合ES4的配置文件进行扩展处理的工具（已并入 WIT_Inject.exe）
│   ├ WIT_Inject.exe  用于部署中阶段运行万能驱动7/驱动总裁的工具，以及 NT5 系统在部署过程中配合ES4的配置文件进行扩展处理。
│   ├ Robocopy.exe    备用文件，在执行文档转移时，如系统中缺少该程序则调用之。
│   ├ mfc42u.dll      上述 Robocopy.exe 配套的 DLL 运行库文件。
│   │ 
│   ├ FirstUXBackground.bmp  Win7部署背景图（非必须）
│   │ 
│   ├ Help_Hotkey.txt        本程序的窗口热键说明
│   ├ Help_Config.txt        本程序的配置文件说明
│   ├ Help_Param.txt         本程序的运行参数说明
│   │ 
│   ├ iPack_bootInst.7z      一键还原组件
│   ├ iPack_WindSLIC.7z      SLIC硬激活工具/MAS激活工具
│   ├ iPack_SHIE.7z          右键菜单组件（已并入到 WIT_Inject.exe）
│   │ 
│   ├ iPack_OrderDrv.7z      理顺盘符组件
│   ├ iPack_Themes.7z        窄边框主题文件（仅适用于 Win7）
│   ├ iPack_StartIsBack.7z   开始菜单工具（仅适用于 Win8.1）
│   ├ iPack_GenuineTicket.7z  Win11/10 数字门票以及公用密钥
│   │ 
│   ├ iPack_TGV.ini     Win11/10 的版本标识，用于处理禁止跨版本更新推送。
│   ├ 
│   ├ SendEmail.exe     配合“关于”对话框的“系统信息”页面的“反馈”按钮发送反馈邮件
│   ├ DumpEDID.exe      获取LCD显示屏的最佳分辨率（已废弃）
│   ├ 
│  ?├ esdDecrypt.exe    ESD 映像解密程序
│  ?├ esdkey.txt        ESD 映像解密密钥，配合 esdDecrypt.exe 使用。
│   ├ 
│   
├ Boot
│  #├ boot.sdi              WinPE启动组件（来自于无忧论坛的某修改版，体积小而且兼容性好）
│  -├ bootmgr               WBM启动管理器 (来自于 Win11_23H2_10.0.22621.2428，\Windows\boot\PCAT\)
│  -├ bootmgrfw_x64.efi     WBM启动管理器 (来自于 Win11_23H2_10.0.22621.2428，\Windows\boot\EFI\)
│  -├ bootmgrfw_x86.efi     WBM启动管理器 (来自于 Win10_1511_10.0.10586，\install.wim\Windows\boot\EFI\)
│  -├ bootmgrfw_x64.efi.mui WBM启动管理器简体中文语言资源 (来自于 Win11_23H2_10.0.22621.2428，\Windows\boot\EFI\zh-CN\)
│  -├ bootmgrfw_x86.efi.mui WBM启动管理器简体中文语言资源 (来自于 Win10_1511_10.0.10586，\install.wim\Windows\boot\EFI\zh-CN\)
│   ├ 
│   ├ chs_boot.ttf  WBM启动管理器简体中文字体(来自于 Win11_23H2_10.0.22621.2428，\Windows\boot\EFI\Fonts\；缺失时全盘搜索文件夹\Windows\Boot\Fonts\获取，但不一定适用。）
│   ├ wgl4_boot.ttf WBM启动管理器简体中文字体(来自于 Win11_23H2_10.0.22621.2428，\Windows\boot\EFI\Fonts\；缺失时全盘搜索文件夹\Windows\Boot\Fonts\获取，但不一定适用。）
│   ├ 
│  +├ boot_x64.wim  在桌面重装系统的重启环境 (用于UEFI64或者LEGACY的环境)
│  +├ boot_x86.wim  在桌面重装系统的重启环境 (用于UEFI32或者纯32位的环境)
│   ├ 
│   ├ NTDETECT.COM  修复XP引导时可能用到的引导文件
│   ├ NTldr         修复XP引导时可能用到的引导文件
│   ├ Vhdldr        以VHD方式安装XP时用到的引导文件
│   ├ 
│   
├ Drivers
│   ├ Serial_IO_x64.7z  触控板驱动，用于PE环境（非必须）。
│   ├ VMDRST_x64.7z     大容量磁盘控制器驱动，用于在PE环境进行安装以及离线注入目标系统。
│   ├ 
│   ├ WinVBlock.7z      以VHD方式安装XP时需要用到的VHD驱动
│   ├ SVBus.7z          以VHD方式安装XP时需要用到的VHD驱动
│   ├ 

? 不需要ESD解密则可以删除
! 不需要GHOST支持则可以删除
- 在处理各种引导问题时需要用到
# 不需要在添加PE到启动菜单以及桌面重装系统则可以删除
+ 在桌面重装系统时用到，机器已连接WIA2020装机U盘、系统环境下或者安装包带有WinRE包时可删除。

NOTE:
  DISM 组件在系统中存在时，可以删除WIT自带的。
  OSFMount 1.5.1018.0 在某些环境下会导致挂载失败，换成 1.5.1015.0 则正常！
  Ghost 和 7Z 组件可以统一使用32位的版本放在 \Part\ 文件夹下（在64位环境下使用时需要32位程序支持）
  Ghost.exe 运行需要的支持文件：sspicli.dll secur32.dll。

//---------------------------------------------\/---------------------------------------------//


WIT2020 + Windows PE 10.0.19041.508
%Windir%\System32\wldp.dll							启动出错
%Windir%\System32\TextShaping.dll					界面无文字
%Windir%\System32\Windows.FileExplorer.Common.dll	FILE指令复制文件失败
%Windir%\System32\drvstore.dll						用DISM++集成驱动需要
%Windir%\System32\Input.dll							用DISM对离线映像进行国际化设置时出现87错误


//---------------------------------------------//---------------------------------------------//
//------------------------------------------/引导修复/-----------------------------------------//
//---------------------------------------------//---------------------------------------------//
//修复流程.自动确定引导分区时//-----------------------------
常规安装 MBR：          同盘已激活分区->它盘已激活主分区->同盘FAT主分区->它盘FAT主分区	MBR+NTFS分区则BIOS单激活，MBR+非NTFS分区时双激活。
常规安装 GPT：同盘ESP分区->它盘ESP分区->它盘已激活主分区->它盘FAT主分区					ESP分区则UEFI单激活，MBR+NTFS分区则BIOS单激活，MBR+非NTFS分区时双激活。
VHD/VHDX安装：             它盘ESP分区->它盘已激活主分区->它盘FAT主分区					ESP分区则UEFI单激活，MBR+NTFS分区则BIOS单激活，MBR+非NTFS分区时双激活。

说明：
- 如果引导分区是FAT32/FAT16主分区，则建立EFI/BIOS双引导。
- 搜索它盘遇到存在多个符合条件的分区时，终止执行且不采用：
  - 如果处于单独运行引导修复的状态，则终止执行后弹窗提示。
  - 如果处于系统安装的状态，则在开始之前进行检测，终止执行后弹窗提示。

切记要点！！！
 - 对于系统分区和引导分区分别位于不同的磁盘，甚至多块磁盘交叉引导的情形，必须指定引导分区。
//---------------------------------------------//---------------------------------------------//

//---------------------------------------------//---------------------------------------------//

VHD与VHDX的区别:
VHDX仅支持WIN8及更高的系统，VHD用于WIN7及更高的系统。
VHDX比VHD多出的特性是：1.支持从异常关机中恢复 2.支持4K对齐 3.支持TRIM；后两者主要针对SSD。

