hemm.. less size than originally..maybe from cleanupimage = 1 and resetbase = 0 in W10UI_3.6? @abbodi1406 and @Enthousiast try to update from 15063.502 until 15063.674 from originall esd(15063.483) 15063.0.170710-1358.rs2_release_svc_refresh_CLIENTENTERPRISE_VOL_x64fre_en-us_5477ecbdb80b477d3cb049d0d64831b72797be8b.esd
@abbodi1406 and @Enthousiast hem..weird.. I think enable net 3.5 but when try in VM..and update from 15063.502 to 15063.674(.502, .540, .608, .632, .674) result just only show kb4041676(15063.674) and enable net 3.5 path source right. I'm wrong step or did wrong in someway?
i dont have time waiting while that progress. and the end just less 1 pic.. that rebuilding to iso.. first and end not show updating net 3.5. and process update it 1 mcu finish then 1 mcu again.. not it include all update.. means 6 .mcu in folder W10UI_3.6.
here. btw folder name "ISOFOLDER" I create manually not from process convert esd to iso Code: @echo off cd /d "%~dp0" rem when changing below options, be sure to set the new values between = and " marks rem for updating current os, leave this option as %SystemDrive% set "target=C:\ISOFOLDER" rem updates location, %cd% represent the current script directory set "repo=C:\update" rem dism.exe tool path (default is system's if the host os is win10) set "dismroot=%windir%\system32\dism.exe" rem enable .NET 3.5 feature set net35=1 rem optional, specify custom "folder" path for microsoft-windows-netfx3-ondemand-package.cab set "net35source=C:\netfx\microsoft-windows-netfx3-ondemand-package.cab" rem Cleanup OS images to "compress" superseded components (might take long time to complete) set cleanup=1 rem Rebase OS images to "remove" superseded components (warning: break "Reset this PC" feature) rem require first to set cleanup=1 set resetbase=0 rem create new iso file if the target is a distribution folder rem require placing oscdimg.exe or cdimage.exe next to W10UI.cmd set iso=1 rem set this to 1 to start the process directly once you execute the script rem make sure you set the above options correctly first set autostart=0 rem optional, set temporary directory for extracted files set "cab_dir=%~d0\W10UItemp" rem optional, set mount directory for updating wim files set "mountdir=%SystemDrive%\W10UImount" set "winremount=%SystemDrive%\W10UImountre" ' I dont change any code below rem ################################################################## rem # NORMALY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT # rem ################################################################## title Installer for Windows 10 Updates %windir%\system32\reg.exe query "HKU\S-1-5-19" 1>nul 2>nul || goto :E_Admin :detect set directcab=0 set dvd=0 set wim=0 set offline=0 set online=0 if "%target:~-1%"=="\" set "target=%target:~0,-1%" if /i "%target%"=="%SystemDrive%" goto :check echo %target%| findstr /E /I "\.wim" >nul if %errorlevel%==0 ( set wim=1 ) else ( if exist "%target%\boot\bcd" set dvd=1 if exist "%target%\Windows\regedit.exe" set offline=1 ) if %offline%==0 if %wim%==0 if %dvd%==0 (set "target=%SystemDrive%"&goto :check) if %offline%==1 ( dir /b "%target%\Windows\servicing\Version\10.0.*" 1>nul 2>nul || (set "MESSAGE=Detected target offline image is not Windows 10"&goto :E_Target) set "mountdir=%target%" if exist "%target%\Windows\SysWOW64\*" (set arch=x64) else (set arch=x86) ) if %dvd%==1 ( dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" /index:1 | find /i "Version : 10.0" >nul || (set "MESSAGE=Detected install.wim version is not Windows 10"&goto :E_Target) for /f "tokens=4 delims=:. " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" /index:1 ^| find /i "Version :"') do set build=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" /index:1 ^| find /i "Architecture"') do set arch=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" ^| findstr "Index"') do set imgcount=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\boot.wim" ^| findstr "Index"') do set bootimg=%%i ) if %wim%==1 ( dism /english /get-wiminfo /wimfile:"%target%" /index:1 | find /i "Version : 10.0" >nul || (set "MESSAGE=Detected wim version is not Windows 10"&goto :E_Target) for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%" /index:1 ^| find /i "Architecture"') do set arch=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%" ^| findstr "Index"') do set imgcount=%%i ) :check if /i "%target%"=="%SystemDrive%" (if exist "%target%\Windows\SysWOW64\*" (set arch=x64) else (set arch=x86)) call :counter if %_sum%==0 set "repo=" for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G rem if %winbuild% geq 10240 goto :mainmenu if /i "%dismroot%" neq "%windir%\system32\dism.exe" goto :mainmenu :adk SET regKeyPathFound=1 SET wowRegKeyPathFound=1 REG QUERY "HKLM\Software\Wow6432Node\Microsoft\Windows Kits\Installed Roots" /v KitsRoot10 1>NUL 2>NUL || SET wowRegKeyPathFound=0 REG QUERY "HKLM\Software\Microsoft\Windows Kits\Installed Roots" /v KitsRoot10 1>NUL 2>NUL || SET regKeyPathFound=0 if %wowRegKeyPathFound% EQU 0 ( if %regKeyPathFound% EQU 0 ( goto :mainmenu ) else ( SET regKeyPath=HKLM\Software\Microsoft\Windows Kits\Installed Roots ) ) else ( SET regKeyPath=HKLM\Software\Wow6432Node\Microsoft\Windows Kits\Installed Roots ) FOR /F "skip=2 tokens=2*" %%i IN ('REG QUERY "%regKeyPath%" /v KitsRoot10') DO (SET "KitsRoot=%%j") SET "DandIRoot=%KitsRoot%Assessment and Deployment Kit\Deployment Tools" SET "dismroot=%DandIRoot%\%PROCESSOR_ARCHITECTURE%\DISM\dism.exe" if not exist "%dismroot%" set "dismroot=%windir%\system32\dism.exe" :mainmenu if %autostart%==1 goto :mainboard set _pp= cls echo ============================================================ echo. if /i "%target%"=="%SystemDrive%" ( if %winbuild% lss 10240 (echo 1. Select offline target) else (echo 1. Target ^(%arch%^): Current OS) ) else ( echo 1. Target ^(%arch%^): "%target%" ) echo. if "%repo%"=="" (echo 2. Select updates location) else (echo 2. Updates: "%repo%") echo. if %winbuild% lss 10240 ( if /i "%dismroot%"=="%windir%\system32\dism.exe" (echo 3. Select Windows 10 dism.exe) else (echo 3. DISM: "%dismroot%") ) else ( echo 3. DISM: "%dismroot%" ) echo. if %net35%==1 (echo 4. Enable .NET 3.5: YES) else (echo 4. Enable .NET 3.5: NO) echo. if %cleanup%==0 ( echo 5. Cleanup System Image: NO ) else ( if %resetbase%==0 (echo 5. Cleanup System Image: YES 6. Reset Image Base: NO) else (echo 5. Cleanup System Image: YES 6. Reset Image Base: YES) ) echo. echo ============================================================ echo 0. Start the process echo ============================================================ echo. choice /c 12345609 /n /m "Change a menu option, press 0 to start, or 9 to exit: " if errorlevel 8 goto :eof if errorlevel 7 goto :mainboard if errorlevel 6 (if %resetbase%==1 (set resetbase=0) else (set resetbase=1))&goto :mainmenu if errorlevel 5 (if %cleanup%==1 (set cleanup=0) else (set cleanup=1))&goto :mainmenu if errorlevel 4 (if %net35%==1 (set net35=0) else (set net35=1))&goto :mainmenu if errorlevel 3 goto :dismmenu if errorlevel 2 goto :repomenu if errorlevel 1 goto :targetmenu goto :mainmenu :mainboard if %winbuild% lss 10240 ( if /i "%target%"=="%SystemDrive%" (goto :mainmenu) if /i "%dismroot%"=="%windir%\system32\dism.exe" (goto :mainmenu) ) if "%repo%"=="" (goto :mainmenu) if /i "%target%"=="%SystemDrive%" (set dismtarget=/online&set "mountdir=%target%"&set online=1) else (set dismtarget=/image:"%mountdir%") cls setlocal enableextensions setLocal EnableDelayedExpansion DEL /F /Q %systemroot%\Logs\DISM\* >nul 2>&1 call :extract if %_sum%==0 goto :fin if %online%==1 ( call :update if %net35%==1 call :enablenet35 ) if %offline%==1 ( call :update if %net35%==1 call :enablenet35 ) if %wim%==1 call :mount "%target%" if %dvd%==1 ( call :mount "%target%\sources\install.wim" set imgcount=%bootimg%&call :mount "%target%\sources\boot.wim" if defined isoupdate ( for %%a in (%isoupdate%) do (expand.exe -f:* "%repo%\%%a" "%target%\sources" >nul) ) xcopy /CRY "%target%\efi\microsoft\boot\fonts" "%target%\boot\fonts" >nul if %net35%==1 if exist "%target%\sources\sxs" (rmdir /s /q "%target%\sources\sxs" >nul) ) if exist "%~dp0winre.wim" del /f /q "%~dp0winre.wim" >nul goto :fin :extract title Preparing Packages call :cleaner cls if not exist "%cab_dir%" mkdir "%cab_dir%" call :counter if %_cab% neq 0 (set msu=0&for /f %%G in ('dir /b *Windows10*%arch%*.cab') do (set package=%%G&call :cab1)) if %_msu% neq 0 ( echo ============================================================ echo Extracting .cab files from .msu files echo ============================================================ echo. set msucab=&set msu=1&set count=0 for /f %%G in ('dir /b *Windows10*%arch%*.msu') do (set package=%%G&call :cab1) ) if %_sum%==0 (echo.&echo All detected updates are found installed&goto :eof) echo. echo ============================================================ echo Extracting files from update cabinets ^(.cab^) echo *** This will require some disk space, please be patient *** echo ============================================================ echo. set count=0&set isoupdate= rem cd /d "%cab_dir%" for /f %%G in ('dir /b *Windows10*%arch%*.cab') do (call :cab2 %%G) title Installer for Windows 10 Updates goto :eof :cab1 for /f "tokens=2 delims=-" %%V in ('dir /b %package%') do set kb=%%V if %online%==1 if exist "%target%\Windows\servicing\packages\package_*_for_%kb%~*10.0*.mum" (set /a _sum-=1&goto :eof) if %offline%==1 if exist "%target%\Windows\servicing\packages\package_*_for_%kb%~*10.0*.mum" (set /a _sum-=1&goto :eof) if %msu% equ 0 goto :eof set "msucab=!msucab! %kb%" set /a count+=1 echo %count%/%_msu%: %package% expand.exe -f:*Windows*.cab %package% "%repo%" >nul goto :eof :cab2 set "package=%1" set "dest=%cab_dir%\%~n1" set /a count+=1 echo %count%/%_sum%: %package% rmdir /s /q "%dest%" 1>nul 2>nul mkdir "%dest%" expand.exe -f:* "%package%" "%dest%" 1>nul 2>nul || (set "directcab=!directcab! %package%") if not exist "%dest%\update.mum" (set "isoupdate=!isoupdate! %package%"&goto :eof) if not exist "%dest%\*cablist.ini" goto :eof expand.exe -f:* "%dest%\*.cab" "%dest%" 1>nul 2>nul || (set "directcab=!directcab! %package%") del /f /q "%dest%\*cablist.ini" 1>nul 2>nul del /f /q "%dest%\*.cab" 1>nul 2>nul goto :eof :mount if exist "%mountdir%" ( "%dismroot%" /Unmount-Wim /MountDir:"%mountdir%" /Discard >nul 2>&1 "%dismroot%" /Cleanup-Wim >nul 2>&1 rmdir /s /q "%mountdir%" >nul ) if exist "%winremount%" ( "%dismroot%" /Unmount-Wim /MountDir:"%winremount%" /Discard >nul 2>&1 "%dismroot%" /Cleanup-Wim >nul 2>&1 rmdir /s /q "%winremount%" >nul ) if not exist "%mountdir%" mkdir "%mountdir%" for /L %%i in (1, 1, %imgcount%) do ( echo. echo ============================================================ echo Mounting %~nx1 - index %%i/%imgcount% echo ============================================================ "%dismroot%" /Mount-Wim /Wimfile:%1 /Index:%%i /MountDir:"%mountdir%" if %errorlevel% neq 0 goto :E_MOUNT call :update if %net35%==1 call :enablenet35 if %dvd%==1 if exist "%mountdir%\sources\setup.exe" ( xcopy /CDRY "%mountdir%\sources" "%target%\sources" 1>nul 2>nul del /f /q "%target%\sources\background.bmp" 1>nul 2>nul del /f /q "%target%\sources\xmllite.dll" 1>nul 2>nul ) attrib -S -H -I "%mountdir%\Windows\System32\Recovery\winre.wim" 1>nul 2>nul if exist "%mountdir%\Windows\System32\Recovery\winre.wim" if not exist "%~dp0winre.wim" ( mkdir "!winremount!" echo. echo ============================================================ echo Updating winre.wim echo ============================================================ copy "!mountdir!\Windows\System32\Recovery\winre.wim" "%~dp0winre.wim" >nul "!dismroot!" /Mount-Wim /Wimfile:"%~dp0winre.wim" /Index:1 /MountDir:"!winremount!" if %errorlevel% neq 0 goto :E_MOUNT call :update winre if !discardre!==1 ( "!dismroot!" /Unmount-Wim /MountDir:"!winremount!" /Discard if !errorlevel! neq 0 goto :E_MOUNT ) else ( "!dismroot!" /Image:"!winremount!" /Cleanup-Image /StartComponentCleanup /ResetBase if exist "!winremount!\Windows\WinSxS\ManifestCache\*.bin" ( takeown /f "!winremount!\Windows\WinSxS\ManifestCache\*.bin" /A >nul 2>&1 icacls "!winremount!\Windows\WinSxS\ManifestCache\*.bin" /grant *S-1-5-32-544:F >nul 2>&1 del /f /q "!winremount!\Windows\WinSxS\ManifestCache\*.bin" >nul 2>&1 ) if exist "!winremount!\Windows\WinSxS\Temp\PendingDeletes\*" ( takeown /f "!winremount!\Windows\WinSxS\Temp\PendingDeletes\*" /A >nul 2>&1 icacls "!winremount!\Windows\WinSxS\Temp\PendingDeletes\*" /grant *S-1-5-32-544:F >nul 2>&1 del /f /q "!winremount!\Windows\WinSxS\Temp\PendingDeletes\*" >nul 2>&1 ) if exist "!winremount!\Windows\WinSxS\Temp\TransformerRollbackData\*" ( takeown /f "!winremount!\Windows\WinSxS\Temp\TransformerRollbackData\*" /R /A >nul 2>&1 icacls "!winremount!\Windows\WinSxS\Temp\TransformerRollbackData\*" /grant *S-1-5-32-544:F /T >nul 2>&1 del /s /f /q "!winremount!\Windows\WinSxS\Temp\TransformerRollbackData\*" >nul 2>&1 ) if exist "!winremount!\Windows\inf\*.log" ( del /f /q "!winremount!\Windows\inf\*.log" >nul 2>&1 ) "!dismroot!" /Unmount-Wim /MountDir:"!winremount!" /Commit if !errorlevel! neq 0 goto :E_MOUNT "!dismroot!" /Export-Image /SourceImageFile:"%~dp0winre.wim" /SourceIndex:1 /DestinationImageFile:"%~dp0temp.wim" move /y "%~dp0temp.wim" "%~dp0winre.wim" >nul ) ) if exist "%mountdir%\Windows\System32\Recovery\winre.wim" if exist "%~dp0winre.wim" ( echo. echo ============================================================ echo Adding updated winre.wim echo ============================================================ echo. copy /y "%~dp0winre.wim" "%mountdir%\Windows\System32\Recovery" ) echo. echo ============================================================ echo Unmounting %~nx1 - index %%i/%imgcount% echo ============================================================ if !discard!==1 ( "%dismroot%" /Unmount-Wim /MountDir:"%mountdir%" /Discard ) else ( "%dismroot%" /Unmount-Wim /MountDir:"%mountdir%" /Commit ) if %errorlevel% neq 0 goto :E_MOUNT ) echo. echo ============================================================ echo Rebuilding %~nx1 echo ============================================================ "%dismroot%" /Export-Image /SourceImageFile:%1 /All /DestinationImageFile:"%~dp0temp.wim" move /y "%~dp0temp.wim" %1 >nul goto :eof :update title Processing Updates if [%1]==[] ( echo. echo ============================================================ echo Checking Updates... echo ============================================================ echo. if %online%==1 (set dismtarget=/online) else (set dismtarget=/image:"%mountdir%") set "mumtarget=%mountdir%" ) else ( echo. set dismtarget=/image:"%winremount%" set "mumtarget=%winremount%" ) set servicingstack= set cumulative= set discard=0 set discardre=0 set ldr=&set listc=0&set list=1&set AC=100 rem cd /d "%cab_dir%" set _sum=0 if exist "*.cab" (for /f %%G in ('dir /b *Windows10*%arch%*.cab') do (call set /a _sum+=1)) if exist "*.cab" (for /f %%G in ('dir /b *Windows10*%arch%*.cab') do (call :mum %%G)) if [%1]==[] if %_sum%==0 if exist "%mountdir%\sources\recovery\RecEnv.exe" (call set discard=1&echo All applicable updates are found installed&goto :eof) if [%1]==[] if %_sum%==0 (echo All applicable updates are found installed&goto :eof) if not [%1]==[] if %_sum%==0 (call set discardre=1&echo All applicable updates are found installed&goto :eof) if %listc% lss %ac% (set ldr%list%=%ldr%) title Installer for Windows 10 Updates if defined servicingstack ( if [%1]==[] ( echo. echo ============================================================ echo Installing servicing stack update... echo ============================================================ ) "%dismroot%" %dismtarget% /NoRestart /Add-Package %servicingstack% ) if not defined ldr goto :eof if [%1]==[] ( echo. echo ============================================================ echo Installing updates... echo ============================================================ ) "%dismroot%" %dismtarget% /NoRestart /Add-Package %ldr% if %errorlevel% equ 1726 ( echo. echo retrying.. "%dismroot%" %dismtarget% /Get-Packages >nul "%dismroot%" %dismtarget% /NoRestart /Add-Package %ldr% ) if [%1]==[] call :cleanup goto :eof :mum if %listc% geq %ac% (set /a AC+=100&set /a list+=1&set ldr%list%=%ldr%&set ldr=) set /a listc+=1 set "package=%1" set "dest=%cab_dir%\%~n1" if not exist "%dest%\update.mum" (set /a _sum-=1&goto :eof) for /f "tokens=2 delims=-" %%V in ('dir /b %package%') do set kb=%%V if exist "%mumtarget%\Windows\servicing\packages\package_*_for_%kb%~*10.0*.mum" (set /a _sum-=1&goto :eof) if exist "%mumtarget%\sources\recovery\RecEnv.exe" ( findstr /i /m "WinPE" "%dest%\update.mum" 1>nul 2>nul || (set /a _sum-=1&goto :eof) if exist "%dest%\*_netfx4-netfx_skuidentifier_*.manifest" (set /a _sum-=1&goto :eof) ) if exist "%dest%\*_adobe-flash-for-windows_*.manifest" if not exist "%mumtarget%\Windows\servicing\packages\Adobe-Flash-For-Windows-Package*.mum" (set /a _sum-=1&goto :eof) if exist "%dest%\*_microsoft-windows-servicingstack_*.manifest" (set "servicingstack=!servicingstack! /packagepath:%dest%\update.mum"&goto :eof) findstr /i /m "Package_for_RollupFix" "%dest%\update.mum" 1>nul 2>nul && (set "cumulative=!cumulative! /packagepath:%dest%\update.mum") for %%a in (%directcab%) do ( if /i !package!==%%a (set "ldr=!ldr! /packagepath:!package!"&goto :eof) ) set ldr=!ldr! /packagepath:%dest%\update.mum goto :eof :enablenet35 if exist "%mumtarget%\sources\recovery\RecEnv.exe" goto :eof if exist "%mumtarget%\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe" goto :eof if not defined net35source ( for %%b in (D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do if exist "%%b:\sources\sxs\*netfx3*.cab" set "net35source=%%b:\sources\sxs" if %dvd%==1 if exist "%target%\sources\sxs\*netfx3*.cab" (set "net35source=%target%\sources\sxs") if %wim%==1 for /f "delims=" %%i in ('dir /b /s "%target%"') do if exist "%%~dpisxs\*netfx3*.cab" set "net35source=%%~dpisxs" ) if not defined net35source goto :eof title Processing .NET 3.5 echo. echo ============================================================ echo Adding .NET Framework 3.5 feature echo ============================================================ "%dismroot%" %dismtarget% /NoRestart /Enable-Feature /FeatureName:NetFx3 /Source:"%net35source%" if defined cumulative ( echo. echo ============================================================ echo Reinstalling cumulative update... echo ============================================================ "%dismroot%" %dismtarget% /NoRestart /Add-Package %cumulative% ) call :cleanup goto :eof :counter set _msu=0 set _cab=0 set _sum=0 cd /d "%repo%" if exist "*%arch%*.msu" (for /f %%a in ('dir /b *Windows10*%arch%*.msu') do (call set /a _msu+=1)) if exist "*%arch%*.cab" (for /f %%a in ('dir /b *Windows10*%arch%*.cab') do (call set /a _cab+=1)) set /a _sum=%_msu%+%_cab% >nul goto :eof :cleaner cd /d "%~dp0" if exist "%cab_dir%\*" ( echo. echo ============================================================ echo Removing temporary extracted files... echo ============================================================ echo. rmdir /s /q "%cab_dir%" >nul ) if defined msucab ( for %%a in (%msucab%) do (del /f /q "%repo%\*%%a*.cab" >nul) ) goto :eof :cleanup if %online%==1 (set ksub=SOFTWARE) else (set ksub=SOFTWIM) if exist "%mountdir%\sources\recovery\RecEnv.exe" ( echo. echo ============================================================ echo Resetting WinPE image base echo ============================================================ "%dismroot%" /Image:"%mountdir%" /Cleanup-Image /StartComponentCleanup /ResetBase ) if %cleanup%==1 if not exist "%mountdir%\sources\recovery\RecEnv.exe" if not exist "%mountdir%\Windows\WinSxS\pending.xml" ( if %resetbase%==0 ( if %online%==0 (reg load HKLM\%ksub% "%mountdir%\Windows\System32\Config\SOFTWARE" >nul) reg add HKLM\%ksub%\Microsoft\Windows\CurrentVersion\SideBySide\Configuration /v DisableResetbase /t REG_DWORD /d 1 /f >nul if %online%==0 (reg unload HKLM\%ksub% >nul) echo. echo ============================================================ echo Cleaning up OS image echo ============================================================ "%dismroot%" /Image:"%mountdir%" /Cleanup-Image /StartComponentCleanup ) else ( if %online%==0 (reg load HKLM\%ksub% "%mountdir%\Windows\System32\Config\SOFTWARE" >nul) reg add HKLM\%ksub%\Microsoft\Windows\CurrentVersion\SideBySide\Configuration /v DisableResetbase /t REG_DWORD /d 0 /f >nul if %online%==0 (reg unload HKLM\%ksub% >nul) echo. echo ============================================================ echo Resetting OS image base echo ============================================================ "%dismroot%" /Image:"%mountdir%" /Cleanup-Image /StartComponentCleanup /ResetBase ) ) if exist "%mountdir%\Windows\WinSxS\ManifestCache\*.bin" ( takeown /f "%mountdir%\Windows\WinSxS\ManifestCache\*.bin" /A >nul 2>&1 icacls "%mountdir%\Windows\WinSxS\ManifestCache\*.bin" /grant *S-1-5-32-544:F >nul 2>&1 del /f /q "%mountdir%\Windows\WinSxS\ManifestCache\*.bin" >nul 2>&1 ) if exist "%mountdir%\Windows\WinSxS\Temp\PendingDeletes\*" ( takeown /f "%mountdir%\Windows\WinSxS\Temp\PendingDeletes\*" /A >nul 2>&1 icacls "%mountdir%\Windows\WinSxS\Temp\PendingDeletes\*" /grant *S-1-5-32-544:F >nul 2>&1 del /f /q "%mountdir%\Windows\WinSxS\Temp\PendingDeletes\*" >nul 2>&1 ) if exist "%mountdir%\Windows\WinSxS\Temp\TransformerRollbackData\*" ( takeown /f "%mountdir%\Windows\WinSxS\Temp\TransformerRollbackData\*" /R /A >nul 2>&1 icacls "%mountdir%\Windows\WinSxS\Temp\TransformerRollbackData\*" /grant *S-1-5-32-544:F /T >nul 2>&1 del /s /f /q "%mountdir%\Windows\WinSxS\Temp\TransformerRollbackData\*" >nul 2>&1 ) if exist "%mountdir%\Windows\inf\*.log" ( del /f /q "%mountdir%\Windows\inf\*.log" >nul 2>&1 ) if exist "%mountdir%\Windows\CbsTemp\*" ( for /f %%i in ('"dir /s /b /ad %mountdir%\Windows\CbsTemp\*" 2^>nul') do (RD /S /Q %%i >nul 2>&1) del /s /f /q "%mountdir%\Windows\CbsTemp\*" >nul 2>&1 ) goto :eof :targetmenu cls echo ============================================================ echo Enter the path for one of: echo - Distribution folder ^(extracted iso, copied dvd/usb^) echo - WIM file echo - Mounted directory, offline image drive letter echo. echo or just press 'Enter' to return to options menu echo ============================================================ echo. set /p _pp= if "%_pp%"=="" goto :mainmenu if "%_pp:~-1%"=="\" set "_pp=%_pp:~0,-1%" set "target=%_pp%" if /i "%target%"=="%SystemDrive%" goto :mainmenu echo %target%| findstr /E /I "\.wim" >nul if %errorlevel%==0 ( set wim=1 ) else ( if exist "%target%\boot\bcd" set dvd=1 if exist "%target%\Windows\regedit.exe" set offline=1 ) if %offline%==0 if %wim%==0 if %dvd%==0 (set "MESSAGE=Specified location is not valid"&goto :E_Target) if %offline%==1 ( dir /b "%target%\Windows\servicing\Version\10.0.*" 1>nul 2>nul || (set "MESSAGE=Detected target offline image is not Windows 10"&goto :E_Target) set "mountdir=%target%" if exist "%target%\Windows\SysWOW64\*" (set arch=x64) else (set arch=x86) ) if %dvd%==1 ( dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" /index:1 | find /i "Version : 10.0" >nul || (set "MESSAGE=Detected install.wim version is not Windows 10"&goto :E_Target) for /f "tokens=4 delims=:. " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" /index:1 ^| find /i "Version :"') do set build=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" /index:1 ^| find /i "Architecture"') do set arch=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\install.wim" ^| findstr "Index"') do set imgcount=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%\sources\boot.wim" ^| findstr "Index"') do set bootimg=%%i ) if %wim%==1 ( dism /english /get-wiminfo /wimfile:"%target%" /index:1 | find /i "Version : 10.0" >nul || (set "MESSAGE=Detected wim file version is not Windows 10"&goto :E_Target) for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%" /index:1 ^| find /i "Architecture"') do set arch=%%i for /f "tokens=2 delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%target%" ^| findstr "Index"') do set imgcount=%%i ) set "repo=%cd%" call :counter if %_sum%==0 set "repo=" goto :mainmenu :repomenu cls echo ============================================================ echo Enter the Updates location path echo. echo or just press 'Enter' to return to options menu echo ============================================================ echo. set /p _pp= if "%_pp%"=="" goto :mainmenu if "%_pp:~-1%"=="\" set "_pp=%_pp:~0,-1%" set "repo=%_pp%" if not exist "%repo%\*Windows10*.msu" if not exist "%repo%\*Windows10*.cab" (goto :E_Repo) goto :mainmenu :dismmenu cls echo. echo If current OS is lower than Windows 10, and Windows 10 ADK is not detected echo you must install it, or specify a manual Windows 10 dism.exe for integration echo you can select dism.exe located in Windows 10 distribution "sources" folder echo. echo. echo Enter the full path for dism.exe echo. echo or just press 'Enter' to return to options menu echo ============================================================ echo. set /p _pp= if "%_pp%"=="" goto :mainmenu set "dismroot=%_pp%" if not exist "%dismroot%" ( echo not found: "%dismroot%" pause set "dismroot=%windir%\system32\dism.exe" ) "%dismroot%" /? | findstr /I /B "Version" >dismver.txt for /f "tokens=4 delims=:. " %%i in (dismver.txt) do set _ver=%%i del /f /q dismver.txt if %_ver% lss 10240 ( echo. echo ERROR: DISM version is less than 10.0.10240.16384 pause set "dismroot=%windir%\system32\dism.exe" ) goto :mainmenu :E_Target echo. echo ============================================================ echo ERROR: %MESSAGE% echo ============================================================ echo. echo Press any key to continue. pause >nul set "target=%SystemDrive%" goto :mainmenu :E_Repo echo. echo ============================================================ echo ERROR: Specified location is not valid echo ============================================================ echo. echo Press any key to continue. pause >nul set "repo=%cd%" call :counter if %_sum%==0 set "repo=" goto :mainmenu :E_MOUNT echo. echo ============================================================ echo ERROR: Could not mount or unmount WIM image echo ============================================================ echo. echo Press any key to exit. pause >nul exit :E_Admin echo. echo ============================================================ echo ERROR: right click on the script and 'Run as administrator' echo ============================================================ echo. echo Press any key to exit. pause >nul goto :eof :ISO if not exist "%~dp0oscdimg.exe" if not exist "%~dp0cdimage.exe" goto :eof if exist "%~dp0Win10Updated.iso" (echo Win10Updated.iso already exist in current directory&goto :eof) echo. echo ============================================================ echo Creating updated ISO file... echo ============================================================ echo. if exist "%~dp0cdimage.exe" (set _ff=cdimage.exe) else (set _ff=oscdimg.exe) %_ff% -m -o -u2 -udfver102 -bootdata:2#p0,e,b"%target%\boot\etfsboot.com"#pEF,e,b"%target%\efi\microsoft\boot\efisys.bin" -l"%build%u" "%target%" Win10_%build%_Updated.iso goto :eof :fin title Installer for Windows 10 Updates call :cleaner if %dvd%==1 (if exist "%mountdir%" rmdir /s /q "%mountdir%" >nul) if %wim%==1 (if exist "%mountdir%" rmdir /s /q "%mountdir%" >nul) if exist "%winremount%" rmdir /s /q "%winremount%" >nul if %dvd%==1 if %iso%==1 call :ISO echo. echo ============================================================ echo Finished echo ============================================================ echo. if %online%==1 if exist "%windir%\winsxs\pending.xml" ( echo. echo ============================================================ echo System restart is required to complete installation echo ============================================================ echo. ) echo. echo Press any key to exit. pause >nul goto :eof
I edit the code by mistake I think, hmm through iso. its that can be I used without windows kits? then updated windows just need last update not like I do? esd come with 15063.483 then update first to 15063.502.. then 15063.540.. until last update.. or just need put last update 15063.675 like you did? sorry I just newbie trying to learn new things
oh thats result extracting iso..ups.. sorry I just wake up.. and btw for updating.. just need last update .msu?
1511 recieved extended support, 6 more months. Btw if deferring feature updates set to 180 days on my 1703, then how does it work? I mean its 180 days after the general availabilty of 1709?
Enterprise and education only: https://forums.mydigitallife.net/threads/windows-10-hotfix-repository.57050/page-241#post-1389066