JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
This tutorial helps you to create perfect post setup for Windows 7 - 10 setup media
What you can easily install using this tutorial?
1) Microsoft Office
2) Windows or Office updates (MSU / CAB / MSP)
3) Your own applications with predefined switch
4) Apply registry tweaks
5) Certificates CER files
6) Custom scripts - PS1 / CMD / BAT
Every installation steps are run before user logon after OOBE, this mean User Account is already created so all applications and registry tweaks should be installed without problem
We are going to use
RunOnceEx
method as its most comfortable and suitable way because it is inbox Windows component.
RunOnceEx
is really old but still working method as part of
iernonce.dll + iernonce.dll.mui + IEAdvpack.dll
(This file exist from Internet Explorer 9+, so doesn't exist in non updated Windows 7)
.
So this mean you need to have Internet Explorer component in your Windows install.wim / install.esd.
If you want to remove Internet Explorer, you can still use this method!
Just protect these files 3 (6) files in components section in NTLite, you don't need to do it manually, just download and use attached preset
RunOnceEx_Protector.xml
Lets start with preparing needed folder structure on your setup media
You also need
Scripts
folder inside
sources\$OEM$\$$\Setup\Scripts
- this folder is needed to call
OOBE.cmd
as this script is natively called by Windows Setup
in all situations
not like SetupComplete.cmd and OEM key "problem"
Save text bellow as
OOBE.cmd
into Scripts folder you created in previous step.
SET FINTEXT="Windows Post-Setup"
SET CERTEXT="Installing certificates"
SET SCRIPTTEXT="Executing scripts"
SET OFFTEXT="Installing Microsoft Office"
SET MSITEXT="Installing MSI packages"
SET ACTTEXT="Activating products"
SET UPDTEXT="Installing updates"
SET SILTEXT="Installing applications"
SET TWKTEXT="Applying personal settings"
set DRVCLNTEXT="Removing unused drivers"
SET RBTTEXT="Reboot"
FOR %%I 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 IF EXIST %%I:\sources\install.esd SET DRIVE=%%I:
IF "%DRIVE%" == "" FOR %%I 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 IF EXIST %%I:\sources\install.wim SET DRIVE=%%I:
IF "%DRIVE%" == "" FOR %%I 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 IF EXIST %%I:\sources\install.swm SET DRIVE=%%I:
SET ROE=HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
IF EXIST "%WINDIR%\System32\iernonce.dll" (
REG ADD %ROE% /v Title /d %FINTEXT% /f
REG ADD %ROE% /v Flags /t REG_DWORD /d "00000024" /f
REM From Windows 8 up kill explorer.exe
IF NOT EXIST "%WINDIR%\Servicing\Version\6.1.*" (
REG ADD %ROE%\000 /ve /d " " /f
REG ADD %ROE%\000 /v "KillExplorer" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %WINDIR%\setup\scripts\Watcher.cmd\"" /f
REM Install certificates into My / Root / CA store
IF EXIST "%DRIVE%\setup\*.cer" (
REG ADD %ROE%\001 /ve /d %CERTEXT% /f
FOR %%U IN ("%DRIVE%\setup\*.cer") DO (
REG ADD %ROE%\001 /v "%%~nU_TrustedPublisher" /d "%WINDIR%\System32\certutil.exe -addstore TrustedPublisher %%U" /f
REG ADD %ROE%\001 /v "%%~nU_My" /d "%WINDIR%\System32\certutil.exe -addstore My %%U" /f
REG ADD %ROE%\001 /v "%%~nU_CA" /d "%WINDIR%\System32\certutil.exe -addstore CA %%U" /f
REG ADD %ROE%\001 /v "%%~nU_Root" /d "%WINDIR%\System32\certutil.exe -addstore Root %%U" /f
REM Auto-install Microsoft Office 2008 - 2016
IF EXIST "%DRIVE%\office\%ARCH%\setup.exe" (
REG ADD %ROE%\002 /ve /d %OFFTEXT% /f
REG ADD %ROE%\002 /v "MSO" /d "%DRIVE%\office\%ARCH%\setup.exe" /f
) ELSE IF EXIST "%DRIVE%\office\All\setup.exe" (
REG ADD %ROE%\002 /ve /d %OFFTEXT% /f
REG ADD %ROE%\002 /v "MSO" /d "%DRIVE%\office\All\setup.exe" /f
REM Auto-install Microsoft Office 2019 / 365
IF EXIST "%DRIVE%\office\YAOCTRI_Installer.cmd" (
REG ADD %ROE%\002 /ve /d %OFFTEXT% /f
REG ADD %ROE%\002 /v "MSO" /d "%DRIVE%\office\YAOCTRI_Installer.cmd" /f
IF EXIST "%DRIVE%\office\YAOCTRIR_Installer.cmd" (
REG ADD %ROE%\002 /ve /d %OFFTEXT% /f
REG ADD %ROE%\002 /v "MSO" /d "%DRIVE%\office\YAOCTRIR_Installer.cmd" /f
REM Auto-install %ARCH% depend MSI packages
IF EXIST "%DRIVE%\setup\*-%ARCH%.msi" (
REG ADD %ROE%\003 /ve /d %MSITEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-%ARCH%.msi") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\003 /v "%%~nC" /d "%%C %%A" /f
) else (
REG ADD %ROE%\003 /v "%%~nC" /d "msiexec /i %%C /quiet /norestart" /f
REM Auto-install %ARCH% independent MSI packages
IF EXIST "%DRIVE%\setup\*-all.msi" (
REG ADD %ROE%\003 /ve /d %MSITEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-all.msi") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\003 /v "%%~nC" /d "%%C %%A" /f
) else (
REG ADD %ROE%\003 /v "%%~nC" /d "msiexec /i %%C /quiet /norestart" /f
REM Windows + Office activation
IF EXIST "%DRIVE%\support\Activate.cmd" (
REG ADD %ROE%\004 /ve /d %ACTTEXT% /f
REG ADD %ROE%\004 /v "Activation" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %DRIVE%\support\Activate.cmd\"" /f
REM Install MSU / CAB / MSP Packages from %DRIVE%\updates
REG ADD %ROE%\005 /ve /d %UPDTEXT% /f
FOR %%U IN ("%DRIVE%\updates\*%ARCH%*.msu") DO REG ADD %ROE%\005 /v "%%~nU" /d "dism /Online /Add-Package /PackagePath:%%U /quiet /norestart" /f
FOR %%U IN ("%DRIVE%\updates\*%ARCH%*.cab") DO REG ADD %ROE%\005 /v "%%~nU" /d "dism /Online /Add-Package /PackagePath:%%U /quiet /norestart" /f
FOR %%U IN ("%DRIVE%\updates\*%ARCH%*.msp") DO REG ADD %ROE%\005 /v "%%~nU" /d "msiexec /i %%U /quiet /norestart" /f
REM Auto-install %ARCH% depend software with predefined silent switch
IF EXIST "%DRIVE%\setup\*-%ARCH%.exe" (
REG ADD %ROE%\006 /ve /d %SILTEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-%ARCH%.exe") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\006 /v "%%~nC" /d "%%C %%A" /f
REM Auto-install %ARCH% independent software with predefined silent switch
IF EXIST "%DRIVE%\setup\*-all.exe" (
REG ADD %ROE%\006 /ve /d %SILTEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-all.exe") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\006 /v "%%~nC" /d "%%C %%A" /f
REM Apply REG Tweaks from %DRIVE%\setup
IF EXIST "%DRIVE%\setup\*.reg" (
REG ADD %ROE%\007 /ve /d %TWKTEXT% /f
FOR %%U IN ("%DRIVE%\setup\*.reg") DO REG ADD %ROE%\007 /v "%%~nU" /d "regedit /s %%U" /f
REM Remove unused drivers from DriverStore
IF EXIST "%WINDIR%\setup\scripts\CleanDriverStore.cmd" (
REG ADD %ROE%\008 /ve /d %DRVCLNTEXT% /f
REG ADD %ROE%\008 /v "Driver CleanUp" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %WINDIR%\setup\scripts\CleanDriverStore.cmd\"" /f
REM Custom PS1 / CMD / BAT scripts execution
REM PS1
FOR %%C IN ("%DRIVE%\setup\*.ps1") DO (
REG ADD %ROE%\009 /ve /d %SCRIPTTEXT% /f
REG ADD %ROE%\009 /v "%%C" /d "%WINDIR%\System32\cmd.exe /min /c \"start /wait powershell -NoLogo -WindowStyle Hidden -File \"%%C\"\"" /f
REM CMD
FOR %%C IN ("%DRIVE%\setup\*.cmd") DO (
REG ADD %ROE%\009 /ve /d %SCRIPTTEXT% /f
REG ADD %ROE%\009 /v "%%C" /d "%WINDIR%\System32\cmd.exe /min /c \"start /wait %%C\"" /f
REM BAT
FOR %%C IN ("%DRIVE%\setup\*.bat") DO (
REG ADD %ROE%\009 /ve /d %SCRIPTTEXT% /f
REG ADD %ROE%\009 /v "%%C" /d "%WINDIR%\System32\cmd.exe /min /c \"start /wait %%C\"" /f
REM Polish Start menu items and reboot
REG ADD %ROE%\010 /ve /d %RBTTEXT% /f
if exist "%WINDIR%\setup\scripts\StartMenu.cmd" (
REG ADD %ROE%\010 /v "01_StartMenu" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %WINDIR%\setup\scripts\StartMenu.cmd\"" /f
REG ADD %ROE%\010 /v "02_Reboot" /d "%WINDIR%\System32\shutdown.exe -r -f -t 0" /f
REM Enable ROE
REG ADD %ROE% /d "%WINDIR%\System32\rundll32.exe %WINDIR%\System32\iernonce.dll,RunOnceExProcess" /f
Continue in next post
:PerformCheck
for /f "tokens=1 delims= " %%G in ('tasklist ^| findstr %ProcessToFind%') do set RunningProcess=%%G
if "%RunningProcess%" == "%ProcessToFind%" (
taskkill /im %ProcessToFind% /f
) else (
timeout 5 >nul
goto :PerformCheck
Now you are almost done to add Microsoft Office, Applications installers and your registry keys (You can also integrate registry keys directly into you image using NTLite registry page, but if you are installing for example WinRar and you want to configure application settings you need to do it using this method)
Add your unattented Office installer, tutorial for 2007 / 2010 / 2013 / 2016 can be found
here
, for Office 2019 / 365 use
YAOCTRI
. So next step is to simply copy installation files into Office folder you created before. But you need to remember some things around it.
If you are using Office 2007, place them into
All
folder as this Office suite is only 32bit (x86)
For Office 2010 / 2013 / 2016, place your 32bit setup into
x86
folder, 64bit setup into
x64
For Office 2019 / 365 place all needed files created by
YAOCTRI
directly into Office folder
For fully silent installation you need to modify
YAOCTRI_Installer.cmd /
YAOCTRIR_Installer.cmd
using notepad
:TheEnd
section to looks like this, so script ends after installing and Post-Setup can continue as usual
if exist "!_work!\C2R_*.ini" for /f "tokens=* delims=" %%# in ('dir /b "!_work!\C2R_*.ini"') do set "C2Rconfig=!_work!\%%#"
And replace it with those 2 lines, this means config file will be loaded with right architecture, so x64 on 64bit system, x86 on 32bit system.
if exist "!_work!\C2R*_*%arch%.ini" for /f "tokens=* delims=" %%# in ('dir /b "!_work!\C2R*_*%arch%.ini"') do set "C2Rconfig=!_work!\%%#"
If you have needed Windows updates and you don't have time to re-create your install.wim / install.esd using NTLite, simply place them inside
Updates
folder you created before. Don't forget to keep x64 / x86 in file name so script (OOBE.cmd) can detect correct version to install as architecture is detected from installed Windows - this means if you are using 32bit Windows on 64bit CPU - for some reason, like 4GB RAM only, so everything is correctly installed.
This was really easy right?
Now is time to add your applications installers inside
Setup
folder. If you want add
MSI
installer it's easy, just place them inside and it will be silently installed (automatically using
/quiet /norestart
parameters). If you want specify your own switch it's also easy and same way as specifying silent switch for
EXE
installers described bellow.
If there are 32bit and 64bit installer for your application, keep
-x64
or
-x86
in file name. If it's architecture independent keep
-all
in file name.
For better explain how it works.
OOBE.cmd
search for
*.exe
or
*.msi
file in
%DVD%\setup
( DVD / USB drive is detected by searching for
\sources\install.esd
or
wim
or
swm
when
OOBE.cmd
is launched). And after that is installer file name splited by
- (dash)
delimiter to open correct
TXT
file with switch for both architecture.
So this is how looks my setup folder.
Specify your switch as only single line into
TXT
file. For example in
.NET5.txt
is silent setup switch
/install /quiet /norestart
You can add / delete applications installers without need to modify script. This folder is dynamically readed so you should love this solution
If you place
.REG
file inside setup folder and it will be automatically applied.
If you want to cleanup Start Menu items
OOBE.cmd
looks for
StartMenu.cmd
in same folder. This is example of script which performs moving or deleting Start Menu items in my Windows 7 installation
move /y "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Embedded Lockdown Manager\Embedded Lockdown Manager.lnk" "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools\Embedded Lockdown Manager.lnk"
if exist "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Embedded Lockdown Manager" rd /q /s "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Embedded Lockdown Manager"
move /y "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Server Essentials\ClientDeployPrograms.lnk" "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\ClientDeployPrograms.lnk"
if exist "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Server Essentials" rd /q /s "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Server Essentials"
if exist "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Silverlight" rd /q /s "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Silverlight"
move /y "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Virtual PC" "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Virtual PC"
move /y "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Fax and Scan.lnk" "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Fax and Scan.lnk"
move /y "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\XPS Viewer.lnk" "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\XPS Viewer.lnk"
move /y "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools" "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\System Tools"
move /y "%SYSTEMDRIVE%\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools" "%SYSTEMDRIVE%\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools"
del /q /s "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Sidebar.lnk"
move /y "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Default Programs.lnk" "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\System Tools\Default Programs.lnk"
REM Custom 3rd apps
if exist "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\wufuc" rd /q /s "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\wufuc"
if exist "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Command Line Clipboard" rd /q /s "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Command Line Clipboard"
If you have integrated bunch of drivers to have universal setup media for more hardware and you want remove unused drivers to save space in your DriverStore use this script as
CleanDriverStore.cmd
, place them also in folder with
OOBE.cmd
echo Creating Restore Point
"%WinDir%\System32\wbem\wmic.exe" /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "DriverStore CleanUp %DATE%", 100, 1 >nul
REM Get count of all OEM drivers
set OEMDRVCNT=0
for %%A in ("%WinDir%\inf\OEM*.inf") do set /a OEMDRVCNT+=1
echo.
REM Remove unused 3rd drivers, drivers in use will be skipped with error
for /L %%A in (0,1,%OEMDRVCNT%) do (
if exist "%WinDir%\inf\OEM%%A.inf" (
echo Deleting "%WinDir%\inf\OEM%%A.inf"
"%WinDir%\system32\pnputil.exe" -d "OEM%%A.inf"
Continue in next post
If you want automatically activate Windows and Office, create
Activate.cmd
inside
support
folder and follow
Windows
and
Office
Microsoft documents.
If you are going to install your own Windows product key specified in
Activate.cmd
just add these commands at the end of
OOBE.cmd
before
exit
command
.
So you avoid problem with Windows to use OEM key automatically readed from BIOS, discussed
here
.
REM Remove generic installation product key
REM Uninstall the current product key from Windows and put it into an unlicensed state
"%WinDir%\System32\cscript.exe" /Nologo "%WinDir%\System32\slmgr.vbs" /upk
REM Remove the product key from the registry if it's still there
"%WinDir%\System32\cscript.exe" /Nologo "%WinDir%\System32\slmgr.vbs" /cpky
REM Reset Windows Activation
"%WinDir%\System32\cscript.exe" /Nologo "%WinDir%\System32\slmgr.vbs" /rearm
Removing product key is also usefull if you have integrated product key inside
install.esd (wim / swm)
for some reason, more info
here
.
You can include PS1 / CMD / BAT scripts inside setup folder, they will be automatically executed. Just remember to have
exit
command inside to keep it unattented.
Also if you need add automatically certificates, place any
.CER
files into setup folder and they will be added into TrustedPublisher / My / Root and CA store using
certutil
.
After you completed these steps create ISO and perform installation. After OOBE phase is finished (User is created and you specified some settings) you should see this screen
Added certificates installing into My, Root, CA store
Added custom scripts execution support, PS1, CMD and BAT
Added missing depencies for images with Internet Explorer 9 up
Attached
RunOnceEx_Protector.xml
for easier Internet Explorer removal with working RunOnceEx
16.10.2020
Added missing information for multi architecture Office 2019 / 365 installer
14.10.2020
Added support for installing Office 2019 / 365
20.09.2020
Redesigned and added forgotten information about
Activate.cmd
Thanks, it is definitely a usefull way to do these jobs. Will use some of them in the future!
Just an idea; do you think you can add support for subdirectories for setup folder? So people can group into folders...
BTW why do you remove windows key? and will u share activate.cmd? It looks like kms_vl_all? or did u integrate hwidgen too
Im going to test idea with subfolders. Seems interesting.
Removing product key is usefull only in some scenarios.
Like image with preintegrated key by DISM
George King
Awesome tutorial. One question, like
ege914
was saying, is it possible to add subdirectories for the setup folder under $OEM$ - see the snip below just to get general idea:
View attachment 3955
As i see you are still placing software folder under C drive

if u use my script then it should look like this,
under main directory of iso
Im going to test idea with subfolders. Seems interesting.
Removing product key is usefull only in some scenarios.
Like image with preintegrated key by DISM
Or if setup automaticaly install different key from BIOS, discussed
here
.
For
Activate.cmd
inside
support
folder, I forget to mention. Use what you want, I designed it for original Microsoft way for
Windows
or
Office
Also maybe you can add support for updates folder too.. subfolders as W7 W8 W8.1 W10? so AIO iso's can process correct updates according to installed environment?
George King
Awesome tutorial. One question, like
ege914
was saying, is it possible to add subdirectories for the setup folder under $OEM$ - see the snip below just to get general idea:
View attachment 3955
Why you still want to copy files to system drive, if you can install files from DVD / USB drive using this tutorial? Maybe I'm missing some usefull point?
Also maybe you can add support for updates folder too.. subfolders as W7 W8 W8.1 W10? so AIO iso's can process correct updates according to installed environment?
I don't think its needed, as updates for different operting system going to fail.. But it can be done by reading filename 6.1 - Windows 7 etc.. But also seems interesting, I will test it to have clear way instead of trying installing W10 update on W7
ege914
write me PM, I want to discuss about more ideas

Also maybe you can add support for updates folder too.. subfolders as W7 W8 W8.1 W10? so AIO iso's can process correct updates according to installed environment?
ege914
I get what you were saying - I basically was doing some experimental to see what work and what not

Why you still want to copy files to system drive, if you can install files from DVD / USB drive using this tutorial? Maybe I'm missing some usefull point?
George King
I already got a solution that work for me - I was just inquiring for experimental purpose and ideas. But I get what you are saying.

This tutorial helps you to create perfect post setup for Windows 7 - 10 setup media.
What you can easily install using this tutorial?
1) Microsoft Office
2) Windows or Office updates (MSU / CAB / MSP)
3) Your own applications with predefined switch
4) Apply registry tweaks
Every installation steps are run before user logon after OOBE, this mean User Account is already created so all applications and registry tweaks should be installed without problem
We are going to use
RunOnceEx
method as its most comfortable and suitable way because it is inbox Windows component.
RunOnceEx
is really old but still working method as part of
iernonce.dll + iernonce.dll.mui.
So this mean you need to have Internet Explorer component in your Windows install.wim / install.esd.
If you want to remove Internet Explorer, you can still use this method!
Just protect these files 2 (4) files in components section in NTLite, don't forget to replace
cs-CZ
with your language code
View attachment 3940
Lets start with preparing needed folder structure on your setup media
View attachment 3941
You also need
Scripts
folder inside
sources\$OEM$\$$\Setup\Scripts
- this folder is needed to call
OOBE.cmd
as this script is natively called by Windows Setup
in all situations
not like SetupComplete.cmd and OEM key "problem"
Save text bellow as
OOBE.cmd
into Scripts folder you created in previous step.
SET OFFTEXT="Installing Microsoft Office"
SET MSITEXT="Installing MSI packages"
SET ACTTEXT="Activating products"
SET UPDTEXT="Installing updates"
SET SILTEXT="Installing applications"
SET TWKTEXT="Applying personal settings"
set DRVCLNTXT="Removing unused drivers"
SET RBTTEXT="Reboot"
FOR %%I 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 IF EXIST %%I:\sources\install.esd SET DRIVE=%%I:
IF "%DRIVE%" == "" FOR %%I 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 IF EXIST %%I:\sources\install.wim SET DRIVE=%%I:
IF "%DRIVE%" == "" FOR %%I 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 IF EXIST %%I:\sources\install.swm SET DRIVE=%%I:
SET ROE=HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
IF EXIST "%WINDIR%\System32\iernonce.dll" (
REG ADD %ROE% /v Title /d %FINTEXT% /f
REG ADD %ROE% /v Flags /t REG_DWORD /d "00000014" /f
REM From Windows 8 up kill explorer.exe
IF NOT EXIST "%WINDIR%\Servicing\Version\6.1.*" (
REG ADD %ROE%\000 /ve /d " " /f
REG ADD %ROE%\000 /v "KillExplorer" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %WINDIR%\setup\scripts\Watcher.cmd\"" /f
REM Auto-install Microsoft Office
IF EXIST "%DRIVE%\office\%ARCH%\setup.exe" (
REG ADD %ROE%\001 /ve /d %OFFTEXT% /f
REG ADD %ROE%\001 /v "MSO" /d "%DRIVE%\office\%ARCH%\setup.exe" /f
) ELSE IF EXIST "%DRIVE%\office\All\setup.exe" (
REG ADD %ROE%\001 /ve /d %OFFTEXT% /f
REG ADD %ROE%\001 /v "MSO" /d "%DRIVE%\office\All\setup.exe" /f
REM Auto-install %ARCH% depend MSI packages
IF EXIST "%DRIVE%\setup\*-%ARCH%.msi" (
REG ADD %ROE%\002 /ve /d %MSITEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-%ARCH%.msi") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\002 /v "%%~nC" /d "%%C %%A" /f
) else (
REG ADD %ROE%\002 /v "%%~nU" /d "msiexec /i %%U /quiet /norestart" /f
REM Auto-install %ARCH% independent MSI packages
IF EXIST "%DRIVE%\setup\*-all.msi" (
REG ADD %ROE%\002 /ve /d %MSITEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-all.msi") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\002 /v "%%~nC" /d "%%C %%A" /f
) else (
REG ADD %ROE%\002 /v "%%~nU" /d "msiexec /i %%U /quiet /norestart" /f
REM Windows + Office activation
IF EXIST "%DRIVE%\support" (
REG ADD %ROE%\003 /ve /d %ACTTEXT% /f
REG ADD %ROE%\003 /v "Activation" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %DRIVE%\support\Activate.cmd\"" /f
REM Install MSU / CAB / MSP Packages from %DRIVE%\updates
REG ADD %ROE%\004 /ve /d %UPDTEXT% /f
FOR %%U IN ("%DRIVE%\updates\*%ARCH%*.msu") DO REG ADD %ROE%\004 /v "%%~nU" /d "dism /Online /Add-Package /PackagePath:%%U /quiet /norestart" /f
FOR %%U IN ("%DRIVE%\updates\*%ARCH%*.cab") DO REG ADD %ROE%\004 /v "%%~nU" /d "dism /Online /Add-Package /PackagePath:%%U /quiet /norestart" /f
FOR %%U IN ("%DRIVE%\updates\*%ARCH%*.msp") DO REG ADD %ROE%\004 /v "%%~nU" /d "msiexec /i %%U /quiet /norestart" /f
REM Auto-install %ARCH% depend software with predefined silent switch
IF EXIST "%DRIVE%\setup\*-%ARCH%.exe" (
REG ADD %ROE%\005 /ve /d %SILTEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-%ARCH%.exe") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\005 /v "%%~nC" /d "%%C %%A" /f
REM Auto-install %ARCH% independent software with predefined silent switch
IF EXIST "%DRIVE%\setup\*-all.exe" (
REG ADD %ROE%\005 /ve /d %SILTEXT% /f
FOR %%C IN ("%DRIVE%\setup\*-all.exe") DO (
REM Get Installer
FOR /F "tokens=1 delims=-" %%G IN ("%%~nC") DO (
REM Get Switch
if exist "%DRIVE%\setup\%%G.txt" (
for /F "usebackq tokens=*" %%A in ("%DRIVE%\setup\%%G.txt") do (
REG ADD %ROE%\005 /v "%%~nC" /d "%%C %%A" /f
REM Apply REG Tweaks from %DRIVE%\setup
IF EXIST "%DRIVE%\setup\*.reg" (
REG ADD %ROE%\006 /ve /d %TWKTEXT% /f
FOR %%U IN ("%DRIVE%\setup\*.reg") DO REG ADD %ROE%\006 /v "%%~nU" /d "regedit /s %%U" /f
REM Remove unused drivers from DriverStore
IF EXIST "%WINDIR%\setup\scripts\CleanDriverStore.cmd" (
REG ADD %ROE%\007 /ve /d %DRVCLNTXT% /f
REG ADD %ROE%\007 /v "Driver CleanUp" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %WINDIR%\setup\scripts\CleanDriverStore.cmd\"" /f
REM Polish Start menu items and reboot
REG ADD %ROE%\008 /ve /d %RBTTEXT% /f
if exist "%WINDIR%\setup\scripts\StartMenu.cmd" (
REG ADD %ROE%\008 /v "01_StartMenu" /d "%WINDIR%\System32\cmd.exe /c \"start /min /wait %WINDIR%\setup\scripts\StartMenu.cmd\"" /f
REG ADD %ROE%\008 /v "02_Reboot" /d "%WINDIR%\System32\shutdown.exe -r -f -t 0" /f
REM Enable ROE
REG ADD %ROE% /d "%WINDIR%\System32\rundll32.exe %WINDIR%\System32\iernonce.dll,RunOnceExProcess" /f
REM Remove generic installation product key
REM Uninstall the current product key from Windows and put it into an unlicensed state
REM "%WinDir%\System32\cscript.exe" /Nologo "%WinDir%\System32\slmgr.vbs" /upk
REM Remove the product key from the registry if it's still there
REM "%WinDir%\System32\cscript.exe" /Nologo "%WinDir%\System32\slmgr.vbs" /cpky
REM Reset Windows Activation
REM "%WinDir%\System32\cscript.exe" /Nologo "%WinDir%\System32\slmgr.vbs" /rearm
Continue in next post
Hi, this is a really great tutorial however i'm new to NTLite do you have a step by step tutorial which I can follow a long?
and is it possible to add a custom flexible like this
https://gregramsey.net/?s=script+to+import+custom+drivers
in NTLite? I think it might be more useful to just use driver you need instead of adding all driver into image.
thanks in advance
dimand
I going to update script with drivers installing section later in week or so.
ege914
I'm busy right now, give me some time..
Hello sir. If I would mind, can you explain it with video?
dimand
I going to update script with drivers installing section later in week or so.
ege914
I'm busy right now, give me some time..
Looking forward, as I also need to update my image so will wait abit, hope you can release soon it vedio if possible.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…