From 739c75c2d17eb918a02971f959f71ffb3cf7926a Mon Sep 17 00:00:00 2001 From: bin456789 Date: Fri, 21 Feb 2025 00:30:35 +0800 Subject: [PATCH] =?UTF-8?q?windows:=20=E9=80=9A=E8=BF=87=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=98=AF=E5=90=A6=E6=9C=89=20sac=20=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trans.sh | 13 ++++++++++++- windows-setup.bat | 14 ++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/trans.sh b/trans.sh index 224c780..10b0ac3 100644 --- a/trans.sh +++ b/trans.sh @@ -5629,9 +5629,15 @@ install_windows() { fi fi + mkdir -p /wim + + # 挂载 install.wim,检查是否有 sac 组件 + wimmount "$install_wim" "$image_name" /wim/ + [ -f /wim/Windows/System32/sacsess.exe ] && has_sac=true || has_sac=false + wimunmount /wim/ + # 挂载 boot.wim info "mount boot.wim" - mkdir -p /wim wimmountrw /os/boot.wim "$boot_index" /wim/ cp_drivers() { @@ -5697,6 +5703,11 @@ install_windows() { sed -i 's/ForceOldSetup=0/ForceOldSetup=1/i' $system32_dir/startnet.cmd fi + # 有 SAC 组件时,启用 EMS + if $has_sac; then + sed -i 's/EnableEMS=0/EnableEMS=1/i' $system32_dir/startnet.cmd + fi + # Windows Thin PC 有 Windows\System32\winpeshl.ini # [LaunchApps] # %SYSTEMDRIVE%\windows\system32\drvload.exe, %SYSTEMDRIVE%\windows\inf\sdbus.inf diff --git a/windows-setup.bat b/windows-setup.bat index e02c201..d2a965a 100644 --- a/windows-setup.bat +++ b/windows-setup.bat @@ -49,9 +49,9 @@ echo list vol | diskpart | find "efi" && ( ) rem 获取 ProductType -for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v ProductType') do ( - set "ProductType=%%a" -) +rem for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v ProductType') do ( +rem set "ProductType=%%a" +rem ) rem 获取 BuildNumber for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentBuildNumber') do ( @@ -155,6 +155,7 @@ for %%a in (RAM TPM SecureBoot) do ( rem 设置 set ForceOldSetup=0 set EnableUnattended=1 +set EnableEMS=0 rem 运行 ramdisk X:\setup.exe 的话 rem vista 会找不到安装源 @@ -190,9 +191,10 @@ if %BuildNumber% GEQ 26040 if "%ForceOldSetup%"=="0" ( set ResizeRecoveryPartition=/ResizeRecoveryPartition Disable ) -rem 为 windows server 打开 EMS -rem 普通 windows 没有自带 EMS 组件,暂不处理 -if "%ProductType%"=="ServerNT" ( +rem 为 windows server 打开 EMS/SAC +rem 普通 windows 没有自带 SAC 组件,暂不处理 +rem 现在通过 trans.sh 准确检测系统是否有 SAC 组件,有则修改 EnableEMS 变量打开 EMS +if "%EnableEMS%"=="1" ( rem set EMS=/EMSPort:UseBIOSSettings /EMSBaudRate:115200 set EMS=/EMSPort:COM1 /EMSBaudRate:115200 )