For the Protocol: Challenge: 1 Me: 2 . Correct me if wrong but for Home Premium on UEFI machine that should come as near to a Gotcha! as even possible .... : Spoiler http://forums.mydigitallife.net/attachment.php?attachmentid=32369&stc=1
OK, after testing on Pro and HP on GPT and Pro on MBR, it seems it's easier than expected. Fortunately we can ask WMIC for help instead of slightly short-mouthed DISKPART ... YAY . Code: wmic partition where (BootPartition='True' and DiskIndex='0') get Type will answer 'GPT: Disklabel' for (apparently) GPT systems and 'Installable File System' for MBR ones. Very kind, i like that. It only needs to change the Partition check at the beginning to: Code: ::=============================================================================================================== ::CHECK PARTITION LAYOUT for /f "skip=1 tokens=1 delims=: " %%a in ('"wmic partition where (BootPartition='True' and DiskIndex='0') get Type"') do ( set checklayout=%%a if !checklayout! equ GPT set "layout=GPT" if !checklayout! equ Installable set "layout=MBR" ) And the if-checks in :Choice2 to: Code: :Choice2 if "%layout%"=="MBR" if "%edition%"=="Enterprise" goto :KMSInstall if "%layout%"=="MBR" if "%edition%"=="Professional" goto :ActivationChoice if "%layout%"=="GPT" if "%edition%"=="Enterprise" goto :KMSInstall if "%layout%"=="GPT" if "%edition%"=="Professional" goto :ActivationChoice if "%layout%"=="GPT" if not "%edition%"=="Enterprise" goto :MessageBox if "%layout%"=="GPT" if not "%edition%"=="Professional" goto :MessageBox goto :LoaderChoice For convenience the whole thing: Spoiler Code: @echo off setlocal ENABLEDELAYEDEXPANSION pushd "%~dp0" cd %~dp0 ::=============================================================================================================== ::=============================================================================================================== ::SET SYSTEM VARIABLES for /f "tokens=2* delims= " %%a in ('reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v "PROCESSOR_ARCHITECTURE"') do ( if "%%b" == "AMD64" set vera=x64 if "%%b" == "x86" set vera=x86 ) FOR /F "tokens=3* delims= " %%I IN ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ^| findstr EditionID') DO (SET edition=%%I) ::=============================================================================================================== ::CHECK PARTITION LAYOUT for /f "skip=1 tokens=1 delims=: " %%a in ('"wmic partition where (BootPartition='True' and DiskIndex='0') get Type"') do ( set checklayout=%%a if !checklayout! equ GPT set "layout=GPT" if !checklayout! equ Installable set "layout=MBR" ) ::=============================================================================================================== ::=============================================================================================================== ::OEM BRANDING :Choice1 set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Run OEM Branding ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :OEMBranding IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice2 :OEMBranding cls echo -------------------------------------------------------------------------------- echo OEM BRANDING echo -------------------------------------------------------------------------------- echo: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: 'OOBE.cmd' -> 'Windows 10' • 'Windows 8.x' • 'Windows 7' • 'Windows Vista' : Nov 18|2014 : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: SET EDITION=&SET CSNAME=&SET CSVENDOR=&SET SYSMODEL=&SET SYSMNF=&SET BASEPRO=&SET BASEMNF=&SET BIOVER=&SET MAN=DEFAULT&SET MAN2=&SET PIDKEY=&SET REALMAN=&SET WINVER=&SET INFO=INFO&SET LAST=LAST&SET INL=IF NOT ERRORLEVEL 1&SET RESLN=&SET SLIC=SLIC SET OEMS=%windir%\Setup\scripts\oemscan.ini&SET RQR1=REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"&SET RQR2=REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionId" :OS ::check • set 'Windows OS' -> '10|8.x|7|Vista' ('findstr' -> word start|end '\<','\>') %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<PREVIEW\>" >nul&&%INL% SET WINVER=10&goto :BIOS %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<10\>" >nul&&%INL% SET WINVER=10&goto :BIOS %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<8\>" >nul&&%INL% SET WINVER=8&goto :BIOS %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<7\>" >nul&&%INL% SET WINVER=7&goto :EDITION %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<VISTA\>" >nul&&%INL% SET WINVER=VISTA&goto :EDITION :EDITION ::check • set 'Windows Edition' -> 'ULTIMATE|BUSINESS|PROFESSIONAL|HOMEPREMIUM|HOMEBASIC|STARTER' ('findstr' -> word start|end '\<','\>') %RQR2% | findstr /I "\<ULTIMATE\>" >nul&&%INL% SET EDITION=ULTIMATE&goto :BIOS %RQR2% | findstr /I "\<BUSINESS\>" >nul&&%INL% SET EDITION=BUSINESS&goto :BIOS %RQR2% | findstr /I "\<PROFESSIONAL\>" >nul&&%INL% SET EDITION=PROFESSIONAL&goto :BIOS %RQR2% | findstr /I "\<HOMEPREMIUM\>" >nul&&%INL% SET EDITION=HOMEPREMIUM&goto :BIOS %RQR2% | findstr /I "\<HOMEBASIC\>" >nul&&%INL% SET EDITION=HOMEBASIC&goto :BIOS %RQR2% | findstr /I "\<STARTER\>" >nul&&%INL% SET EDITION=STARTER&goto :BIOS :BIOS ::check • set 'Manufacturer Name' from 'CSPRODUCT|COMPUTERSYSTEM|BASEBOARD|BIOS' ID's -> filter 'results' via oemscan.ini for /f "tokens=2 delims==" %%A in ('"WMIC CSPRODUCT GET NAME /format:list"') do %INL% (set CSNAME=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC CSPRODUCT GET VENDOR /format:list"') do %INL% (set CSVENDOR=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC COMPUTERSYSTEM GET MODEL /format:list"') do %INL% (set SYSMODEL=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC COMPUTERSYSTEM GET MANUFACTURER /format:list"') do %INL% (set SYSMNF=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC BASEBOARD GET PRODUCT /format:list"') do %INL% (set BASEPRO=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC BASEBOARD GET MANUFACTURER /format:list"') do %INL% (set BASEMNF=%%A) for /f "tokens=2 delims== " %%A in ('"WMIC BIOS GET VERSION /format:list"') do %INL% (set BIOVER=%%A) :FILTER ::check • filter 'results' ('findstr' specific list order -> word start|end '\<','\>') -> by-pass 'void|conflict' entries SET VOID1=To Be Filled By O.E.M.&SET VOID2=System Product Name&SET VOID3=System manufacturer&SET VOID4=Base Board Product Name&SET VOID5=Intel Corporation :CHECK1 IF DEFINED VOID1 IF /I "%CSNAME%"=="%VOID1%" (goto :CHECK2) else IF DEFINED VOID2 IF /I "%CSNAME%"=="%VOID2%" (goto :CHECK2) else IF DEFINED VOID3 IF /I "%CSNAME%"=="%VOID3%" (goto :CHECK2) else IF DEFINED VOID4 IF /I "%CSNAME%"=="%VOID4%" (goto :CHECK2) else IF DEFINED VOID5 IF /I "%CSNAME%"=="%VOID5%" (goto :CHECK2) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%CSNAME%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK2 IF DEFINED VOID1 IF /I "%SYSMODEL%"=="%VOID1%" (goto :CHECK3) else IF DEFINED VOID2 IF /I "%SYSMODEL%"=="%VOID2%" (goto :CHECK3) else IF DEFINED VOID3 IF /I "%SYSMODEL%"=="%VOID3%" (goto :CHECK3) else IF DEFINED VOID4 IF /I "%SYSMODEL%"=="%VOID4%" (goto :CHECK3) else IF DEFINED VOID5 IF /I "%SYSMODEL%"=="%VOID5%" (goto :CHECK3) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%SYSMODEL%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK3 IF DEFINED VOID1 IF /I "%BASEPRO%"=="%VOID1%" (goto :CHECK4) else IF DEFINED VOID2 IF /I "%BASEPRO%"=="%VOID2%" (goto :CHECK4) else IF DEFINED VOID3 IF /I "%BASEPRO%"=="%VOID3%" (goto :CHECK4) else IF DEFINED VOID4 IF /I "%BASEPRO%"=="%VOID4%" (goto :CHECK4) else IF DEFINED VOID5 IF /I "%BASEPRO%"=="%VOID5%" (goto :CHECK4) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%BASEPRO%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK4 IF DEFINED VOID1 IF /I "%CSVENDOR%"=="%VOID1%" (goto :CHECK5) else IF DEFINED VOID2 IF /I "%CSVENDOR%"=="%VOID2%" (goto :CHECK5) else IF DEFINED VOID3 IF /I "%CSVENDOR%"=="%VOID3%" (goto :CHECK5) else IF DEFINED VOID4 IF /I "%CSVENDOR%"=="%VOID4%" (goto :CHECK5) else IF DEFINED VOID5 IF /I "%CSVENDOR%"=="%VOID5%" (goto :CHECK5) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%CSVENDOR%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK5 IF DEFINED VOID1 IF /I "%SYSMNF%"=="%VOID1%" (goto :CHECK6) else IF DEFINED VOID2 IF /I "%SYSMNF%"=="%VOID2%" (goto :CHECK6) else IF DEFINED VOID3 IF /I "%SYSMNF%"=="%VOID3%" (goto :CHECK6) else IF DEFINED VOID4 IF /I "%SYSMNF%"=="%VOID4%" (goto :CHECK6) else IF DEFINED VOID5 IF /I "%SYSMNF%"=="%VOID5%" (goto :CHECK6) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%SYSMNF%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK6 IF DEFINED VOID1 IF /I "%BIOVER%"=="%VOID1%" (goto :CHECKOUT) else IF DEFINED VOID2 IF /I "%BIOVER%"=="%VOID2%" (goto :CHECKOUT) else IF DEFINED VOID3 IF /I "%BIOVER%"=="%VOID3%" (goto :CHECKOUT) else IF DEFINED VOID4 IF /I "%BIOVER%"=="%VOID4%" (goto :CHECKOUT) else IF DEFINED VOID5 IF /I "%BIOVER%"=="%VOID5%" (goto :CHECKOUT) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%SLIC%%\>" ^| findstr /I "\<%%BIOVER%%\>"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECKOUT REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VMware\>" >nul&&%INL% goto :SETKEY REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VirtualBox\>" >nul&&%INL% goto :SETKEY IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%BASEMNF%%"') do %INL% (set MAN=%%c&goto :SETKEY) :SETKEY ::set 'genuine' activation -> use bios version id (if detected), bios may be modded|shared (ie.'Dell PC' - bios mod 'ACRSYS-Acer'; etc) -> ('findstr' -> word start|end '\<','\>') IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%SLIC%%\>" ^| findstr /I "\<%%BIOVER%%\>"') do (set MAN2=%%c) IF /I "%MAN%"=="DEFAULT" REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VMware\>" >nul&&%INL% SET MAN=VMWARE IF /I "%MAN%"=="DEFAULT" REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VirtualBox\>" >nul&&%INL% SET MAN=VBOX IF /I "%MAN2%"=="GATEWAY" IF /I "%MAN%"=="EMACHINES" SET MAN2=EMACHINES&goto :SERIAL IF /I "%MAN2%"=="ACER" IF /I "%MAN%"=="EMACHINES" SET MAN2=EMACHINES&goto :SERIAL IF /I "%MAN2%"=="ACER" IF /I "%MAN%"=="GATEWAY" SET MAN2=GATEWAY&goto :SERIAL IF /I "%MAN2%"=="ACER" IF /I "%MAN%"=="PBELL" SET MAN2=PBELL&goto :SERIAL IF /I "%MAN2%"=="HP" IF /I "%MAN%"=="COMPAQ" SET MAN2=COMPAQ&goto :SERIAL IF /I "%MAN2%"=="LENOVO" IF /I "%MAN%"=="IBM" SET MAN2=IBM&goto :SERIAL IF NOT DEFINED MAN2 SET MAN2=%MAN%&goto :SERIAL :SERIAL ::scan 'oemscan.ini' once with the provided 'Manufacturer|OS|Edition' -> if not matched, set the manufacturer (serial) to 'DEFAULTOEM' (Acer) & try again -> ('findstr' -> word start|end '\<','\>') IF /I "%WINVER%"=="10" GOTO :WIN810 IF /I "%WINVER%"=="8" GOTO :WIN810 IF NOT DEFINED WINVER GOTO :BRANDING IF NOT DEFINED EDITION GOTO :BRANDING IF EXIST %OEMS% for /f "tokens=1,2,3,4 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%EDITION%%\>" ^| findstr /I "\<%%MAN2%%\>"') do (echo %%a | findstr /I "\<%WINVER%\>" >nul &&%INL% set PIDKEY=%%d) IF NOT DEFINED PIDKEY set REALMAN=%MAN2%&set MAN2=DEFAULTOEM&goto :SERIAL IF /I "%MAN2%"=="DEFAULTOEM" set MAN2=%REALMAN% :ACTIVATION ::create 'activate.cmd' -> 'CALL' -> from 'OOBE.cmd' for 'WIN7' or 'SetupComplete.cmd' for 'VISTA' (echo @echo off & echo. & echo :ACTIVATE & echo ::apply serial:: & echo cscript //nologo %windir%\system32\slmgr.vbs -ipk %PIDKEY% ^>^nul & echo ::apply certificate ^& 2nd, 3rd, 4th, etc, if available:: echo IF EXIST "%windir%\Setup\scripts\Certificates\%MAN2%.xrm-ms" for /f "tokens=*" %%%%A in ^('DIR /B "%windir%\Setup\scripts\Certificates\%MAN2%*.xrm-ms"'^) DO ^( echo cscript //nologo %windir%\system32\slmgr.vbs -ilc "%windir%\Setup\scripts\Certificates\%%%%A" ^>^nul^) & echo IF EXIST "%windir%\Setup\scripts\oemscan.ini" DEL /F /Q "%windir%\Setup\scripts\oemscan.ini" ^>^nul echo IF EXIST "%windir%\Setup\scripts\Certificates\" DEL /S /F /Q "%windir%\Setup\scripts\Certificates\*.*" ^>^nul ^&^& RD /S /Q "%windir%\Setup\scripts\Certificates" ^>^nul) >"%windir%\Setup\scripts\activate.cmd" IF /I NOT "%WINVER%"=="VISTA" GOTO :OOBE ::'VISTA only' check 'SetupComplete.cmd' exists -> 'NO' rename|edit 'activate.cmd' -> 'YES' -> edit existing 'SetupComplete.cmd' IF NOT EXIST %windir%\Setup\scripts\SetupComplete.cmd (move /Y %windir%\Setup\scripts\activate.cmd %windir%\Setup\scripts\no4.txt >nul (echo RD /S /Q "%windir%\Setup\scripts" ^>^nul & echo DEL /F /Q %%0%% ^>^nul) >%windir%\Setup\scripts\no3.txt copy /b %windir%\Setup\scripts\no4.txt+%windir%\Setup\scripts\no3.txt %windir%\Setup\scripts\SetupComplete.cmd >nul & del /F /Q %windir%\Setup\scripts\no4.txt >nul %windir%\Setup\scripts\no3.txt >nul ) ELSE (Type %windir%\Setup\scripts\SetupComplete.cmd | findstr /I /V /C:"@echo off" >%windir%\Setup\scripts\no2.txt && del /F /Q %windir%\Setup\scripts\SetupComplete.cmd >nul (echo @echo off & echo. & echo IF EXIST %windir%\Setup\scripts\activate.cmd CALL %windir%\Setup\scripts\activate.cmd ^>^nul ^&^& DEL /F /Q %windir%\Setup\scripts\activate.cmd ^>^nul) >%windir%\Setup\scripts\no1.txt copy /b %windir%\Setup\scripts\no1.txt+%windir%\Setup\scripts\no2.txt %windir%\Setup\scripts\SetupComplete.cmd >nul & del /F /Q %windir%\Setup\scripts\no1.txt >nul %windir%\Setup\scripts\no2.txt >nul) GOTO :BRANDING :WIN810 %windir%\Setup\scripts\Rw.exe /Min /NoLogo /command="ACPI Dump MSDM";"RwExit" /logfile=%windir%\Setup\scripts\msdm.log for /f "Skip=1 tokens=2 delims= " %%A in ('find "-" %windir%\Setup\scripts\msdm.log') do %INL% set DM=%%A cscript //B %windir%\system32\slmgr.vbs /ipk %DM% >nul cscript //B %windir%\system32\slmgr.vbs /ato >nul IF EXIST "%windir%\Setup\scripts\msdm.log" DEL /F /Q "%windir%\Setup\scripts\msdm.log" >nul GOTO :BRANDING :OOBE ::check • apply created 'activate.cmd' -> from this 'OOBE.cmd' IF EXIST %windir%\Setup\scripts\activate.cmd cd /d %windir%\Setup\scripts\ && CALL "activate.cmd" >nul IF EXIST %windir%\Setup\scripts\activate.cmd DEL /F /Q %windir%\Setup\scripts\activate.cmd >nul :BRANDING ::check • set 'MAN=?' -> if exist 'Force_Theme_[readme].txt' || edit brand '.reg file' -> if installing 'Starter' Edition IF EXIST "%windir%\Setup\scripts\Rw.exe" DEL /F /Q "%windir%\Setup\scripts\Rw.exe" >nul cd /d %windir%\Setup\scripts\OEM's\ && for /r %%G in (.) DO IF EXIST %%G\Force_Theme_[readme].txt DEL /F /Q %%G\Force_Theme_[readme].txt >nul &&set MAN=%%~nG IF EXIST "%windir%\Setup\scripts\Force_Theme_[readme].txt" DEL /F /Q "%windir%\Setup\scripts\Force_Theme_[readme].txt" >nul IF /I NOT "%EDITION%"=="STARTER" GOTO :CONTINUE IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" (cd /d %windir%\Setup\scripts\OEM's\%MAN%\ >nul & Type %MAN%.reg | findstr /I /V "InstallTheme" >STARTER.reg && MOVE /Y "STARTER.reg" "%MAN%.reg" >nul) :CONTINUE ::finalize branding|theme IF NOT EXIST "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" goto :TRANSFERS start /w regedit /s "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" && DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" >nul for /f "tokens=2* delims= " %%A IN ('REG QUERY "HKLM\HARDWARE\DESCRIPTION\System\BIOS" /v SystemProductName') DO %INL% set SYSPDT=%%B IF NOT DEFINED SYSPDT (goto :TRANSFERS) else IF DEFINED VOID1 IF /I "%SYSPDT%"=="%VOID1%" (goto :TRANSFERS) else IF DEFINED VOID2 IF /I "%SYSPDT%"=="%VOID2%" (goto :TRANSFERS) else IF DEFINED VOID3 IF /I "%SYSPDT%"=="%VOID3%" (goto :TRANSFERS) else IF DEFINED VOID4 IF /I "%SYSPDT%"=="%VOID4%" (goto :TRANSFERS) else IF DEFINED VOID5 IF /I "%SYSPDT%"=="%VOID5%" (goto :TRANSFERS) reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /f /v "Model" /t REG_SZ /d "%SYSPDT%" >nul :TRANSFERS ::check • screen resolution -> movements|actions %windir%\Setup\scripts\MultiMonitorTool.exe /HideInactiveMonitors 1 /stext %windir%\Setup\scripts\monitor.txt for /f "tokens=2,3 delims=,: " %%i in ('type %windir%\Setup\scripts\monitor.txt ^| find /i "Right-Bottom"') do %INL% set RESLN=%%iX%%j IF EXIST "%windir%\Setup\scripts\MultiMonitorTool.exe" DEL /F /Q "%windir%\Setup\scripts\MultiMonitorTool.exe" >nul IF EXIST "%windir%\Setup\scripts\monitor.txt" DEL /F /Q "%windir%\Setup\scripts\monitor.txt" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\%RESLN%.jpg" DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" >nul && MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\%RESLN%.jpg" "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\%RESLN%.jpg" DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" >nul && MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\%RESLN%.jpg" "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" REN "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "BACKGROUNDDEFAULT.bak" >nul && DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\*.jpg" >nul & REN "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.bak" "BACKGROUNDDEFAULT.jpg" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" REN "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" "WALLPAPER.bak" >nul && DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\*.jpg" >nul & REN "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.bak" "WALLPAPER.jpg" >nul :TRANSFER1 ::check • 'Vista' -> movements|actions IF /I NOT "%WINVER%"=="VISTA" goto :TRANSFER2 IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\backgrounds" cd /d %windir%\Setup\scripts\OEM's\%MAN%\ && RD /S /Q "backgrounds" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" REN %windir%\Web\Wallpaper\img24.jpg img24.bak && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" "%windir%\Web\Wallpaper\img24.jpg" >nul :TRANSFER2 ::check • 'Win8.x and Win 10' -> movements|actions IF /I "%WINVER%"=="VISTA" GOTO :TRANSFER3 IF /I "%WINVER%"=="7" GOTO :TRANSFER3 IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" MD "%systemdrive%\$%MAN%$\Account" >nul && MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" "%systemdrive%\$%MAN%$\Account\user.bmp" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user.bmp" "user.bmp.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user.bmp" >nul && COPY /Y "%ProgramData%\Microsoft\User Account Pictures\user.bmp.bak" "%systemdrive%\$%MAN%$\Account\original.bmp" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user.png" "user.png.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user.png" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user-40.png" "user-40.png.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user-40.png" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user-200.png" "user-200.png.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user-200.png" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\OOBE.xml" DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\OOBE.xml" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" TAKEOWN /F "%windir%\Resources\Themes\*.theme" >nul & ICACLS "%windir%\Resources\Themes\*.theme" /reset /T /Q >nul & ICACLS "%windir%\Resources\Themes\*.theme" /grant:r "%windir%\Resources\Themes\*.theme:(OI)(CI)F" 2>nul & REN "%windir%\Resources\Themes\aero.theme" theme3.theme >nul & MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" "%windir%\Resources\Themes\aero.theme" >nul IF EXIST "%windir%\Web\Screen\img100.jpg" TAKEOWN /F "%windir%\Web\Screen\*.jpg" >nul & ICACLS "%windir%\Web\Screen\*.jpg" /reset /T /Q >nul & IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" MD "%systemdrive%\$%MAN%$\LockScreen" >nul && MOVE /Y "%windir%\Web\Screen\img100.jpg" "%systemdrive%\$%MAN%$\LockScreen\original.jpg" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%systemdrive%\$%MAN%$\LockScreen\LockScreen.jpg" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%windir%\Web\Screen\img100.jpg" >nul IF EXIST "%windir%\Web\Screen\img100.png" TAKEOWN /F "%windir%\Web\Screen\*.png" >nul & ICACLS "%windir%\Web\Screen\*.png" /reset /T /Q >nul & IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" MD "%systemdrive%\$%MAN%$\LockScreen" >nul && MOVE /Y "%windir%\Web\Screen\img100.png" "%systemdrive%\$%MAN%$\LockScreen\original.png" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%systemdrive%\$%MAN%$\LockScreen\LockScreen.jpg" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%windir%\Web\Screen\img100.png" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" MD "%systemdrive%\$%MAN%$\Desktop" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" "%systemdrive%\$%MAN%$\Desktop\Desktop.jpg" >nul IF EXIST "%systemdrive%\$%MAN%$\" MOVE /Y "%systemdrive%\$%MAN%$" "%windir%\$%MAN%$" >nul ::Enables f8 key for Win 8.x and Win 10 in desktops and laptops | To disable this feature for tablets put :: in front of the line below bcdedit /set {default} bootmenupolicy legacy >nul :TRANSFER3 ::check • 'Windows OS' -> movements|actions IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" "%ProgramData%\Microsoft\User Account Pictures\user.bmp" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" "%windir%\Resources\Themes\$OEM$.theme" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\*.*" MD "%windir%\system32\oobe\info" 2>nul & for /f "delims==" %%F IN ('dir "%windir%\Setup\scripts\OEM's\%MAN%\*.*" /s /b') DO MOVE /Y "%%F" "%windir%\system32\oobe\info\" 2>nul cd /d %windir%\Setup\scripts\ IF EXIST "%windir%\Setup\scripts\OEM's\" DEL /S /F /Q "%windir%\Setup\scripts\OEM's\*.*" >nul && RD /S /Q "%windir%\Setup\scripts\OEM's" >nul IF /I "%WINVER%"=="VISTA" GOTO :CLOSE IF EXIST "%windir%\Setup\scripts\Certificates\" DEL /S /F /Q "%windir%\Setup\scripts\Certificates\*.*" >nul && RD /S /Q "%windir%\Setup\scripts\Certificates" >nul IF EXIST "%windir%\Setup\scripts\oemscan.ini" DEL /F /Q "%windir%\Setup\scripts\oemscan.ini" >nul ::=============================================================================================================== ::=============================================================================================================== ::ACTIVATION :Choice2 if "%layout%"=="MBR" if "%edition%"=="Enterprise" goto :KMSInstall if "%layout%"=="MBR" if "%edition%"=="Professional" goto :ActivationChoice if "%layout%"=="GPT" if "%edition%"=="Enterprise" goto :KMSInstall if "%layout%"=="GPT" if "%edition%"=="Professional" goto :ActivationChoice if "%layout%"=="GPT" if not "%edition%"=="Enterprise" goto :MessageBox if "%layout%"=="GPT" if not "%edition%"=="Professional" goto :MessageBox goto :LoaderChoice :MessageBox set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "^!^!^!GPT Layout detected^!^!^! Skipping activation." 48 IF %ERRORLEVEL% EQU 1 del /s /q %file% >nul && call :Choice3 :ActivationChoice set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Windows Loader (Yes) or KMS (No) ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :LoaderChoice IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :KMSInstall :LoaderChoice set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Install Windows Loader ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :LoaderInstall IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice3 ::=============================================================================================================== ::LOADER INSTALL :LoaderInstall cls echo -------------------------------------------------------------------------------- echo WINDOWS LOADER by Daz echo -------------------------------------------------------------------------------- echo: %~dp0"Windows Loader.exe" /silent goto:Choice3 ::=============================================================================================================== ::KMS ACTIVATION :KMSInstall set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Install KMS Server by CODYQX4 ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :KMS IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice3 :KMS cls echo -------------------------------------------------------------------------------- echo KMS Server by CODYQX4 echo -------------------------------------------------------------------------------- echo: set port=1688 md "%windir%\KMSServerService" >nul xcopy "KMS Server Service %vera%.exe" /s /q "%windir%\KMSServerService" /Y >nul ren "%windir%\KMSServerService\KMS Server Service %vera%.exe" KMSServerService.exe netsh advfirewall firewall add rule name="KMSServerService %port%" dir=in program="%windir%\KMSServerService\KMSServerService.exe" localport=%port% protocol=TCP action=allow remoteip=any netsh advfirewall firewall add rule name="KMSServerService %port%" dir=in program="%windir%\KMSServerService\KMSServerService.exe" localport=%port% protocol=TCP action=allow remoteip=localsubnet REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer /v Description /t REG_SZ /d "Windows Service that emulates a Key Management Service (KMS) Server" /f >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KMSPort" /d %port% /t "REG_SZ" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KMSPID" /d "RandomKMSPID" /t "REG_SZ" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KMSHWID" /d "364F463A8863D35F" /t "REG_SZ" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "VLActivationInterval" /d "120" /t "REG_DWORD" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "VLRenewalInterval" /d "10080" /t "REG_DWORD" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KillProcessOnPort" /d "1" /t "REG_DWORD" >nul sc create KMSServerService binPath= "%windir%\KMSServerService\KMSServerService.exe" type= own error= normal obj= "NT AUTHORITY\NetworkService" start= demand DisplayName= KMSServerService SCHTASKS /Create /TN "Reactivate Service DAILY" /TR "%windir%\KMSServerService\reactivate.cmd" /SC DAILY /MO 1 /RU SYSTEM /RL Highest /F SCHTASKS /Create /TN "Reactivate Service ONLOGON" /TR "%windir%\KMSServerServicereactivate.cmd" /SC ONLOGON /RU SYSTEM /RL Highest /F SCHTASKS /Create /TN "Reactivate Service ONSTART" /TR "%windir%\KMSServerService\reactivate.cmd" /SC ONSTART /RU SYSTEM /RL Highest /F >"%windir%\KMSServerService\reactivate.cmd" ( echo @echo off echo :: Code by s1ave77 echo cls echo echo: echo sc start KMSServerService ^>nul if /i "%edition%"=="Enterprise" echo cscript %windir%\system32\slmgr.vbs /ipk 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH if /i "%edition%"=="Professional" echo cscript %windir%\system32\slmgr.vbs /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 echo cscript %windir%\system32\slmgr.vbs /skms 127.0.0.2:%port% echo cscript %windir%\system32\slmgr.vbs /ato echo sc stop KMSServerService ^>nul echo exit ) sc start KMSServerService if /i "%edition%"=="Enterprise" cscript %windir%\system32\slmgr.vbs /ipk 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH if /i "%edition%"=="Professional" cscript %windir%\system32\slmgr.vbs /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 cscript %windir%\system32\slmgr.vbs /skms 127.0.0.2:%port% cscript %windir%\system32\slmgr.vbs /ato sc stop KMSServerService ::=============================================================================================================== ::=============================================================================================================== ::NET INSTALL :Choice3 set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Install .Net Framework ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :NetInstall IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice4 :NetInstall cls echo -------------------------------------------------------------------------------- echo .NET INSTALL echo -------------------------------------------------------------------------------- echo: "%~dp0net4install.exe" /silent ::=============================================================================================================== ::=============================================================================================================== :Choice4 set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Reboot (mandatory for Loader) ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :Reboot IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Exit ::=============================================================================================================== :Reboot ::finished -> remove 'scripts' dir ('RunOnce' Reg entry) -> self delete 'OOBE.cmd' (echo @echo off & echo. & echo IF EXIST "%windir%\Setup\scripts\" RD /S /Q "%windir%\Setup\scripts" ^>^nul & echo DEL /F /Q %%0%% ^>^nul) >"%windir%\Cleanup.cmd" reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v !Clean /t REG_SZ /d "%windir%\Cleanup.cmd" /f >nul Timeout /T 8 >nul DEL /F /Q %0% >nul ENDLOCAL shutdown.exe /r /t 0 ::=============================================================================================================== :Exit ::finished -> remove 'scripts' dir ('RunOnce' Reg entry) -> self delete 'OOBE.cmd' (echo @echo off & echo. & echo IF EXIST "%windir%\Setup\scripts\" RD /S /Q "%windir%\Setup\scripts" ^>^nul & echo DEL /F /Q %%0%% ^>^nul) >"%windir%\Cleanup.cmd" reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v !Clean /t REG_SZ /d "%windir%\Cleanup.cmd" /f >nul Timeout /T 8 >nul DEL /F /Q %0% >nul ENDLOCAL exit
This last code works so far Tested in VMware, GPT scheme, Ultimate x64: good. Tested in VMware, GPT scheme, Enterprise x64: no good.
I did Ultimate and after clicking OK on msgbox "GPT Layout detected Skipping activation." net framework install pops up, so there's no KMS option available on that scenario as expected, no? Ed. I guess for Ultimate x64 GPT it's fine msgboxes behavior. Just finished Enterprise and it pops up "GPT Layout detected Skipping activation." (wrong in this case) then net framework install pop ups, no KMS activation offered (wrong), in short, same behavior as in Ultimate.
Hmm, corrected a little flaw regarding Pro on GPT, now it asks for KMSInstall . Also added better spelling in edition and layout check. So i better post the whole: Spoiler Code: @echo off setlocal ENABLEDELAYEDEXPANSION pushd "%~dp0" cd %~dp0 ::=============================================================================================================== ::=============================================================================================================== ::SET SYSTEM VARIABLES for /f "tokens=2* delims= " %%a in ('reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v "PROCESSOR_ARCHITECTURE"') do ( if "%%b" == "AMD64" set vera=x64 if "%%b" == "x86" set vera=x86 ) for /f "tokens=3* delims= " %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ^| findstr /i "EditionID"') do set "edition=%%i" ::=============================================================================================================== ::CHECK PARTITION LAYOUT for /f "skip=1 tokens=1 delims=: " %%a in ('"wmic partition where (BootPartition='True' and DiskIndex='0') get Type"') do ( set checklayout=%%a if "!checklayout!"=="GPT" set "layout=GPT" if "!checklayout!"=="Installable" set "layout=MBR" ) ::=============================================================================================================== ::=============================================================================================================== ::OEM BRANDING :Choice1 set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Run OEM Branding ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :OEMBranding IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice2 :OEMBranding cls echo -------------------------------------------------------------------------------- echo OEM BRANDING echo -------------------------------------------------------------------------------- echo: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: 'OOBE.cmd' -> 'Windows 10' • 'Windows 8.x' • 'Windows 7' • 'Windows Vista' : Nov 18|2014 : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: SET EDITION=&SET CSNAME=&SET CSVENDOR=&SET SYSMODEL=&SET SYSMNF=&SET BASEPRO=&SET BASEMNF=&SET BIOVER=&SET MAN=DEFAULT&SET MAN2=&SET PIDKEY=&SET REALMAN=&SET WINVER=&SET INFO=INFO&SET LAST=LAST&SET INL=IF NOT ERRORLEVEL 1&SET RESLN=&SET SLIC=SLIC SET OEMS=%windir%\Setup\scripts\oemscan.ini&SET RQR1=REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"&SET RQR2=REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionId" :OS ::check • set 'Windows OS' -> '10|8.x|7|Vista' ('findstr' -> word start|end '\<','\>') %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<PREVIEW\>" >nul&&%INL% SET WINVER=10&goto :BIOS %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<10\>" >nul&&%INL% SET WINVER=10&goto :BIOS %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<8\>" >nul&&%INL% SET WINVER=8&goto :BIOS %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<7\>" >nul&&%INL% SET WINVER=7&goto :EDITION %RQR1% | findstr /I "\<WINDOWS\>" | findstr /I "\<VISTA\>" >nul&&%INL% SET WINVER=VISTA&goto :EDITION :EDITION ::check • set 'Windows Edition' -> 'ULTIMATE|BUSINESS|PROFESSIONAL|HOMEPREMIUM|HOMEBASIC|STARTER' ('findstr' -> word start|end '\<','\>') %RQR2% | findstr /I "\<ULTIMATE\>" >nul&&%INL% SET EDITION=ULTIMATE&goto :BIOS %RQR2% | findstr /I "\<BUSINESS\>" >nul&&%INL% SET EDITION=BUSINESS&goto :BIOS %RQR2% | findstr /I "\<PROFESSIONAL\>" >nul&&%INL% SET EDITION=PROFESSIONAL&goto :BIOS %RQR2% | findstr /I "\<HOMEPREMIUM\>" >nul&&%INL% SET EDITION=HOMEPREMIUM&goto :BIOS %RQR2% | findstr /I "\<HOMEBASIC\>" >nul&&%INL% SET EDITION=HOMEBASIC&goto :BIOS %RQR2% | findstr /I "\<STARTER\>" >nul&&%INL% SET EDITION=STARTER&goto :BIOS :BIOS ::check • set 'Manufacturer Name' from 'CSPRODUCT|COMPUTERSYSTEM|BASEBOARD|BIOS' ID's -> filter 'results' via oemscan.ini for /f "tokens=2 delims==" %%A in ('"WMIC CSPRODUCT GET NAME /format:list"') do %INL% (set CSNAME=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC CSPRODUCT GET VENDOR /format:list"') do %INL% (set CSVENDOR=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC COMPUTERSYSTEM GET MODEL /format:list"') do %INL% (set SYSMODEL=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC COMPUTERSYSTEM GET MANUFACTURER /format:list"') do %INL% (set SYSMNF=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC BASEBOARD GET PRODUCT /format:list"') do %INL% (set BASEPRO=%%A) for /f "tokens=2 delims==" %%A in ('"WMIC BASEBOARD GET MANUFACTURER /format:list"') do %INL% (set BASEMNF=%%A) for /f "tokens=2 delims== " %%A in ('"WMIC BIOS GET VERSION /format:list"') do %INL% (set BIOVER=%%A) :FILTER ::check • filter 'results' ('findstr' specific list order -> word start|end '\<','\>') -> by-pass 'void|conflict' entries SET VOID1=To Be Filled By O.E.M.&SET VOID2=System Product Name&SET VOID3=System manufacturer&SET VOID4=Base Board Product Name&SET VOID5=Intel Corporation :CHECK1 IF DEFINED VOID1 IF /I "%CSNAME%"=="%VOID1%" (goto :CHECK2) else IF DEFINED VOID2 IF /I "%CSNAME%"=="%VOID2%" (goto :CHECK2) else IF DEFINED VOID3 IF /I "%CSNAME%"=="%VOID3%" (goto :CHECK2) else IF DEFINED VOID4 IF /I "%CSNAME%"=="%VOID4%" (goto :CHECK2) else IF DEFINED VOID5 IF /I "%CSNAME%"=="%VOID5%" (goto :CHECK2) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%CSNAME%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK2 IF DEFINED VOID1 IF /I "%SYSMODEL%"=="%VOID1%" (goto :CHECK3) else IF DEFINED VOID2 IF /I "%SYSMODEL%"=="%VOID2%" (goto :CHECK3) else IF DEFINED VOID3 IF /I "%SYSMODEL%"=="%VOID3%" (goto :CHECK3) else IF DEFINED VOID4 IF /I "%SYSMODEL%"=="%VOID4%" (goto :CHECK3) else IF DEFINED VOID5 IF /I "%SYSMODEL%"=="%VOID5%" (goto :CHECK3) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%SYSMODEL%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK3 IF DEFINED VOID1 IF /I "%BASEPRO%"=="%VOID1%" (goto :CHECK4) else IF DEFINED VOID2 IF /I "%BASEPRO%"=="%VOID2%" (goto :CHECK4) else IF DEFINED VOID3 IF /I "%BASEPRO%"=="%VOID3%" (goto :CHECK4) else IF DEFINED VOID4 IF /I "%BASEPRO%"=="%VOID4%" (goto :CHECK4) else IF DEFINED VOID5 IF /I "%BASEPRO%"=="%VOID5%" (goto :CHECK4) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%BASEPRO%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK4 IF DEFINED VOID1 IF /I "%CSVENDOR%"=="%VOID1%" (goto :CHECK5) else IF DEFINED VOID2 IF /I "%CSVENDOR%"=="%VOID2%" (goto :CHECK5) else IF DEFINED VOID3 IF /I "%CSVENDOR%"=="%VOID3%" (goto :CHECK5) else IF DEFINED VOID4 IF /I "%CSVENDOR%"=="%VOID4%" (goto :CHECK5) else IF DEFINED VOID5 IF /I "%CSVENDOR%"=="%VOID5%" (goto :CHECK5) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%CSVENDOR%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK5 IF DEFINED VOID1 IF /I "%SYSMNF%"=="%VOID1%" (goto :CHECK6) else IF DEFINED VOID2 IF /I "%SYSMNF%"=="%VOID2%" (goto :CHECK6) else IF DEFINED VOID3 IF /I "%SYSMNF%"=="%VOID3%" (goto :CHECK6) else IF DEFINED VOID4 IF /I "%SYSMNF%"=="%VOID4%" (goto :CHECK6) else IF DEFINED VOID5 IF /I "%SYSMNF%"=="%VOID5%" (goto :CHECK6) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%SYSMNF%%"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECK6 IF DEFINED VOID1 IF /I "%BIOVER%"=="%VOID1%" (goto :CHECKOUT) else IF DEFINED VOID2 IF /I "%BIOVER%"=="%VOID2%" (goto :CHECKOUT) else IF DEFINED VOID3 IF /I "%BIOVER%"=="%VOID3%" (goto :CHECKOUT) else IF DEFINED VOID4 IF /I "%BIOVER%"=="%VOID4%" (goto :CHECKOUT) else IF DEFINED VOID5 IF /I "%BIOVER%"=="%VOID5%" (goto :CHECKOUT) IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%SLIC%%\>" ^| findstr /I "\<%%BIOVER%%\>"') do %INL% (set MAN=%%c&goto :SETKEY) :CHECKOUT REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VMware\>" >nul&&%INL% goto :SETKEY REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VirtualBox\>" >nul&&%INL% goto :SETKEY IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%INFO%%\>" ^| findstr /I "\<%%BASEMNF%%"') do %INL% (set MAN=%%c&goto :SETKEY) :SETKEY ::set 'genuine' activation -> use bios version id (if detected), bios may be modded|shared (ie.'Dell PC' - bios mod 'ACRSYS-Acer'; etc) -> ('findstr' -> word start|end '\<','\>') IF EXIST %OEMS% for /f "tokens=1,2,3 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%SLIC%%\>" ^| findstr /I "\<%%BIOVER%%\>"') do (set MAN2=%%c) IF /I "%MAN%"=="DEFAULT" REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VMware\>" >nul&&%INL% SET MAN=VMWARE IF /I "%MAN%"=="DEFAULT" REG QUERY "HKLM\SYSTEM\ControlSet001\Control\SystemInformation" /v "SystemProductName" | findstr /I "\<VirtualBox\>" >nul&&%INL% SET MAN=VBOX IF /I "%MAN2%"=="GATEWAY" IF /I "%MAN%"=="EMACHINES" SET MAN2=EMACHINES&goto :SERIAL IF /I "%MAN2%"=="ACER" IF /I "%MAN%"=="EMACHINES" SET MAN2=EMACHINES&goto :SERIAL IF /I "%MAN2%"=="ACER" IF /I "%MAN%"=="GATEWAY" SET MAN2=GATEWAY&goto :SERIAL IF /I "%MAN2%"=="ACER" IF /I "%MAN%"=="PBELL" SET MAN2=PBELL&goto :SERIAL IF /I "%MAN2%"=="HP" IF /I "%MAN%"=="COMPAQ" SET MAN2=COMPAQ&goto :SERIAL IF /I "%MAN2%"=="LENOVO" IF /I "%MAN%"=="IBM" SET MAN2=IBM&goto :SERIAL IF NOT DEFINED MAN2 SET MAN2=%MAN%&goto :SERIAL :SERIAL ::scan 'oemscan.ini' once with the provided 'Manufacturer|OS|Edition' -> if not matched, set the manufacturer (serial) to 'DEFAULTOEM' (Acer) & try again -> ('findstr' -> word start|end '\<','\>') IF /I "%WINVER%"=="10" GOTO :WIN810 IF /I "%WINVER%"=="8" GOTO :WIN810 IF NOT DEFINED WINVER GOTO :BRANDING IF NOT DEFINED EDITION GOTO :BRANDING IF EXIST %OEMS% for /f "tokens=1,2,3,4 delims=|" %%a in ('type %OEMS% ^| findstr /I "\<%%EDITION%%\>" ^| findstr /I "\<%%MAN2%%\>"') do (echo %%a | findstr /I "\<%WINVER%\>" >nul &&%INL% set PIDKEY=%%d) IF NOT DEFINED PIDKEY set REALMAN=%MAN2%&set MAN2=DEFAULTOEM&goto :SERIAL IF /I "%MAN2%"=="DEFAULTOEM" set MAN2=%REALMAN% :ACTIVATION ::create 'activate.cmd' -> 'CALL' -> from 'OOBE.cmd' for 'WIN7' or 'SetupComplete.cmd' for 'VISTA' (echo @echo off & echo. & echo :ACTIVATE & echo ::apply serial:: & echo cscript //nologo %windir%\system32\slmgr.vbs -ipk %PIDKEY% ^>^nul & echo ::apply certificate ^& 2nd, 3rd, 4th, etc, if available:: echo IF EXIST "%windir%\Setup\scripts\Certificates\%MAN2%.xrm-ms" for /f "tokens=*" %%%%A in ^('DIR /B "%windir%\Setup\scripts\Certificates\%MAN2%*.xrm-ms"'^) DO ^( echo cscript //nologo %windir%\system32\slmgr.vbs -ilc "%windir%\Setup\scripts\Certificates\%%%%A" ^>^nul^) & echo IF EXIST "%windir%\Setup\scripts\oemscan.ini" DEL /F /Q "%windir%\Setup\scripts\oemscan.ini" ^>^nul echo IF EXIST "%windir%\Setup\scripts\Certificates\" DEL /S /F /Q "%windir%\Setup\scripts\Certificates\*.*" ^>^nul ^&^& RD /S /Q "%windir%\Setup\scripts\Certificates" ^>^nul) >"%windir%\Setup\scripts\activate.cmd" IF /I NOT "%WINVER%"=="VISTA" GOTO :OOBE ::'VISTA only' check 'SetupComplete.cmd' exists -> 'NO' rename|edit 'activate.cmd' -> 'YES' -> edit existing 'SetupComplete.cmd' IF NOT EXIST %windir%\Setup\scripts\SetupComplete.cmd (move /Y %windir%\Setup\scripts\activate.cmd %windir%\Setup\scripts\no4.txt >nul (echo RD /S /Q "%windir%\Setup\scripts" ^>^nul & echo DEL /F /Q %%0%% ^>^nul) >%windir%\Setup\scripts\no3.txt copy /b %windir%\Setup\scripts\no4.txt+%windir%\Setup\scripts\no3.txt %windir%\Setup\scripts\SetupComplete.cmd >nul & del /F /Q %windir%\Setup\scripts\no4.txt >nul %windir%\Setup\scripts\no3.txt >nul ) ELSE (Type %windir%\Setup\scripts\SetupComplete.cmd | findstr /I /V /C:"@echo off" >%windir%\Setup\scripts\no2.txt && del /F /Q %windir%\Setup\scripts\SetupComplete.cmd >nul (echo @echo off & echo. & echo IF EXIST %windir%\Setup\scripts\activate.cmd CALL %windir%\Setup\scripts\activate.cmd ^>^nul ^&^& DEL /F /Q %windir%\Setup\scripts\activate.cmd ^>^nul) >%windir%\Setup\scripts\no1.txt copy /b %windir%\Setup\scripts\no1.txt+%windir%\Setup\scripts\no2.txt %windir%\Setup\scripts\SetupComplete.cmd >nul & del /F /Q %windir%\Setup\scripts\no1.txt >nul %windir%\Setup\scripts\no2.txt >nul) GOTO :BRANDING :WIN810 %windir%\Setup\scripts\Rw.exe /Min /NoLogo /command="ACPI Dump MSDM";"RwExit" /logfile=%windir%\Setup\scripts\msdm.log for /f "Skip=1 tokens=2 delims= " %%A in ('find "-" %windir%\Setup\scripts\msdm.log') do %INL% set DM=%%A cscript //B %windir%\system32\slmgr.vbs /ipk %DM% >nul cscript //B %windir%\system32\slmgr.vbs /ato >nul IF EXIST "%windir%\Setup\scripts\msdm.log" DEL /F /Q "%windir%\Setup\scripts\msdm.log" >nul GOTO :BRANDING :OOBE ::check • apply created 'activate.cmd' -> from this 'OOBE.cmd' IF EXIST %windir%\Setup\scripts\activate.cmd cd /d %windir%\Setup\scripts\ && CALL "activate.cmd" >nul IF EXIST %windir%\Setup\scripts\activate.cmd DEL /F /Q %windir%\Setup\scripts\activate.cmd >nul :BRANDING ::check • set 'MAN=?' -> if exist 'Force_Theme_[readme].txt' || edit brand '.reg file' -> if installing 'Starter' Edition IF EXIST "%windir%\Setup\scripts\Rw.exe" DEL /F /Q "%windir%\Setup\scripts\Rw.exe" >nul cd /d %windir%\Setup\scripts\OEM's\ && for /r %%G in (.) DO IF EXIST %%G\Force_Theme_[readme].txt DEL /F /Q %%G\Force_Theme_[readme].txt >nul &&set MAN=%%~nG IF EXIST "%windir%\Setup\scripts\Force_Theme_[readme].txt" DEL /F /Q "%windir%\Setup\scripts\Force_Theme_[readme].txt" >nul IF /I NOT "%EDITION%"=="STARTER" GOTO :CONTINUE IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" (cd /d %windir%\Setup\scripts\OEM's\%MAN%\ >nul & Type %MAN%.reg | findstr /I /V "InstallTheme" >STARTER.reg && MOVE /Y "STARTER.reg" "%MAN%.reg" >nul) :CONTINUE ::finalize branding|theme IF NOT EXIST "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" goto :TRANSFERS start /w regedit /s "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" && DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\%MAN%.reg" >nul for /f "tokens=2* delims= " %%A IN ('REG QUERY "HKLM\HARDWARE\DESCRIPTION\System\BIOS" /v SystemProductName') DO %INL% set SYSPDT=%%B IF NOT DEFINED SYSPDT (goto :TRANSFERS) else IF DEFINED VOID1 IF /I "%SYSPDT%"=="%VOID1%" (goto :TRANSFERS) else IF DEFINED VOID2 IF /I "%SYSPDT%"=="%VOID2%" (goto :TRANSFERS) else IF DEFINED VOID3 IF /I "%SYSPDT%"=="%VOID3%" (goto :TRANSFERS) else IF DEFINED VOID4 IF /I "%SYSPDT%"=="%VOID4%" (goto :TRANSFERS) else IF DEFINED VOID5 IF /I "%SYSPDT%"=="%VOID5%" (goto :TRANSFERS) reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /f /v "Model" /t REG_SZ /d "%SYSPDT%" >nul :TRANSFERS ::check • screen resolution -> movements|actions %windir%\Setup\scripts\MultiMonitorTool.exe /HideInactiveMonitors 1 /stext %windir%\Setup\scripts\monitor.txt for /f "tokens=2,3 delims=,: " %%i in ('type %windir%\Setup\scripts\monitor.txt ^| find /i "Right-Bottom"') do %INL% set RESLN=%%iX%%j IF EXIST "%windir%\Setup\scripts\MultiMonitorTool.exe" DEL /F /Q "%windir%\Setup\scripts\MultiMonitorTool.exe" >nul IF EXIST "%windir%\Setup\scripts\monitor.txt" DEL /F /Q "%windir%\Setup\scripts\monitor.txt" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\%RESLN%.jpg" DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" >nul && MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\%RESLN%.jpg" "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\%RESLN%.jpg" DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" >nul && MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\%RESLN%.jpg" "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" REN "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "BACKGROUNDDEFAULT.bak" >nul && DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\*.jpg" >nul & REN "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.bak" "BACKGROUNDDEFAULT.jpg" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" REN "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" "WALLPAPER.bak" >nul && DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\*.jpg" >nul & REN "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.bak" "WALLPAPER.jpg" >nul :TRANSFER1 ::check • 'Vista' -> movements|actions IF /I NOT "%WINVER%"=="VISTA" goto :TRANSFER2 IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\backgrounds" cd /d %windir%\Setup\scripts\OEM's\%MAN%\ && RD /S /Q "backgrounds" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" REN %windir%\Web\Wallpaper\img24.jpg img24.bak && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" "%windir%\Web\Wallpaper\img24.jpg" >nul :TRANSFER2 ::check • 'Win8.x and Win 10' -> movements|actions IF /I "%WINVER%"=="VISTA" GOTO :TRANSFER3 IF /I "%WINVER%"=="7" GOTO :TRANSFER3 IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" MD "%systemdrive%\$%MAN%$\Account" >nul && MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" "%systemdrive%\$%MAN%$\Account\user.bmp" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user.bmp" "user.bmp.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user.bmp" >nul && COPY /Y "%ProgramData%\Microsoft\User Account Pictures\user.bmp.bak" "%systemdrive%\$%MAN%$\Account\original.bmp" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user.png" "user.png.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user.png" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user-40.png" "user-40.png.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user-40.png" >nul IF EXIST "%systemdrive%\$%MAN%$\Account\user.bmp" REN "%ProgramData%\Microsoft\User Account Pictures\user-200.png" "user-200.png.bak" >nul && COPY /Y "%systemdrive%\$%MAN%$\Account\user.bmp" "%ProgramData%\Microsoft\User Account Pictures\user-200.png" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\OOBE.xml" DEL /F /Q "%windir%\Setup\scripts\OEM's\%MAN%\OOBE.xml" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" TAKEOWN /F "%windir%\Resources\Themes\*.theme" >nul & ICACLS "%windir%\Resources\Themes\*.theme" /reset /T /Q >nul & ICACLS "%windir%\Resources\Themes\*.theme" /grant:r "%windir%\Resources\Themes\*.theme:(OI)(CI)F" 2>nul & REN "%windir%\Resources\Themes\aero.theme" theme3.theme >nul & MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" "%windir%\Resources\Themes\aero.theme" >nul IF EXIST "%windir%\Web\Screen\img100.jpg" TAKEOWN /F "%windir%\Web\Screen\*.jpg" >nul & ICACLS "%windir%\Web\Screen\*.jpg" /reset /T /Q >nul & IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" MD "%systemdrive%\$%MAN%$\LockScreen" >nul && MOVE /Y "%windir%\Web\Screen\img100.jpg" "%systemdrive%\$%MAN%$\LockScreen\original.jpg" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%systemdrive%\$%MAN%$\LockScreen\LockScreen.jpg" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%windir%\Web\Screen\img100.jpg" >nul IF EXIST "%windir%\Web\Screen\img100.png" TAKEOWN /F "%windir%\Web\Screen\*.png" >nul & ICACLS "%windir%\Web\Screen\*.png" /reset /T /Q >nul & IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" MD "%systemdrive%\$%MAN%$\LockScreen" >nul && MOVE /Y "%windir%\Web\Screen\img100.png" "%systemdrive%\$%MAN%$\LockScreen\original.png" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%systemdrive%\$%MAN%$\LockScreen\LockScreen.jpg" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\Backgrounds\BACKGROUNDDEFAULT.jpg" "%windir%\Web\Screen\img100.png" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" MD "%systemdrive%\$%MAN%$\Desktop" >nul && COPY /Y "%windir%\Setup\scripts\OEM's\%MAN%\WALLPAPER.jpg" "%systemdrive%\$%MAN%$\Desktop\Desktop.jpg" >nul IF EXIST "%systemdrive%\$%MAN%$\" MOVE /Y "%systemdrive%\$%MAN%$" "%windir%\$%MAN%$" >nul ::Enables f8 key for Win 8.x and Win 10 in desktops and laptops | To disable this feature for tablets put :: in front of the line below bcdedit /set {default} bootmenupolicy legacy >nul :TRANSFER3 ::check • 'Windows OS' -> movements|actions IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\USER.bmp" "%ProgramData%\Microsoft\User Account Pictures\user.bmp" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" MOVE /Y "%windir%\Setup\scripts\OEM's\%MAN%\*.theme" "%windir%\Resources\Themes\$OEM$.theme" >nul IF EXIST "%windir%\Setup\scripts\OEM's\%MAN%\*.*" MD "%windir%\system32\oobe\info" 2>nul & for /f "delims==" %%F IN ('dir "%windir%\Setup\scripts\OEM's\%MAN%\*.*" /s /b') DO MOVE /Y "%%F" "%windir%\system32\oobe\info\" 2>nul cd /d %windir%\Setup\scripts\ IF EXIST "%windir%\Setup\scripts\OEM's\" DEL /S /F /Q "%windir%\Setup\scripts\OEM's\*.*" >nul && RD /S /Q "%windir%\Setup\scripts\OEM's" >nul IF /I "%WINVER%"=="VISTA" GOTO :CLOSE IF EXIST "%windir%\Setup\scripts\Certificates\" DEL /S /F /Q "%windir%\Setup\scripts\Certificates\*.*" >nul && RD /S /Q "%windir%\Setup\scripts\Certificates" >nul IF EXIST "%windir%\Setup\scripts\oemscan.ini" DEL /F /Q "%windir%\Setup\scripts\oemscan.ini" >nul ::=============================================================================================================== ::=============================================================================================================== ::ACTIVATION :Choice2 if "%layout%"=="MBR" if "%edition%"=="Enterprise" goto :KMSInstall if "%layout%"=="MBR" if "%edition%"=="Professional" goto :ActivationChoice if "%layout%"=="GPT" if "%edition%"=="Enterprise" goto :KMSInstall if "%layout%"=="GPT" if "%edition%"=="Professional" goto :KMSInstall if "%layout%"=="GPT" if not "%edition%"=="Enterprise" goto :MessageBox if "%layout%"=="GPT" if not "%edition%"=="Professional" goto :MessageBox goto :LoaderChoice :MessageBox set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "^!^!^!GPT Layout detected^!^!^! Skipping activation." 48 IF %ERRORLEVEL% EQU 1 del /s /q %file% >nul && call :Choice3 :ActivationChoice set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Windows Loader (Yes) or KMS (No) ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :LoaderChoice IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :KMSInstall :LoaderChoice set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Install Windows Loader ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :LoaderInstall IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice3 ::=============================================================================================================== ::LOADER INSTALL :LoaderInstall cls echo -------------------------------------------------------------------------------- echo WINDOWS LOADER by Daz echo -------------------------------------------------------------------------------- echo: %~dp0"Windows Loader.exe" /silent goto:Choice3 ::=============================================================================================================== ::KMS ACTIVATION :KMSInstall set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Install KMS Server by CODYQX4 ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :KMS IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice3 :KMS cls echo -------------------------------------------------------------------------------- echo KMS Server by CODYQX4 echo -------------------------------------------------------------------------------- echo: set port=1688 md "%windir%\KMSServerService" >nul xcopy "KMS Server Service %vera%.exe" /s /q "%windir%\KMSServerService" /Y >nul ren "%windir%\KMSServerService\KMS Server Service %vera%.exe" KMSServerService.exe netsh advfirewall firewall add rule name="KMSServerService %port%" dir=in program="%windir%\KMSServerService\KMSServerService.exe" localport=%port% protocol=TCP action=allow remoteip=any netsh advfirewall firewall add rule name="KMSServerService %port%" dir=in program="%windir%\KMSServerService\KMSServerService.exe" localport=%port% protocol=TCP action=allow remoteip=localsubnet REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer /v Description /t REG_SZ /d "Windows Service that emulates a Key Management Service (KMS) Server" /f >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KMSPort" /d %port% /t "REG_SZ" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KMSPID" /d "RandomKMSPID" /t "REG_SZ" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KMSHWID" /d "364F463A8863D35F" /t "REG_SZ" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "VLActivationInterval" /d "120" /t "REG_DWORD" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "VLRenewalInterval" /d "10080" /t "REG_DWORD" >nul REG ADD HKLM\SYSTEM\CurrentControlSet\services\KMSServer\Parameters /f /v "KillProcessOnPort" /d "1" /t "REG_DWORD" >nul sc create KMSServerService binPath= "%windir%\KMSServerService\KMSServerService.exe" type= own error= normal obj= "NT AUTHORITY\NetworkService" start= demand DisplayName= KMSServerService SCHTASKS /Create /TN "Reactivate Service DAILY" /TR "%windir%\KMSServerService\reactivate.cmd" /SC DAILY /MO 1 /RU SYSTEM /RL Highest /F SCHTASKS /Create /TN "Reactivate Service ONLOGON" /TR "%windir%\KMSServerServicereactivate.cmd" /SC ONLOGON /RU SYSTEM /RL Highest /F SCHTASKS /Create /TN "Reactivate Service ONSTART" /TR "%windir%\KMSServerService\reactivate.cmd" /SC ONSTART /RU SYSTEM /RL Highest /F >"%windir%\KMSServerService\reactivate.cmd" ( echo @echo off echo :: Code by s1ave77 echo cls echo echo: echo sc start KMSServerService ^>nul if /i "%edition%"=="Enterprise" echo cscript %windir%\system32\slmgr.vbs /ipk 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH if /i "%edition%"=="Professional" echo cscript %windir%\system32\slmgr.vbs /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 echo cscript %windir%\system32\slmgr.vbs /skms 127.0.0.2:%port% echo cscript %windir%\system32\slmgr.vbs /ato echo sc stop KMSServerService ^>nul echo exit ) sc start KMSServerService if /i "%edition%"=="Enterprise" cscript %windir%\system32\slmgr.vbs /ipk 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH if /i "%edition%"=="Professional" cscript %windir%\system32\slmgr.vbs /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 cscript %windir%\system32\slmgr.vbs /skms 127.0.0.2:%port% cscript %windir%\system32\slmgr.vbs /ato sc stop KMSServerService ::=============================================================================================================== ::=============================================================================================================== ::NET INSTALL :Choice3 set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Install .Net Framework ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :NetInstall IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Choice4 :NetInstall cls echo -------------------------------------------------------------------------------- echo .NET INSTALL echo -------------------------------------------------------------------------------- echo: "%~dp0net4install.exe" /silent ::=============================================================================================================== ::=============================================================================================================== :Choice4 set file=%temp%\messagebox.vbs echo set args=WScript.Arguments>%file% echo wscript.quit MsgBox(Replace(Replace(args.item(1),"{cr}",vbNewLine,1,-1,1),"{qt}",Chr(34),1,-1,1),args.item(2),args.item(0))>>%file% %file% "BootTask" "Reboot (mandatory for Loader) ?" 36 IF %ERRORLEVEL% EQU 6 del /s /q %file% >nul && call :Reboot IF %ERRORLEVEL% EQU 7 del /s /q %file% >nul && call :Exit ::=============================================================================================================== :Reboot ::finished -> remove 'scripts' dir ('RunOnce' Reg entry) -> self delete 'OOBE.cmd' (echo @echo off & echo. & echo IF EXIST "%windir%\Setup\scripts\" RD /S /Q "%windir%\Setup\scripts" ^>^nul & echo DEL /F /Q %%0%% ^>^nul) >"%windir%\Cleanup.cmd" reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v !Clean /t REG_SZ /d "%windir%\Cleanup.cmd" /f >nul Timeout /T 8 >nul DEL /F /Q %0% >nul ENDLOCAL shutdown.exe /r /t 0 ::=============================================================================================================== :Exit ::finished -> remove 'scripts' dir ('RunOnce' Reg entry) -> self delete 'OOBE.cmd' (echo @echo off & echo. & echo IF EXIST "%windir%\Setup\scripts\" RD /S /Q "%windir%\Setup\scripts" ^>^nul & echo DEL /F /Q %%0%% ^>^nul) >"%windir%\Cleanup.cmd" reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v !Clean /t REG_SZ /d "%windir%\Cleanup.cmd" /f >nul Timeout /T 8 >nul DEL /F /Q %0% >nul ENDLOCAL exit
Not sure about this Enterprise ... seems it wants to drive us mad . As it works for my Pro and most other scenarios, this can only be a minor issue. Let's test soon .
But it doesn't work for Professional either... It seems those skus which have VL channel (Pro & Ent), fail.
With latest posted version on GPT Pro i correctly get the KMSInstall Choice after OEM . Need to see where it's failing for you .
OK !!! Last attempt is working as expected (till something unexpected happens ... only ol' Murphy decides here). Now we can figure out OOBE issues which appeared for you. Need to check how to inplement real OEM BIOS/UEFI into VMware. Needs some files from this forums, as i know. Only found a nice BIOS set for that purpose, but no EFI so far.
We had this UEFI check code in the diskpart script, dunno if it helps at all: Code: SetLocal EnableDelayedExpansion :UEFICHECK :Check whether user has booted with UEFI or BIOS and set UEFI=1 if UEFI wpeutil UpdateBootInfo for /f "tokens=2* delims= " %%A in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') DO SET Firmware=%%B :: Note: delims is a TAB followed by a space. if !Firmware!==0x1 set UEFI=0 if !Firmware!==0x2 set UEFI=1 This is kind of a neat idea making an all-around activation script. Back like a year ago, we didn't have enough knowledge for that kinda scripting. FaiKee did post some sort of powershell line that checked bios for a key. Could be worth looking up.
Nice one ... now part of my HowToLibrary . Found another one that works likewise. Regarding OA 3.0, already done and quite simple: RWEverything: Code: set logfile=rw.log set rw=Rw.exe %rw% /Min /command="ACPI Dump MSDM";"RwExit" /logfile=rw\rw.log for /f "Skip=1 tokens=2 delims= " %%A in ('find "-" %logfile%') do set productkey=%%A if exist %logfile% del /s /q %logfile% >nul Powershell: Code: set psfile=%temp%\oa3key.ps1 echo (Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey>%psfile% for /f "tokens=*" %%a in ('powershell -executionpolicy remotesigned -File %psfile%') do set productkey=%%a if exist %psfile% del /s /q %psfile% >nul
Gathers the MSDM table from BIOS and writes it to LOG file. Then for-loop parses the LOG and sets the key as %productkey%. You'll only need to add: Code: cscript slmgr.vbs /ipk %productkey% Activation command to my experiences isn't need as those machines so far activated automatically at net contact .
Oh thanks ! So I create a batch with this command ? Code: set logfile=rw.log set rw=Rw.exe %rw% /Min /command="ACPI Dump MSDM";"RwExit" /logfile=rw\rw.log for /f "Skip=1 tokens=2 delims= " %%A in ('find "-" %logfile%') do set productkey=%%A cscript slmgr.vbs /ipk %productkey%
Yep, but note: this requires RW-Everything to be present in same folder. You can also use the Powershell version and add the same line for key install .