From e81490b89c55d7b0477da6e72db36e13f2b15f63 Mon Sep 17 00:00:00 2001 From: WindowsAddict Date: Mon, 25 Sep 2023 19:16:19 +0530 Subject: 1.9 --- MAS/Separate-Files-Version/Extract_OEM_Folder.cmd | 319 ++++++++++++++++++---- 1 file changed, 270 insertions(+), 49 deletions(-) (limited to 'MAS/Separate-Files-Version/Extract_OEM_Folder.cmd') diff --git a/MAS/Separate-Files-Version/Extract_OEM_Folder.cmd b/MAS/Separate-Files-Version/Extract_OEM_Folder.cmd index 0883f24..4b07b57 100644 --- a/MAS/Separate-Files-Version/Extract_OEM_Folder.cmd +++ b/MAS/Separate-Files-Version/Extract_OEM_Folder.cmd @@ -7,16 +7,22 @@ :: :: This script is a part of 'Microsoft_Activation_Scripts' (MAS) project. :: -:: Homepage: mass grave.dev +:: Homepage: mass grave[.]dev :: Email: windowsaddict@protonmail.com :: ::============================================================================ - ::======================================================================================================================================== +:: Set Path variable, it helps if it is misconfigured in the system + +set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\" +if exist "%SystemRoot%\Sysnative\reg.exe" ( +set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%PATH%" +) + :: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows :: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows @@ -24,6 +30,10 @@ set "_cmdf=%~f0" for %%# in (%*) do ( if /i "%%#"=="r1" set r1=1 if /i "%%#"=="r2" set r2=1 +if /i "%%#"=="-qedit" ( +reg add HKCU\Console /v QuickEdit /t REG_DWORD /d "1" /f %nul1% +rem check the code below admin elevation to understand why it's here +) ) if exist %SystemRoot%\Sysnative\cmd.exe if not defined r1 ( @@ -40,22 +50,34 @@ start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %* r2" exit /b ) -:: Set Path variable, it helps if it is misconfigured in the system +::======================================================================================================================================== -set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\" -if exist "%SystemRoot%\Sysnative\reg.exe" ( -set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%PATH%" +set "blank=" +set "mas=mass%blank%grave.dev" + +:: Check if Null service is working, it's important for the batch script + +sc query Null | find /i "RUNNING" +if %errorlevel% NEQ 0 ( +echo: +echo Null service is not running, script may crash... +echo: +echo: +echo Help - https://%mas%/troubleshoot.html +echo: +echo: +ping 127.0.0.1 -n 10 ) +cls :: Check LF line ending pushd "%~dp0" ->nul findstr /rxc:".*" "%~nx0" -if not %errorlevel%==0 ( +>nul findstr /v "$" "%~nx0" && ( echo: -echo Error: Script either has LF line ending issue, or it failed to read itself. +echo Error: Script either has LF line ending issue or an empty line at the end of the script is missing. echo: -ping 127.0.0.1 -n 6 > nul +ping 127.0.0.1 -n 6 >nul popd exit /b ) @@ -67,27 +89,44 @@ cls color 07 title Extract $OEM$ Folder -set winbuild=1 +set _args= +set _elev= + +set _args=%* +if defined _args set _args=%_args:"=% +if defined _args ( +for %%A in (%_args%) do ( +if /i "%%A"=="-el" set _elev=1 +) +) + +set "nul1=1>nul" +set "nul2=2>nul" +set "nul6=2^>nul" set "nul=>nul 2>&1" + set psc=powershell.exe +set winbuild=1 for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G set _NCS=1 if %winbuild% LSS 10586 set _NCS=0 -if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0) +if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 %nul2% | find /i "0x0" %nul1% && (set _NCS=0) if %_NCS% EQU 1 ( for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a" set "Red="41;97m"" +set "Gray="100;97m"" set "Green="42;97m"" -set "Magenta="45;97m"" +set "Blue="44;97m"" set "_White="40;37m"" set "_Green="40;92m"" set "_Yellow="40;93m"" ) else ( set "Red="Red" "white"" +set "Gray="Darkgray" "white"" set "Green="DarkGreen" "white"" -set "Magenta="Darkmagenta" "white"" +set "Blue="Blue" "white"" set "_White="Black" "Gray"" set "_Green="Black" "Green"" set "_Yellow="Black" "Yellow"" @@ -100,7 +139,7 @@ set "eline=echo: &call :ex_color %Red% "==== ERROR ====" &echo:" if %winbuild% LSS 7600 ( %nceline% -echo Unsupported OS version detected. +echo Unsupported OS version detected [%winbuild%]. echo Project is supported only for Windows 7/8/8.1/10/11 and their Server equivalent. goto done2 ) @@ -115,27 +154,20 @@ goto done2 :: Fix for the special characters limitation in path name -set desktop= -for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "desktop=%%b" -if not defined desktop for /f "delims=" %%a in ('%psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do call set "desktop=%%a" - set "_work=%~dp0" if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" set "_batf=%~f0" set "_batp=%_batf:'=''%" -set "_pdesk=%desktop:'=''%" set _PSarg="""%~f0""" -el %_args% set "_ttemp=%temp%" -set "_dir=%desktop%\$OEM$\$$\Setup\Scripts" - setlocal EnableDelayedExpansion ::======================================================================================================================================== -echo "!_batf!" | find /i "!_ttemp!" 1>nul && ( +echo "!_batf!" | find /i "!_ttemp!" %nul1% && ( if /i not "!_work!"=="!_ttemp!" ( %eline% echo Script is launched from the temp folder, @@ -150,8 +182,8 @@ goto done2 :: Elevate script as admin and pass arguments and preventing loop ->nul fltmc || ( -if not defined _elev %nul% %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b +%nul1% fltmc || ( +if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b %eline% echo This script require admin privileges. echo To do so, right click on this script and select 'Run as administrator'. @@ -160,12 +192,39 @@ goto done2 ::======================================================================================================================================== -if not exist "!desktop!\" ( +:: This code disables QuickEdit for this cmd.exe session only without making permanent changes to the registry +:: It is added because clicking on the script window pauses the operation and leads to the confusion that script stopped due to an error + +for %%# in (%_args%) do (if /i "%%#"=="-qedit" set quedit=1) + +reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% || if not defined quedit ( +reg add HKCU\Console /v QuickEdit /t REG_DWORD /d "0" /f %nul1% +start cmd.exe /c ""!_batf!" %_args% -qedit" +rem quickedit reset code is added at the starting of the script instead of here because it takes time to reflect in some cases +exit /b +) + +::======================================================================================================================================== + +setlocal DisableDelayedExpansion + +:: Check desktop location + +set desktop= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "desktop=%%b" +if not defined desktop for /f "delims=" %%a in ('%psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do call set "desktop=%%a" + +set "_pdesk=%desktop:'=''%" +set "_dir=%desktop%\$OEM$\$$\Setup\Scripts" + +if exist "!desktop!\" ( %eline% echo Desktop location was not detected, aborting... goto done2 ) +setlocal EnableDelayedExpansion + ::======================================================================================================================================== mode con cols=78 lines=30 @@ -181,7 +240,9 @@ goto done2 set HWID_Activation.cmd=Activators\HWID_Activation.cmd set KMS38_Activation.cmd=Activators\KMS38_Activation.cmd set Online_KMS_Activation.cmd=Activators\Online_KMS_Activation.cmd - +set Ohook_Activation.cmd=Activators\Ohook_Activation\Ohook_Activation.cmd +set sppc32.dll=Activators\Ohook_Activation\BIN\sppc32.dll +set sppc64.dll=Activators\Ohook_Activation\BIN\sppc64.dll pushd "!_work!" set _nofile= @@ -189,6 +250,9 @@ for %%# in ( %HWID_Activation.cmd% %KMS38_Activation.cmd% %Online_KMS_Activation.cmd% +%Ohook_Activation.cmd% +%sppc32.dll% +%sppc64.dll% ) do ( if not exist "%%#" set _nofile=1 ) @@ -213,29 +277,38 @@ echo: echo: echo: echo: -echo: echo: Extract $OEM$ folder on the desktop echo: ________________________________________________________ -echo: +echo: echo: [1] HWID -echo: [2] KMS38 -echo: [3] Online KMS -echo: -echo: [4] HWID ^(Windows^) ^+ Online KMS ^(Office^) -echo: [5] KMS38 ^(Windows^) ^+ Online KMS ^(Office^) -echo: -echo: [0] Exit +echo: [2] Ohook +echo: [3] KMS38 +echo: [4] Online KMS +echo: +echo: [5] HWID ^(Windows^) ^+ Ohook ^(Office^) +echo: [6] HWID ^(Windows^) ^+ Online KMS ^(Office^) +echo: [7] KMS38 ^(Windows^) ^+ Ohook ^(Office^) +echo: [8] KMS38 ^(Windows^) ^+ Online KMS ^(Office^) +echo: [9] Online KMS ^(Windows^) ^+ Ohook ^(Office^) +echo: +call :ex_color2 %_White% " [R] " %_Green% "ReadMe" +echo: [0] Exit echo: ________________________________________________________ echo: -call :ex_color2 %_White% " " %_Green% "Enter a menu option in the Keyboard [1,2,3,4,5,0]" -choice /C:123450 /N +call :ex_color2 %_White% " " %_Green% "Enter a menu option in the Keyboard :" +choice /C:123456789R0 /N set _erl=%errorlevel% -if %_erl%==6 exit /b -if %_erl%==5 goto:kms38_kms -if %_erl%==4 goto:hwid_kms -if %_erl%==3 goto:kms -if %_erl%==2 goto:kms38 +if %_erl%==11 exit /b +if %_erl%==10 start https://%mas%/oem-folder.html &goto :Menu +if %_erl%==9 goto:kms_ohook +if %_erl%==8 goto:kms38_kms +if %_erl%==7 goto:kms38_ohook +if %_erl%==6 goto:hwid_kms +if %_erl%==5 goto:hwid_ohook +if %_erl%==4 goto:kms +if %_erl%==3 goto:kms38 +if %_erl%==2 goto:ohook if %_erl%==1 goto:hwid goto :Menu @@ -271,6 +344,40 @@ cd \ ::======================================================================================================================================== +:ohook + +cls +md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" +pushd "!_work!" +copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul% +copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul% +copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul% +popd +call :export ohook_setup + +set _error= +if not exist "!_dir!\Ohook_Activation.cmd" set _error=1 +if not exist "!_dir!\BIN\sppc32.dll" set _error=1 +if not exist "!_dir!\BIN\sppc64.dll" set _error=1 +if not exist "!_dir!\SetupComplete.cmd" set _error=1 +if defined _error goto errorfound + +set oem=Ohook +goto done + +:ohook_setup: +@echo off + +fltmc >nul || exit /b + +start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook + +cd \ +(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") +:ohook_setup: + +::======================================================================================================================================== + :kms38 cls @@ -331,6 +438,44 @@ cd \ ::======================================================================================================================================== +:hwid_ohook + +cls +md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" +pushd "!_work!" +copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul% +copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul% +copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul% +copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul% +popd +call :export hwid_ohook_setup + +set _error= +if not exist "!_dir!\HWID_Activation.cmd" set _error=1 +if not exist "!_dir!\Ohook_Activation.cmd" set _error=1 +if not exist "!_dir!\BIN\sppc32.dll" set _error=1 +if not exist "!_dir!\BIN\sppc64.dll" set _error=1 +if not exist "!_dir!\SetupComplete.cmd" set _error=1 +if defined _error goto errorfound + +set oem=HWID [Windows] + Ohook [Office] +goto done + +:hwid_ohook_setup: +@echo off + +fltmc >nul || exit /b + +start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID + +start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook + +cd \ +(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") +:hwid_ohook_setup: + +::======================================================================================================================================== + :hwid_kms cls @@ -365,6 +510,44 @@ cd \ ::======================================================================================================================================== +:kms38_ohook + +cls +md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" +pushd "!_work!" +copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul% +copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul% +copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul% +copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul% +popd +call :export kms38_ohook_setup + +set _error= +if not exist "!_dir!\KMS38_Activation.cmd" set _error=1 +if not exist "!_dir!\Ohook_Activation.cmd" set _error=1 +if not exist "!_dir!\BIN\sppc32.dll" set _error=1 +if not exist "!_dir!\BIN\sppc64.dll" set _error=1 +if not exist "!_dir!\SetupComplete.cmd" set _error=1 +if defined _error goto errorfound + +set oem=KMS38 [Windows] + Ohook [Office] +goto done + +:kms38_ohook_setup: +@echo off + +fltmc >nul || exit /b + +start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38 + +start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook + +cd \ +(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") +:kms38_ohook_setup: + +::======================================================================================================================================== + :kms38_kms cls @@ -399,6 +582,44 @@ cd \ ::======================================================================================================================================== +:kms_ohook + +cls +md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" +pushd "!_work!" +copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul% +copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul% +copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul% +copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul% +popd +call :export kms_ohook_setup + +set _error= +if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1 +if not exist "!_dir!\Ohook_Activation.cmd" set _error=1 +if not exist "!_dir!\BIN\sppc32.dll" set _error=1 +if not exist "!_dir!\BIN\sppc64.dll" set _error=1 +if not exist "!_dir!\SetupComplete.cmd" set _error=1 +if defined _error goto errorfound + +set oem=Online KMS [Windows] + Ohook [Office] +goto done + +:kms_ohook_setup: +@echo off + +fltmc >nul || exit /b + +start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Windows + +start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook + +cd \ +(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") +:kms_ohook_setup: + +::======================================================================================================================================== + :errorfound %eline% @@ -407,15 +628,14 @@ goto :done2 :done -set -= echo ______________________________________________________________ echo: -call :ex_color %Magenta% "%oem%" +call :ex_color %Blue% "%oem%" call :ex_color %Green% "$OEM$ folder is successfully created on the Desktop." echo "%oem%" | find /i "38" %nul% && ( echo: echo To KMS38 activate Server Cor/Acor editions ^(No GUI Versions^), -echo Check this page https://mass%-%grave.dev/oem-folder +echo Check this page https://%mas%/oem-folder ) echo ______________________________________________________________ @@ -423,7 +643,7 @@ echo ______________________________________________________________ echo: call :ex_color %_Yellow% "Press any key to exit..." -pause >nul +pause %nul1% exit /b ::======================================================================================================================================== @@ -432,7 +652,7 @@ exit /b :export -%nul% %psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('!_pdesk!\$OEM$\$$\Setup\Scripts\SetupComplete.cmd',$f[1].Trim(),[System.Text.Encoding]::ASCII);" +%psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('!_pdesk!\$OEM$\$$\Setup\Scripts\SetupComplete.cmd',$f[1].Trim(),[System.Text.Encoding]::ASCII);" exit /b ::======================================================================================================================================== @@ -455,4 +675,5 @@ if not exist %psc% (echo %~3%~6) else (%psc% write-host -back '%1' -fore '%2' '% ) exit /b -::======================================================================================================================================== \ No newline at end of file +::======================================================================================================================================== +:: Leave empty line below -- cgit v1.2.3