Browse Source

20250905

master
abbodi1406 2 weeks ago
parent
commit
781e919368
  1. 157
      OfficeScrubber/OfficeScrubber.cmd
  2. 2585
      OfficeScrubber/OfficeScrubberAIO.cmd
  3. 2
      OfficeScrubber/README.md
  4. BIN
      OfficeScrubber/bin/OffScrub03.vbs
  5. 34
      W10MUI/Updates/W10UI.cmd
  6. 7
      W10UI/README.md
  7. 34
      W10UI/W10UI.cmd
  8. 41
      uup-converter-wimlib/convert-UUP.cmd
  9. 2
      uup-converter-wimlib/create_virtual_editions.cmd

157
OfficeScrubber/OfficeScrubber.cmd

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<!-- : Begin batch script
@setlocal DisableDelayedExpansion
@set uivr=v12
@set uivr=v14
@echo off
set uac=-elevated
for %%# in (All,C2R,UWP,M16,M15,M14,M12,M11) do set _u%%#=0
@ -49,6 +49,11 @@ set "_psc=powershell -nop -c" @@ -49,6 +49,11 @@ set "_psc=powershell -nop -c"
set "_err===== ERROR ===="
set "_ln============================================================="
set "_sr=************************************************************"
if /i "%PROCESSOR_ARCHITECTURE%"=="amd64" set "xBit=x64"&set "xOS=x64"
if /i "%PROCESSOR_ARCHITECTURE%"=="arm64" set "xBit=x86"&set "xOS=A64"
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "xBit=x86"&set "xOS=x86"
if /i "%PROCESSOR_ARCHITEW6432%"=="amd64" set "xBit=x64"&set "xOS=x64"
if /i "%PROCESSOR_ARCHITEW6432%"=="arm64" set "xBit=x86"&set "xOS=A64"
set _leg=0
ver|findstr /C:" 5." >nul && set _leg=1
@ -63,13 +68,22 @@ set winbuild=1 @@ -63,13 +68,22 @@ set winbuild=1
if %_leg% equ 0 for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%#
if %_leg% equ 1 for /f "skip=%_sk% tokens=1,2,3 delims=. " %%i in ('reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLab 2^>nul') do (if /i "%%i"=="BuildLab" if not "%%~k"=="" set "winbuild=%%~k")
reg query HKLM\SYSTEM\CurrentControlSet\Services\WinMgmt /v Start 2>nul | find /i "0x4" 1>nul && (goto :E_WMS)
set _cwmi=0
for %%# in (wmic.exe) do @if not "%%~$PATH:#"=="" (
wmic path Win32_ComputerSystem get CreationClassName /value 2>nul | find /i "ComputerSystem" 1>nul && set _cwmi=1
cmd /c "wmic path Win32_ComputerSystem get CreationClassName /value" 2>nul | find /i "ComputerSystem" 1>nul && set _cwmi=1
)
if not defined qerel if not defined _elev (
echo.
echo Checking Windows Powershell, please wait . . .
)
set _pwsh=1
for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" set _pwsh=0
if not exist "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" set _pwsh=0
2>nul %_psc% $ExecutionContext.SessionState.LanguageMode | find /i "Full" 1>nul || set _pwsh=0
@cls
:: if %_pwsh% equ 0 goto :E_PWS
if %_leg% equ 1 goto :Passed
@ -79,6 +93,10 @@ if %_leg% equ 1 goto :Passed @@ -79,6 +93,10 @@ if %_leg% equ 1 goto :Passed
if defined _elev goto :E_Admin
)
set "_work=%~dp0bin"
cmd /v:on /c if not exist "!_work!\*.vbs" exit /b 2 1>nul 2>nul
if %errorlevel% EQU 2 goto :E_BIN
set _PSarg="""%~f0""" %* %uac%
set _PSarg=%_PSarg:'=''%
@ -110,6 +128,7 @@ reg.exe query HKCU\Console /v QuickEdit 2>nul | find /i "0x0" >nul && set qerel= @@ -110,6 +128,7 @@ reg.exe query HKCU\Console /v QuickEdit 2>nul | find /i "0x0" >nul && set qerel=
)
if defined qerel goto :skipQE
if %_pwsh% EQU 0 goto :skipQE
if %xOS%==A64 %_psc% $env:PROCESSOR_ARCHITECTURE 2>nul | find /i "x86" 1>nul && goto :skipQE
if %winbuild% GEQ 17763 (
set "launchcmd=start conhost.exe %_psc%"
) else (
@ -132,24 +151,23 @@ set "_oA14=59a52881-a989-479d-af46-f275c6370663" @@ -132,24 +151,23 @@ set "_oA14=59a52881-a989-479d-af46-f275c6370663"
set "OPPk=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
set "_para=ALL /OSE /NOCANCEL /FORCE /ENDCURRENTINSTALLS /DELETEUSERSETTINGS /CLEARADDINREG /REMOVELYNC"
if /i "%PROCESSOR_ARCHITECTURE%"=="amd64" set "xBit=x64"&set "xOS=x64"
if /i "%PROCESSOR_ARCHITECTURE%"=="arm64" set "xBit=x86"&set "xOS=A64"
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "xBit=x86"&set "xOS=x86"
if /i "%PROCESSOR_ARCHITEW6432%"=="amd64" set "xBit=x64"&set "xOS=x64"
if /i "%PROCESSOR_ARCHITEW6432%"=="arm64" set "xBit=x86"&set "xOS=A64"
set "_Common=%CommonProgramFiles%"
if defined PROCESSOR_ARCHITEW6432 set "_Common=%CommonProgramW6432%"
set "_file=%_Common%\Microsoft Shared\ClickToRun\OfficeClickToRun.exe"
set "_fil2=%CommonProgramFiles(x86)%\Microsoft Shared\ClickToRun\OfficeClickToRun.exe"
set "_work=%~dp0bin"
set "_Local=%LocalAppData%"
set "_cscript=cscript //Nologo"
set kO16=HKCU\SOFTWARE\Microsoft\Office\16.0
set kCTR=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration
set "_Local=%LocalAppData%"
set "_work=%~dp0"
set "_work=%_work:~0,-1%"
setlocal EnableDelayedExpansion
pushd "!_work!"
set _mis=
for %%# in (OffScrubC2R.vbs,OffScrub_O16msi.vbs,OffScrub_O15msi.vbs,OffScrub10.vbs,OffScrub07.vbs,OffScrub03.vbs,CleanOffice.txt) do (
if not exist ".\%%#" (set "msg=ERROR: required file %%# is missing"&goto :TheEnd)
if not exist ".\bin\%%#" set _mis=1
)
if defined _mis goto :E_BIN
set "_Nul1=1>nul"
set "_Nul2=2>nul"
set "_Nul6=2^>nul"
@ -405,7 +423,7 @@ echo. @@ -405,7 +423,7 @@ echo.
echo Scrubbing Office C2R . . .
for %%A in (16,19,21,24) do call :cKpp %%A
if %_O15CTR% EQU 1 call :cKpp 15
%_cscript% OffScrubC2R.vbs ALL /OFFLINE
%_cscript% bin\OffScrubC2R.vbs ALL /OFFLINE
%_Nul3% call :vNextDir
%_Nul3% call :officeREG 16
goto :eof
@ -464,7 +482,7 @@ goto :eof @@ -464,7 +482,7 @@ goto :eof
echo.
echo Scrubbing Office 2016 MSI . . .
call :cKpp 16
%_cscript% OffScrub_O16msi.vbs %_para%
%_cscript% bin\OffScrub_O16msi.vbs %_para%
%_Nul3% call :officeREG 16
goto :eof
@ -472,7 +490,7 @@ goto :eof @@ -472,7 +490,7 @@ goto :eof
echo.
echo Scrubbing Office 2013 MSI . . .
call :cKpp 15
%_cscript% OffScrub_O15msi.vbs %_para%
%_cscript% bin\OffScrub_O15msi.vbs %_para%
%_Nul3% call :officeREG 15
goto :eof
@ -480,34 +498,30 @@ goto :eof @@ -480,34 +498,30 @@ goto :eof
echo.
echo Scrubbing Office 2010 . . .
call :cK14
%_cscript% OffScrub10.vbs %_para%
%_cscript% bin\OffScrub10.vbs %_para%
%_Nul3% call :officeREG 14
goto :eof
:rOM12
echo.
echo Scrubbing Office 2007 . . .
%_cscript% OffScrub07.vbs %_para%
%_cscript% bin\OffScrub07.vbs %_para%
%_Nul3% call :officeREG 12
goto :eof
:rOM11
echo.
echo Scrubbing Office 2003 . . .
%_cscript% OffScrub03.vbs %_para%
%_cscript% bin\OffScrub03.vbs %_para%
%_Nul3% call :officeREG 11
goto :eof
:cSPP
echo.
echo Removing Office Licenses . . .
call :oppcln
call :slmgr
goto :eof
:oppcln
%_Nul3% %_psc% "cd -Lit ($env:__CD__); $f=[IO.File]::ReadAllText('.\CleanOffice.txt') -split ':embed\:.*'; iex ($f[1])"
%_Nul3% %_psc% "cd -Lit ($env:__CD__); $f=[IO.File]::ReadAllText('.\bin\CleanOffice.txt') -split ':embed\:.*'; iex ($f[1])"
@title Office Scrubber %uivr%
call :slmgr
goto :eof
:slmgr
@ -540,13 +554,13 @@ reg.exe query HKLM\SOFTWARE\Microsoft\Office\14.0\CVH %_Nul2% | findstr /I "Clic @@ -540,13 +554,13 @@ reg.exe query HKLM\SOFTWARE\Microsoft\Office\14.0\CVH %_Nul2% | findstr /I "Clic
if %winbuild% LSS 7600 goto :eof
:: sc query ClickToRunSvc %_Nul3% && set _O16CTR=1
reg.exe query HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds %_Nul3% && (
reg.exe query %kCTR% /v ProductReleaseIds %_Nul3% && (
set _O16CTR=1
for /f "skip=2 tokens=2*" %%a in ('"reg.exe query HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v Platform" %_Nul6%') do set "_plat=%%b"
for /f "skip=2 tokens=2*" %%a in ('"reg.exe query %kCTR% /v Platform" %_Nul6%') do set "_plat=%%b"
)
if not %xOS%==x86 if %_O16CTR% EQU 0 reg.exe query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds %_Nul3% && (
if not %xOS%==x86 if %_O16CTR% EQU 0 reg.exe query %kCTR% /v ProductReleaseIds /reg:32 %_Nul3% && (
set _O16CTR=1
for /f "skip=2 tokens=2*" %%a in ('"reg.exe query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration /v Platform" %_Nul6%') do set "_plat=%%b"
for /f "skip=2 tokens=2*" %%a in ('"reg.exe query %kCTR% /v Platform /reg:32" %_Nul6%') do set "_plat=%%b"
)
if exist "!_file!" set _O16CTR=1
if exist "!_fil2!" if /i "%PROCESSOR_ARCHITECTURE%"=="arm64" set _O16CTR=1
@ -568,7 +582,8 @@ if %_O15CTR% EQU 0 reg.exe query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\15.0 @@ -568,7 +582,8 @@ if %_O15CTR% EQU 0 reg.exe query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\15.0
set _O15CTR=1
)
if %winbuild% GEQ 10240 reg.exe query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msoxmled.exe" %_Nul3% && (
if %winbuild% GEQ 10240 (
dir /b "%ProgramData%\Packages\Microsoft.Office.Desktop*" %_Nul3% && set _O16UWP=1
dir /b "%ProgramFiles%\WindowsApps\Microsoft.Office.Desktop*" %_Nul3% && set _O16UWP=1
if not %xOS%==x86 dir /b "%ProgramW6432%\WindowsApps\Microsoft.Office.Desktop*" %_Nul3% && set _O16UWP=1
if not %xOS%==x86 dir /b "%ProgramFiles(x86)%\WindowsApps\Microsoft.Office.Desktop*" %_Nul3% && set _O16UWP=1
@ -600,26 +615,25 @@ if exist "%ProgramFiles(x86)%\Microsoft Office\Office%1\*.dll" set _O%1MSI=1 @@ -600,26 +615,25 @@ if exist "%ProgramFiles(x86)%\Microsoft Office\Office%1\*.dll" set _O%1MSI=1
goto :eof
:officeREG
reg delete HKCU\Software\Microsoft\Office\%1.0 /f
reg delete HKCU\Software\Policies\Microsoft\Office\%1.0 /f
reg delete HKCU\Software\Policies\Microsoft\Cloud\Office\%1.0 /f
reg delete HKLM\SOFTWARE\Microsoft\Office\%1.0 /f
reg delete HKLM\SOFTWARE\Policies\Microsoft\Office\%1.0 /f
reg delete HKLM\SOFTWARE\Microsoft\Office\%1.0 /f /reg:32
reg delete HKLM\SOFTWARE\Policies\Microsoft\Office\%1.0 /f /reg:32
reg.exe delete HKCU\Software\Microsoft\Office\%1.0 /f
reg.exe delete HKCU\Software\Policies\Microsoft\Office\%1.0 /f
reg.exe delete HKCU\Software\Policies\Microsoft\Cloud\Office\%1.0 /f
reg.exe delete HKLM\SOFTWARE\Microsoft\Office\%1.0 /f
reg.exe delete HKLM\SOFTWARE\Policies\Microsoft\Office\%1.0 /f
reg.exe delete HKLM\SOFTWARE\Policies\Microsoft\Cloud\Office\%1.0 /f
reg.exe delete HKLM\SOFTWARE\Microsoft\Office\%1.0 /f /reg:32
reg.exe delete HKLM\SOFTWARE\Policies\Microsoft\Office\%1.0 /f /reg:32
reg.exe delete HKLM\SOFTWARE\Policies\Microsoft\Cloud\Office\%1.0 /f /reg:32
goto :eof
:cK14
if %WMI_VBS% NEQ 0 cd ..
set _spp=OfficeSoftwareProtectionProduct
if %OsppHook% NEQ 0 (
call :cKEY 14
)
if %WMI_VBS% NEQ 0 cd bin
goto :eof
:cKpp
if %WMI_VBS% NEQ 0 cd ..
set _spp=SoftwareLicensingProduct
if %winbuild% GEQ 9200 (
call :cKEY %1
@ -628,16 +642,15 @@ set _spp=OfficeSoftwareProtectionProduct @@ -628,16 +642,15 @@ set _spp=OfficeSoftwareProtectionProduct
if %winbuild% LSS 9200 if %OsppHook% NEQ 0 (
call :cKEY %1
)
if %WMI_VBS% NEQ 0 cd bin
goto :eof
:cKMS
if %WMI_VBS% NEQ 0 cd ..
set _spp=SoftwareLicensingProduct
if %winbuild% GEQ 9200 (
reg delete "HKLM\%SPPk%\%_oApp%" /f
reg delete "HKLM\%SPPk%\%_oApp%" /f /reg:32
reg delete "HKU\S-1-5-20\%SPPk%\%_oApp%" /f
reg.exe delete "HKLM\%SPPk%\%_oApp%" /f
reg.exe delete "HKLM\%SPPk%\%_oApp%" /f /reg:32
reg.exe delete "HKU\S-1-5-20\%SPPk%\%_oApp%" /f
reg.exe delete "HKU\S-1-5-20\%SPPk%\Policies\%_oApp%" /f
for %%A in (15,16,19,21,24) do call :cKEY %%A
)
set _spp=OfficeSoftwareProtectionProduct
@ -645,13 +658,12 @@ if %winbuild% GEQ 9200 if %OsppHook% NEQ 0 ( @@ -645,13 +658,12 @@ if %winbuild% GEQ 9200 if %OsppHook% NEQ 0 (
call :cKEY 14
)
if %winbuild% LSS 9200 if %OsppHook% NEQ 0 (
reg delete "HKLM\%OPPk%\%_oApp%" /f
reg delete "HKLM\%OPPk%\%_oApp%" /f /reg:32
reg.exe delete "HKLM\%OPPk%\%_oApp%" /f
reg.exe delete "HKLM\%OPPk%\%_oApp%" /f /reg:32
for %%A in (14,15,16,19,21,24) do call :cKEY %%A
)
reg delete "HKLM\%OPPk%\%_oA14%" /f
reg delete "HKU\S-1-5-20\%OPPk%" /f
if %WMI_VBS% NEQ 0 cd bin
reg.exe delete "HKLM\%OPPk%\%_oA14%" /f
reg.exe delete "HKU\S-1-5-20\%OPPk%" /f
goto :eof
:cKEY
@ -669,14 +681,36 @@ goto :eof @@ -669,14 +681,36 @@ goto :eof
:vNextDir
attrib -R "!ProgramData!\Microsoft\Office\Licenses"
attrib -R "!ProgramData!\Microsoft\Licenses"
attrib -R "!_Local!\Microsoft\Office\Licenses"
rd /s /q "!ProgramData!\Microsoft\Office\Licenses\"
rd /s /q "!_Local!\Microsoft\Office\Licenses\"
attrib -R "!_Local!\Microsoft\Office\16.0\Licensing"
attrib -R "!_Local!\Microsoft\IdentityCache"
attrib -R "!_Local!\Microsoft\OneAuth"
rmdir /s /q "!ProgramData!\Microsoft\Office\Licenses\"
rmdir /s /q "!ProgramData!\Microsoft\Licenses\"
rmdir /s /q "!_Local!\Microsoft\Office\Licenses\"
rmdir /s /q "!_Local!\Microsoft\Office\16.0\Licensing\"
rmdir /s /q "!_Local!\Microsoft\IdentityCache\"
rmdir /s /q "!_Local!\Microsoft\OneAuth\"
goto :eof
:vNextREG
reg delete "%kO16%\Common\Licensing" /f
reg delete "%kO16%\Registration" /f
reg.exe delete "HKU\S-1-5-20\%SPPk%\Policies\%_oApp%" /f
reg.exe delete "%kO16%\Common\Licensing" /f
reg.exe delete "%kO16%\Common\Identity" /f
reg.exe delete "%kO16%\Registration" /f
reg.exe delete "%kCTR%" /f /v SharedComputerLicensing
reg.exe delete "%kCTR%" /f /v productkeys
for /f %%# in ('reg.exe query "%kCTR%" /f *.EmailAddress ^| findstr REG_') do reg.exe delete "%kCTR%" /f /v %%#
for /f %%# in ('reg.exe query "%kCTR%" /f *.TenantId ^| findstr REG_') do reg.exe delete "%kCTR%" /f /v %%#
for /f %%# in ('reg.exe query "%kCTR%" /f *.DeviceBasedLicensing ^| findstr REG_') do reg.exe delete "%kCTR%" /f /v %%#
reg.exe delete HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Updates /f
reg.exe delete HKLM\SOFTWARE\Microsoft\Office\16.0\Common\OEM /f
reg.exe delete HKLM\SOFTWARE\Microsoft\Office\16.0\Common\Licensing /f
reg.exe delete HKLM\SOFTWARE\Policies\Microsoft\Office\16.0\Common\Licensing /f
reg.exe delete HKLM\SOFTWARE\Microsoft\Office\16.0\Common\OEM /f /reg:32
reg.exe delete HKLM\SOFTWARE\Microsoft\Office\16.0\Common\Licensing /f /reg:32
reg.exe delete HKLM\SOFTWARE\Policies\Microsoft\Office\16.0\Common\Licensing /f /reg:32
goto :eof
:LcnsC
@ -748,6 +782,12 @@ echo This script requires administrator privileges. @@ -748,6 +782,12 @@ echo This script requires administrator privileges.
echo To do so, right-click on this script and select 'Run as administrator'
goto :E_Exit
:E_PWS
echo %_err%
echo Windows PowerShell is not installed or not working properly.
echo It is required for this script to work.
goto :E_Exit
:E_VBS
echo %_err%
echo VBScript engine is not installed.
@ -760,6 +800,19 @@ echo Windows Script Host is disabled. @@ -760,6 +800,19 @@ echo Windows Script Host is disabled.
echo It is required for this script to work.
goto :E_Exit
:E_WMS
echo %_err%
echo Windows Management Instrumentation [WinMgmt] service is disabled.
echo It is required for this script to work.
goto :E_Exit
:E_BIN
echo %_err%
echo Required files are missing.
echo Make sure to extract all files from the zip archive,
echo and run the script from the extracted folder, not directly from the archive.
goto :E_Exit
:TheEnd
echo.
echo %_ln%

2585
OfficeScrubber/OfficeScrubberAIO.cmd

File diff suppressed because it is too large Load Diff

2
OfficeScrubber/README.md

@ -120,6 +120,6 @@ Scrub ALL parameter will only remove the detected version and the default versio @@ -120,6 +120,6 @@ Scrub ALL parameter will only remove the detected version and the default versio
to force scrubbing multiple or other versions regardless detection, specify their parameters too
example, this will scrub detected and default versions, and Office 2013 and 2003:
example, this will scrub detected and default versions, plus Office 2013 and 2003:
`OfficeScrubber.cmd /A /M2 /M5`

BIN
OfficeScrubber/bin/OffScrub03.vbs

Binary file not shown.

34
W10MUI/Updates/W10UI.cmd

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
@setlocal DisableDelayedExpansion
@set uiv=v10.53u
@set uiv=v10.54
@echo off
:: enable debug mode, you must also set target and repo (if updates are not beside the script)
set _Debug=0
@ -1473,6 +1473,7 @@ set lcumsu= @@ -1473,6 +1473,7 @@ set lcumsu=
set mpamfe=
set servicingstack=
set cumulative=
set ekbpack=
set netupdt=
set netpack=
set netroll=
@ -1540,6 +1541,7 @@ if %online%==0 if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguageP @@ -1540,6 +1541,7 @@ if %online%==0 if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguageP
call :sbsconfig 9 9 1
)
if defined netpack set "ldr=!netpack! !ldr!"
if defined ekbpack set "ldr=!ekbpack! !ldr!"
for %%# in (dupdt,cupdt,supdt,fupdt,safeos,secureboot,edge,ldr,cumulative,lcumsu) do if defined %%# set overall=1
if defined servicingstack (
if %verb%==1 (
@ -1823,9 +1825,7 @@ findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i @@ -1823,9 +1825,7 @@ findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i
))
)
if %_build% geq 17763 if exist "%dest%\update.mum" if not exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" (
findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i /m "Microsoft-Windows-NetFx" "%dest%\*.mum" %_Nul3% && (
if not exist "%dest%\*_microsoft-windows-servicingstack_*.manifest" if not exist "%dest%\*_netfx4clientcorecomp.resources*.manifest" if not exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" if not exist "%dest%\*_microsoft-windows-n..35wpfcomp.resources*.manifest" (if exist "%dest%\*_*10.0.*.manifest" (set "netroll=!netroll! /PackagePath:%dest%\update.mum") else (if exist "%dest%\*_*11.0.*.manifest" set "netroll=!netroll! /PackagePath:%dest%\update.mum"))
))
findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i /m "Microsoft-Windows-NetFx" "%dest%\*.mum" %_Nul3% && call :rollnet)
findstr /i /m "Package_for_OasisAsset" "%dest%\update.mum" %_Nul3% && (if not exist "!mumtarget!\Windows\Servicing\packages\*OasisAssets-Package*.mum" (set /a _sum-=1&goto :eof))
findstr /i /m "WinPE" "%dest%\update.mum" %_Nul3% && (
%_Nul3% findstr /i /m "Edition\"" "%dest%\update.mum"
@ -1863,7 +1863,7 @@ if /i "!package!"=="%s_pkg%" set "servicingstack=/PackagePath:%dest%\update.mum" @@ -1863,7 +1863,7 @@ if /i "!package!"=="%s_pkg%" set "servicingstack=/PackagePath:%dest%\update.mum"
if not defined s_pkg set "servicingstack=!servicingstack! /PackagePath:%dest%\update.mum"
goto :eof
)
if exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" (
if exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" findstr /i /m "Package_for_DotNetRollup" "%dest%\update.mum" %_Nul3% || (
if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" (set /a _sum-=1&goto :eof)
set "netpack=!netpack! /PackagePath:%dest%\update.mum"
goto :eof
@ -1928,10 +1928,12 @@ if %_build% geq 16299 ( @@ -1928,10 +1928,12 @@ if %_build% geq 16299 (
)
)
if exist "%dest%\*enablement-package*.mum" (
set epkb=0
for /f "tokens=3 delims== " %%# in ('findstr /i "Edition" "%dest%\update.mum" %_Nul6%') do if exist "!mumtarget!\Windows\Servicing\packages\%%~#*.mum" set epkb=1
if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" if %verb%==1 findstr /i /m "WinPE" "%dest%\update.mum" %_Nul3% && set epkb=1
if "!epkb!"=="0" (set /a _sum-=1&goto :eof)
set epkb=0
for /f "tokens=3 delims== " %%# in ('findstr /i "Edition" "%dest%\update.mum" %_Nul6%') do if exist "!mumtarget!\Windows\Servicing\packages\%%~#*.mum" set epkb=1
if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" if %verb%==1 findstr /i /m "WinPE" "%dest%\update.mum" %_Nul3% && set epkb=1
if "!epkb!"=="0" (set /a _sum-=1&goto :eof)
set "ekbpack=!ekbpack! /PackagePath:%dest%\update.mum"
goto :eof
)
for %%# in (%directcab%) do (
if /i "!package!"=="%%~#" (
@ -1951,6 +1953,16 @@ if exist "%dest%\*_%_CedCmp%_*.manifest" if %SkipEdge% equ 2 call :deEdge @@ -1951,6 +1953,16 @@ if exist "%dest%\*_%_CedCmp%_*.manifest" if %SkipEdge% equ 2 call :deEdge
set "ldr=!ldr! /PackagePath:%dest%\update.mum"
goto :eof
:rollnet
set rollnet=0
findstr /i /m "Package_for_DotNetRollup" "%dest%\update.mum" %_Nul3% && set rollnet=1
if not exist "%dest%\*_microsoft-windows-servicingstack_*.manifest" if not exist "%dest%\*_netfx4clientcorecomp.resources*.manifest" if not exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" if not exist "%dest%\*_microsoft-windows-n..35wpfcomp.resources*.manifest" (
if exist "%dest%\*_*10.0.*.manifest" set rollnet=1
if exist "%dest%\*_*11.0.*.manifest" set rollnet=1
)
if %rollnet% equ 1 set "netroll=!netroll! /PackagePath:%dest%\update.mum"
goto :eof
:proclcu
if %_build% geq 20231 if %_build% lss 26052 if %xmsu% equ 0 (
set "lcudir=%dest%"
@ -2622,6 +2634,7 @@ if exist "%~1\Microsoft-Windows-23H2Enablement-Package~*.mum" set "_fixSV=22631" @@ -2622,6 +2634,7 @@ if exist "%~1\Microsoft-Windows-23H2Enablement-Package~*.mum" set "_fixSV=22631"
if exist "%~1\Microsoft-Windows-SV2BetaEnablement-Package~*.mum" set "_fixSV=22635"&set "_fixEP=22635"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-Beta-Version-Enablement-Package~*.mum" set "_fixSV=26120"&set "_fixEP=26120"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-26200-Version-Enablement-Package~*.mum" set "_fixSV=26200"&set "_fixEP=26200"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-26220-Version-Enablement-Package~*.mum" set "_fixSV=26220"&set "_fixEP=26220"
goto :eof
:fixLab
@ -2633,6 +2646,7 @@ if %1==19044 if /i "%_tl:~0,2%"=="vb" set _tl=21h2%_tl:~2% @@ -2633,6 +2646,7 @@ if %1==19044 if /i "%_tl:~0,2%"=="vb" set _tl=21h2%_tl:~2%
if %1==19045 if /i "%_tl:~0,2%"=="vb" set _tl=22h2%_tl:~2%
if %1==20349 if /i "%_tl:~0,2%"=="fe" set _tl=22h2%_tl:~2%
if %1==22631 if /i "%_tl:~0,2%"=="ni" (echo %_tl% | find /i "beta" %_Nul1% || set _tl=23h2_ni%_tl:~2%)
if %1==26200 if /i "%_tl:~0,2%"=="ge" (echo %_tl% | findstr /i /r "beta prerelease" %_Nul1% || set _tl=25h2_ge%_tl:~2%)
set "%3=%_tl%"
goto :eof
@ -3560,7 +3574,7 @@ if "!isodir!"=="" set "isodir=!_work!" @@ -3560,7 +3574,7 @@ if "!isodir!"=="" set "isodir=!_work!"
call :DATEISO
if %_cwmi% equ 1 for /f "tokens=2 delims==." %%# in ('wmic os get localdatetime /value') do set "_date=%%#"
if %_cwmi% equ 0 for /f "tokens=1 delims=." %%# in ('%_psc% "([WMI]'Win32_OperatingSystem=@').LocalDateTime"') do set "_date=%%#"
if not defined _date set "_date=000000-0000"
if not defined _date set "_date=000000000000"
if not defined isodate set "isodate=%_date:~2,6%-%_date:~8,4%"
for %%# in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
set isolab=!isolab:%%#=%%#!

7
W10UI/README.md

@ -234,6 +234,11 @@ special thanks for testing and feedback: @@ -234,6 +234,11 @@ special thanks for testing and feedback:
<details><summary>changelog</summary>
10.54:
- Change non-insider 26200 iso label to 25h2_ge_release
- Move Enablement package installation order before .NET updates
- Fix for 25H2 .NET Rollup mistakenly detected as .NET feature pack
10.53:
- Add workaround to avoid KB5043080 msu installation error
- Install all SSUs for Windows 10 v1507 (LTSB 2015)
@ -317,7 +322,7 @@ default state is OFF @@ -317,7 +322,7 @@ default state is OFF
- Updated detection for SafeOS DU
10.38:
- Fixed processing SSU-*.cab from normally-named SSU msu
- Fixed processing `SSU-*.cab` from normally-named SSU msu
- Changed 22631 iso label to 23h2_ni_release
- Changed finish prompt to "Press 9 or q to exit"
- Added detection for Net35 sxs folder from W10UI.cmd root, or updates repo folder

34
W10UI/W10UI.cmd

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
@setlocal DisableDelayedExpansion
@set uiv=v10.53u
@set uiv=v10.54
@echo off
:: enable debug mode, you must also set target and repo (if updates are not beside the script)
set _Debug=0
@ -1473,6 +1473,7 @@ set lcumsu= @@ -1473,6 +1473,7 @@ set lcumsu=
set mpamfe=
set servicingstack=
set cumulative=
set ekbpack=
set netupdt=
set netpack=
set netroll=
@ -1540,6 +1541,7 @@ if %online%==0 if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguageP @@ -1540,6 +1541,7 @@ if %online%==0 if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguageP
call :sbsconfig 9 9 1
)
if defined netpack set "ldr=!netpack! !ldr!"
if defined ekbpack set "ldr=!ekbpack! !ldr!"
for %%# in (dupdt,cupdt,supdt,fupdt,safeos,secureboot,edge,ldr,cumulative,lcumsu) do if defined %%# set overall=1
if defined servicingstack (
if %verb%==1 (
@ -1823,9 +1825,7 @@ findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i @@ -1823,9 +1825,7 @@ findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i
))
)
if %_build% geq 17763 if exist "%dest%\update.mum" if not exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" (
findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i /m "Microsoft-Windows-NetFx" "%dest%\*.mum" %_Nul3% && (
if not exist "%dest%\*_microsoft-windows-servicingstack_*.manifest" if not exist "%dest%\*_netfx4clientcorecomp.resources*.manifest" if not exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" if not exist "%dest%\*_microsoft-windows-n..35wpfcomp.resources*.manifest" (if exist "%dest%\*_*10.0.*.manifest" (set "netroll=!netroll! /PackagePath:%dest%\update.mum") else (if exist "%dest%\*_*11.0.*.manifest" set "netroll=!netroll! /PackagePath:%dest%\update.mum"))
))
findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" %_Nul3% || (findstr /i /m "Microsoft-Windows-NetFx" "%dest%\*.mum" %_Nul3% && call :rollnet)
findstr /i /m "Package_for_OasisAsset" "%dest%\update.mum" %_Nul3% && (if not exist "!mumtarget!\Windows\Servicing\packages\*OasisAssets-Package*.mum" (set /a _sum-=1&goto :eof))
findstr /i /m "WinPE" "%dest%\update.mum" %_Nul3% && (
%_Nul3% findstr /i /m "Edition\"" "%dest%\update.mum"
@ -1863,7 +1863,7 @@ if /i "!package!"=="%s_pkg%" set "servicingstack=/PackagePath:%dest%\update.mum" @@ -1863,7 +1863,7 @@ if /i "!package!"=="%s_pkg%" set "servicingstack=/PackagePath:%dest%\update.mum"
if not defined s_pkg set "servicingstack=!servicingstack! /PackagePath:%dest%\update.mum"
goto :eof
)
if exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" (
if exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" findstr /i /m "Package_for_DotNetRollup" "%dest%\update.mum" %_Nul3% || (
if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" (set /a _sum-=1&goto :eof)
set "netpack=!netpack! /PackagePath:%dest%\update.mum"
goto :eof
@ -1928,10 +1928,12 @@ if %_build% geq 16299 ( @@ -1928,10 +1928,12 @@ if %_build% geq 16299 (
)
)
if exist "%dest%\*enablement-package*.mum" (
set epkb=0
for /f "tokens=3 delims== " %%# in ('findstr /i "Edition" "%dest%\update.mum" %_Nul6%') do if exist "!mumtarget!\Windows\Servicing\packages\%%~#*.mum" set epkb=1
if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" if %verb%==1 findstr /i /m "WinPE" "%dest%\update.mum" %_Nul3% && set epkb=1
if "!epkb!"=="0" (set /a _sum-=1&goto :eof)
set epkb=0
for /f "tokens=3 delims== " %%# in ('findstr /i "Edition" "%dest%\update.mum" %_Nul6%') do if exist "!mumtarget!\Windows\Servicing\packages\%%~#*.mum" set epkb=1
if exist "!mumtarget!\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" if %verb%==1 findstr /i /m "WinPE" "%dest%\update.mum" %_Nul3% && set epkb=1
if "!epkb!"=="0" (set /a _sum-=1&goto :eof)
set "ekbpack=!ekbpack! /PackagePath:%dest%\update.mum"
goto :eof
)
for %%# in (%directcab%) do (
if /i "!package!"=="%%~#" (
@ -1951,6 +1953,16 @@ if exist "%dest%\*_%_CedCmp%_*.manifest" if %SkipEdge% equ 2 call :deEdge @@ -1951,6 +1953,16 @@ if exist "%dest%\*_%_CedCmp%_*.manifest" if %SkipEdge% equ 2 call :deEdge
set "ldr=!ldr! /PackagePath:%dest%\update.mum"
goto :eof
:rollnet
set rollnet=0
findstr /i /m "Package_for_DotNetRollup" "%dest%\update.mum" %_Nul3% && set rollnet=1
if not exist "%dest%\*_microsoft-windows-servicingstack_*.manifest" if not exist "%dest%\*_netfx4clientcorecomp.resources*.manifest" if not exist "%dest%\*_netfx4-netfx_detectionkeys_extended*.manifest" if not exist "%dest%\*_microsoft-windows-n..35wpfcomp.resources*.manifest" (
if exist "%dest%\*_*10.0.*.manifest" set rollnet=1
if exist "%dest%\*_*11.0.*.manifest" set rollnet=1
)
if %rollnet% equ 1 set "netroll=!netroll! /PackagePath:%dest%\update.mum"
goto :eof
:proclcu
if %_build% geq 20231 if %_build% lss 26052 if %xmsu% equ 0 (
set "lcudir=%dest%"
@ -2622,6 +2634,7 @@ if exist "%~1\Microsoft-Windows-23H2Enablement-Package~*.mum" set "_fixSV=22631" @@ -2622,6 +2634,7 @@ if exist "%~1\Microsoft-Windows-23H2Enablement-Package~*.mum" set "_fixSV=22631"
if exist "%~1\Microsoft-Windows-SV2BetaEnablement-Package~*.mum" set "_fixSV=22635"&set "_fixEP=22635"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-Beta-Version-Enablement-Package~*.mum" set "_fixSV=26120"&set "_fixEP=26120"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-26200-Version-Enablement-Package~*.mum" set "_fixSV=26200"&set "_fixEP=26200"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-26220-Version-Enablement-Package~*.mum" set "_fixSV=26220"&set "_fixEP=26220"
goto :eof
:fixLab
@ -2633,6 +2646,7 @@ if %1==19044 if /i "%_tl:~0,2%"=="vb" set _tl=21h2%_tl:~2% @@ -2633,6 +2646,7 @@ if %1==19044 if /i "%_tl:~0,2%"=="vb" set _tl=21h2%_tl:~2%
if %1==19045 if /i "%_tl:~0,2%"=="vb" set _tl=22h2%_tl:~2%
if %1==20349 if /i "%_tl:~0,2%"=="fe" set _tl=22h2%_tl:~2%
if %1==22631 if /i "%_tl:~0,2%"=="ni" (echo %_tl% | find /i "beta" %_Nul1% || set _tl=23h2_ni%_tl:~2%)
if %1==26200 if /i "%_tl:~0,2%"=="ge" (echo %_tl% | findstr /i /r "beta prerelease" %_Nul1% || set _tl=25h2_ge%_tl:~2%)
set "%3=%_tl%"
goto :eof
@ -3560,7 +3574,7 @@ if "!isodir!"=="" set "isodir=!_work!" @@ -3560,7 +3574,7 @@ if "!isodir!"=="" set "isodir=!_work!"
call :DATEISO
if %_cwmi% equ 1 for /f "tokens=2 delims==." %%# in ('wmic os get localdatetime /value') do set "_date=%%#"
if %_cwmi% equ 0 for /f "tokens=1 delims=." %%# in ('%_psc% "([WMI]'Win32_OperatingSystem=@').LocalDateTime"') do set "_date=%%#"
if not defined _date set "_date=000000-0000"
if not defined _date set "_date=000000000000"
if not defined isodate set "isodate=%_date:~2,6%-%_date:~8,4%"
for %%# in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
set isolab=!isolab:%%#=%%#!

41
uup-converter-wimlib/convert-UUP.cmd

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<!-- : Begin batch script
@setlocal DisableDelayedExpansion
@set uivr=v115
@set uivr=v116
@echo off
:: Change to 1 to enable debug mode
set _Debug=0
@ -1232,7 +1232,7 @@ if exist "bin\temp\*_microsoft-windows-coreos-revision*.manifest" for /f "tokens @@ -1232,7 +1232,7 @@ if exist "bin\temp\*_microsoft-windows-coreos-revision*.manifest" for /f "tokens
if %_build% geq 15063 (
wimlib-imagex.exe extract "!MetadataESD!" 3 Windows\System32\config\SOFTWARE --dest-dir=.\bin\temp --no-acls --no-attributes %_Null%
set "isokey=Microsoft\Windows NT\CurrentVersion\Update\TargetingInfo\Installed"
for /f %%i in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!" enumkeys %_Nul6% ^| findstr /i /r ".*\.OS""') do if not errorlevel 1 (
for /f %%i in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!" enumkeys %_Nul6% ^| findstr /i /r "Client\.OS Server\.OS""') do if not errorlevel 1 (
for /f "tokens=3 delims==:" %%A in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!\%%i" getvalue Branch %_Nul6%"') do set "revbranch=%%~A"
for /f "tokens=5,6 delims==:." %%A in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!\%%i" getvalue Version %_Nul6%"') do if %%A gtr !revmaj! (
set "revver=%%~A.%%B
@ -1349,6 +1349,7 @@ if %1==19044 if /i "%branch:~0,2%"=="vb" set branch=21h2%branch:~2% @@ -1349,6 +1349,7 @@ if %1==19044 if /i "%branch:~0,2%"=="vb" set branch=21h2%branch:~2%
if %1==19045 if /i "%branch:~0,2%"=="vb" set branch=22h2%branch:~2%
if %1==20349 if /i "%branch:~0,2%"=="fe" set branch=22h2%branch:~2%
if %1==22631 if /i "%branch:~0,2%"=="ni" (echo %branch% | find /i "beta" %_Nul1% || set branch=23h2_ni%branch:~2%)
if %1==26200 if /i "%branch:~0,2%"=="ge" (echo %branch% | findstr /i /r "beta prerelease" %_Nul1% || set branch=25h2_ge%branch:~2%)
exit /b
:fixVerBrn
@ -1393,6 +1394,11 @@ if /i "%_ti:~0,2%"=="ni" (echo %_ti% | find /i "beta" %_Nul1% || set _ti=23h2_ni @@ -1393,6 +1394,11 @@ if /i "%_ti:~0,2%"=="ni" (echo %_ti% | find /i "beta" %_Nul1% || set _ti=23h2_ni
if %_tv:~0,5%==22621 set _tv=22631%_tv:~5%
if /i "%_tb:~0,2%"=="ni" (echo %_tb% | find /i "beta" %_Nul1% || set _tb=23h2_ni%_tb:~2%)
)
if %1==26200 (
if /i "%_ti:~0,2%"=="ge" (echo %_ti% | findstr /i /r "beta prerelease" %_Nul1% || set _ti=25h2_ge%_ti:~2%)
if %_tv:~0,5%==26100 set _tv=26200%_tv:~5%
if /i "%_tb:~0,2%"=="ge" (echo %_tb% | findstr /i /r "beta prerelease" %_Nul1% || set _tb=25h2_ge%_tb:~2%)
)
set "%2=%_ti%"
set "%3=%_tv%"
set "%4=%_tb%"
@ -2664,6 +2670,7 @@ if exist "%~1\Microsoft-Windows-23H2Enablement-Package~*.mum" set "_fixSV=22631" @@ -2664,6 +2670,7 @@ if exist "%~1\Microsoft-Windows-23H2Enablement-Package~*.mum" set "_fixSV=22631"
if exist "%~1\Microsoft-Windows-SV2BetaEnablement-Package~*.mum" set "_fixSV=22635"&set "_fixEP=22635"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-Beta-Version-Enablement-Package~*.mum" set "_fixSV=26120"&set "_fixEP=26120"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-26200-Version-Enablement-Package~*.mum" set "_fixSV=26200"&set "_fixEP=26200"
if exist "%~1\Microsoft-Windows-Ge-Client-Server-26220-Version-Enablement-Package~*.mum" set "_fixSV=26220"&set "_fixEP=26220"
goto :eof
:inrenssu
@ -2735,6 +2742,7 @@ set lcumsu= @@ -2735,6 +2742,7 @@ set lcumsu=
set mpamfe=
set servicingstack=
set cumulative=
set ekbpack=
set netupdt=
set netpack=
set netroll=
@ -2787,6 +2795,7 @@ if exist "%mumtarget%\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" ( @@ -2787,6 +2795,7 @@ if exist "%mumtarget%\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" (
call :sbsconfig 9 9 1
)
if defined netpack set "ldr=!netpack! !ldr!"
if defined ekbpack set "ldr=!ekbpack! !ldr!"
for %%# in (dupdt,cupdt,supdt,fupdt,secureboot,edge,ldr,cumulative,lcumsu) do if defined %%# set overall=1
if not defined safeos if not defined overall if not defined mpamfe if not defined servicingstack goto :eof
if defined servicingstack (
@ -3104,9 +3113,7 @@ findstr /i /m "Package_for_RollupFix" "!dest!\update.mum" %_Nul3% || (findstr /i @@ -3104,9 +3113,7 @@ findstr /i /m "Package_for_RollupFix" "!dest!\update.mum" %_Nul3% || (findstr /i
))
)
if %_build% geq 17763 if exist "!dest!\update.mum" if not exist "%mumtarget%\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" (
findstr /i /m "Package_for_RollupFix" "!dest!\update.mum" %_Nul3% || (findstr /i /m "Microsoft-Windows-NetFx" "!dest!\*.mum" %_Nul3% && (
if not exist "!dest!\*_microsoft-windows-servicingstack_*.manifest" if not exist "!dest!\*_netfx4clientcorecomp.resources*.manifest" if not exist "!dest!\*_netfx4-netfx_detectionkeys_extended*.manifest" if not exist "!dest!\*_microsoft-windows-n..35wpfcomp.resources*.manifest" (if exist "!dest!\*_*10.0.*.manifest" (set "netroll=!netroll! /PackagePath:!dest!\update.mum") else (if exist "!dest!\*_*11.0.*.manifest" set "netroll=!netroll! /PackagePath:!dest!\update.mum"))
))
findstr /i /m "Package_for_RollupFix" "!dest!\update.mum" %_Nul3% || (findstr /i /m "Microsoft-Windows-NetFx" "!dest!\*.mum" %_Nul3% && call :rollnet)
findstr /i /m "Package_for_OasisAsset" "!dest!\update.mum" %_Nul3% && (if not exist "%mumtarget%\Windows\Servicing\packages\*OasisAssets-Package*.mum" goto :eof)
findstr /i /m "WinPE" "!dest!\update.mum" %_Nul3% && (
%_Nul3% findstr /i /m "Edition\"" "!dest!\update.mum"
@ -3126,7 +3133,7 @@ if /i "%package%"=="%s_pkg%" set "servicingstack=/PackagePath:!dest!\update.mum" @@ -3126,7 +3133,7 @@ if /i "%package%"=="%s_pkg%" set "servicingstack=/PackagePath:!dest!\update.mum"
if not defined s_pkg set "servicingstack=!servicingstack! /PackagePath:!dest!\update.mum"
goto :eof
)
if exist "!dest!\*_netfx4-netfx_detectionkeys_extended*.manifest" (
if exist "!dest!\*_netfx4-netfx_detectionkeys_extended*.manifest" findstr /i /m "Package_for_DotNetRollup" "!dest!\update.mum" %_Nul3% || (
if exist "%mumtarget%\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" goto :eof
set "netpack=!netpack! /PackagePath:!dest!\update.mum"
goto :eof
@ -3185,10 +3192,12 @@ if %_build% geq 16299 ( @@ -3185,10 +3192,12 @@ if %_build% geq 16299 (
)
)
if exist "!dest!\*enablement-package*.mum" (
set epkb=0
for /f "tokens=3 delims== " %%# in ('findstr /i "Edition" "!dest!\update.mum" %_Nul6%') do if exist "%mumtarget%\Windows\Servicing\packages\%%~#*.mum" set epkb=1
if exist "%mumtarget%\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" findstr /i /m "WinPE" "!dest!\update.mum" %_Nul3% && set epkb=1
if "!epkb!"=="0" goto :eof
set epkb=0
for /f "tokens=3 delims== " %%# in ('findstr /i "Edition" "!dest!\update.mum" %_Nul6%') do if exist "%mumtarget%\Windows\Servicing\packages\%%~#*.mum" set epkb=1
if exist "%mumtarget%\Windows\Servicing\Packages\*WinPE-LanguagePack*.mum" findstr /i /m "WinPE" "!dest!\update.mum" %_Nul3% && set epkb=1
if "!epkb!"=="0" goto :eof
set "ekbpack=!ekbpack! /PackagePath:!dest!\update.mum"
goto :eof
)
for %%# in (%directcab%) do (
if /i "%package%"=="%%~#" (
@ -3208,6 +3217,16 @@ if exist "!dest!\*_%_CedCmp%_*.manifest" if %SkipEdge% equ 2 call :deEdge @@ -3208,6 +3217,16 @@ if exist "!dest!\*_%_CedCmp%_*.manifest" if %SkipEdge% equ 2 call :deEdge
set "ldr=!ldr! /PackagePath:!dest!\update.mum"
goto :eof
:rollnet
set rollnet=0
findstr /i /m "Package_for_DotNetRollup" "!dest!\update.mum" %_Nul3% && set rollnet=1
if not exist "!dest!\*_microsoft-windows-servicingstack_*.manifest" if not exist "!dest!\*_netfx4clientcorecomp.resources*.manifest" if not exist "!dest!\*_netfx4-netfx_detectionkeys_extended*.manifest" if not exist "!dest!\*_microsoft-windows-n..35wpfcomp.resources*.manifest" (
if exist "!dest!\*_*10.0.*.manifest" set rollnet=1
if exist "!dest!\*_*11.0.*.manifest" set rollnet=1
)
if %rollnet% equ 1 set "netroll=!netroll! /PackagePath:!dest!\update.mum"
goto :eof
:proclcu
if %_build% geq 20231 if %_build% lss 26052 if %xmsu% equ 0 (
set "lcudir=!dest!"
@ -3730,7 +3749,7 @@ set handle2=1 @@ -3730,7 +3749,7 @@ set handle2=1
set isomin=0
for /f "tokens=%tok% delims=_." %%i in ('dir /b /a:-d /od "%_mount%\Windows\WinSxS\Manifests\%_ss%_microsoft-windows-coreos-revision*.manifest"') do (set isover=%%i.%%j&set isomaj=%%i&set isomin=%%j)
set "isokey=Microsoft\Windows NT\CurrentVersion\Update\TargetingInfo\Installed"
for /f %%i in ('"offlinereg.exe "%_mount%\Windows\system32\config\SOFTWARE" "!isokey!" enumkeys %_Nul6% ^| findstr /i /r ".*\.OS""') do if not errorlevel 1 (
for /f %%i in ('"offlinereg.exe "%_mount%\Windows\system32\config\SOFTWARE" "!isokey!" enumkeys %_Nul6% ^| findstr /i /r "Client\.OS Server\.OS""') do if not errorlevel 1 (
for /f "tokens=3 delims==:" %%A in ('"offlinereg.exe "%_mount%\Windows\system32\config\SOFTWARE" "!isokey!\%%i" getvalue Branch %_Nul6%"') do set "isobranch=%%~A"
for /f "tokens=5,6 delims==:." %%A in ('"offlinereg.exe "%_mount%\Windows\system32\config\SOFTWARE" "!isokey!\%%i" getvalue Version %_Nul6%"') do if %%A gtr !isomaj! (
set "isover=%%~A.%%B

2
uup-converter-wimlib/create_virtual_editions.cmd

@ -1028,7 +1028,7 @@ if exist "bin\temp\*_microsoft-windows-coreos-revision*.manifest" for /f "tokens @@ -1028,7 +1028,7 @@ if exist "bin\temp\*_microsoft-windows-coreos-revision*.manifest" for /f "tokens
if %_build% geq 15063 (
wimlib-imagex.exe extract "%ISOdir%\sources\%WimFile%" 1 Windows\System32\config\SOFTWARE --dest-dir=.\bin\temp --no-acls --no-attributes %_Null%
set "isokey=Microsoft\Windows NT\CurrentVersion\Update\TargetingInfo\Installed"
for /f %%i in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!" enumkeys %_Nul6% ^| findstr /i /r ".*\.OS""') do if not errorlevel 1 (
for /f %%i in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!" enumkeys %_Nul6% ^| findstr /i /r "Client\.OS Server\.OS""') do if not errorlevel 1 (
for /f "tokens=3 delims==:" %%A in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!\%%i" getvalue Branch %_Nul6%"') do set "revbranch=%%~A"
for /f "tokens=5,6 delims==:." %%A in ('"offlinereg.exe .\bin\temp\SOFTWARE "!isokey!\%%i" getvalue Version %_Nul6%"') do if %%A gtr !revmaj! (
set "revver=%%~A.%%B

Loading…
Cancel
Save