1
0
mirror of https://github.com/massgravel/Microsoft-Activation-Scripts.git synced 2025-02-22 04:59:56 +00:00

3 Commits
2.2 ... 2.4

Author SHA1 Message Date
WindowsAddict
ed455ca5fc 2.4 2023-10-21 05:31:26 +05:30
WindowsAddict
569681da0e Force using IPv4 in update check 2023-10-18 15:43:06 +05:30
WindowsAddict
9936a1d3a1 2.3 2023-10-16 08:20:03 +05:30
12 changed files with 817 additions and 246 deletions

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -91,7 +92,7 @@ popd
cls cls
color 07 color 07
title Microsoft_Activation_Scripts title Microsoft_Activation_Scripts %masver%
set _args= set _args=
set _elev= set _elev=
@ -109,14 +110,18 @@ if defined _args echo "%_args%" | find /i "/" >nul && set _MASunattended=1
::======================================================================================================================================== ::========================================================================================================================================
set winbuild=1 set "nul1=1>nul"
set "nul2=2>nul"
set "nul6=2^>nul"
set "nul=>nul 2>&1" set "nul=>nul 2>&1"
set winbuild=1
set psc=powershell.exe set psc=powershell.exe
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
set _NCS=1 set _NCS=1
if %winbuild% LSS 10586 set _NCS=0 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)
call :_colorprep call :_colorprep
@ -151,13 +156,13 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
::======================================================================================================================================== ::========================================================================================================================================
echo "!_batf!" | find /i "!_ttemp!" 1>nul && ( echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
if /i not "!_work!"=="!_ttemp!" ( if /i not "!_work!"=="!_ttemp!" (
%nceline% %nceline%
echo Script is launched from the temp folder, echo Script is launched from the temp folder,
@ -172,15 +177,15 @@ goto MASend
:: Elevate script as admin and pass arguments and preventing loop :: Elevate script as admin and pass arguments and preventing loop
>nul fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%nceline% %nceline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto MASend goto MASend
) )
if not exist "%SystemRoot%\Temp\" mkdir "%SystemRoot%\Temp" 1>nul 2>nul if not exist "%SystemRoot%\Temp\" mkdir "%SystemRoot%\Temp" %nul%
::======================================================================================================================================== ::========================================================================================================================================
@ -199,6 +204,35 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
if not defined _MASunattended (
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
)
cls
::========================================================================================================================================
:: Run script with parameters in unattended mode :: Run script with parameters in unattended mode
set _elev= set _elev=
@ -229,7 +263,7 @@ setlocal EnableDelayedExpansion
cls cls
color 07 color 07
title Microsoft_Activation_Scripts 2.2 title Microsoft_Activation_Scripts %masver%
mode 76, 30 mode 76, 30
echo: echo:
@ -258,7 +292,7 @@ choice /C:123456780 /N
set _erl=%errorlevel% set _erl=%errorlevel%
if %_erl%==9 exit /b if %_erl%==9 exit /b
if %_erl%==8 start https://%mas%/troubleshoot.html & goto :MainMenu if %_erl%==8 start %mas%troubleshoot.html & goto :MainMenu
if %_erl%==7 goto:Extras if %_erl%==7 goto:Extras
if %_erl%==6 setlocal & call :troubleshoot & cls & endlocal & goto :MainMenu if %_erl%==6 setlocal & call :troubleshoot & cls & endlocal & goto :MainMenu
if %_erl%==5 setlocal & call :_Check_Status_wmi & cls & endlocal & goto :MainMenu if %_erl%==5 setlocal & call :_Check_Status_wmi & cls & endlocal & goto :MainMenu
@ -431,11 +465,13 @@ set _NoEditionChange=0
:: If value is changed in above lines or parameter is used then script will run in unattended mode :: If value is changed in above lines or parameter is used then script will run in unattended mode
::======================================================================================================================================== ::========================================================================================================================================
cls cls
color 07 color 07
title HWID Activation title HWID Activation %masver%
set _args= set _args=
set _elev= set _elev=
@ -526,7 +562,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -534,7 +570,7 @@ setlocal EnableDelayedExpansion
cls cls
mode 108, 34 mode 108, 34
title HWID Activation title HWID Activation %masver%
:: Start Windows update service at the beginning and in later checks as well, because in some normal conditions one kick is not enough :: Start Windows update service at the beginning and in later checks as well, because in some normal conditions one kick is not enough
@ -1183,7 +1219,7 @@ set showfix=1
if defined safeboot_option ( if defined safeboot_option (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[System is running in safe mode. Run in normal mode.]" call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[Safe mode found. Run in normal mode.]"
) )
@ -1197,7 +1233,7 @@ call :dk_color2 %Red% "Checking Audit Mode " %Blue% "[IMAGE_
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking WinPE " %Blue% "[System is running in WinPE mode. Run in normal mode.]" call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE mode found. Run in normal mode.]"
) )
@ -1539,11 +1575,13 @@ set _rem=0
:: If value is changed in above lines or parameter is used then script will run in unattended mode :: If value is changed in above lines or parameter is used then script will run in unattended mode
::======================================================================================================================================== ::========================================================================================================================================
cls cls
color 07 color 07
title Ohook Activation title Ohook Activation %masver%
set _args= set _args=
set _elev= set _elev=
@ -1626,7 +1664,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -1639,7 +1677,7 @@ if %_rem%==1 goto :oh_uninstall
if %_unattended%==0 ( if %_unattended%==0 (
cls cls
mode 76, 25 mode 76, 25
title Ohook Activation title Ohook Activation %masver%
echo: echo:
echo: echo:
@ -1675,7 +1713,7 @@ cls
mode 128, 32 mode 128, 32
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=32;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=32;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
title Ohook Activation title Ohook Activation %masver%
echo: echo:
echo Initializing... echo Initializing...
@ -1886,33 +1924,45 @@ call :oh_hookinstall
::======================================================================================================================================== ::========================================================================================================================================
:: Find remnants of Office vNext license block and remove it because it stops non vNext licenses from appearing :: Find remnants of Office vNext license block and remove it because it stops non vNext licenses from appearing
:: https://learn.microsoft.com/en-us/office/troubleshoot/activation/reset-office-365-proplus-activation-state
set _sid=
set sub_next= set sub_next=
set kNext=HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Licensing for /f "tokens=* delims=" %%a in ('%psc% "$userSIDs = Get-WmiObject -Class Win32_UserAccount | ForEach-Object {write-host $_.SID}" %nul6%') do (if defined _sid (set "_sid=!_sid! HKU\%%a") else (set "_sid=HKU\%%a"))
reg query %kNext%\LicensingNext /v MigrationToV5Done %nul2% | find /i "0x1" %nul% && ( if not defined _sid (
reg query %kNext%\LicensingNext %nul2% | findstr /i "volume retail" %nul2% | findstr /i "0x2 0x3" %nul% && ( call :dk_color %Red% "Checking User Accounts SID [Not Found]"
)
for %%# in (!_sid! HKCU) do if not defined sub_next (
reg query %%#\Software\Microsoft\Office\16.0\Common\Licensing\LicensingNext /v MigrationToV5Done %nul2% | find /i "0x1" %nul% && (
reg query %%#\Software\Microsoft\Office\16.0\Common\Licensing\LicensingNext %nul2% | findstr /i "volume retail" %nul2% | findstr /i "0x2 0x3" %nul% && (
set sub_next=1 set sub_next=1
reg delete %kNext% /f %nul% )
) )
) )
if defined sub_next ( if defined sub_next for %%# in (!_sid! HKCU) do (
reg query %kNext%\LicensingNext %nul% && ( reg delete %%#\Software\Microsoft\Office\16.0\Common\Licensing /f %nul%
call :dk_color %Red% "Removing Office vNext Block [Failed]" reg delete %%#\Software\Microsoft\Office\16.0\Common\Identity /f %nul%
) || ( reg delete %%#\Software\Microsoft\Office\16.0\Registration /f %nul%
echo Removing Office vNext Block [Successful]
)
) )
if defined sub_next echo Removing Office vNext Block [Successful]
::======================================================================================================================================== ::========================================================================================================================================
:: Subscription licenses attempt to validate the license and may show a banner "There was a problem checking this device's license status.", other products don't do that. :: Subscription products attempt to validate the license and may show a banner "There was a problem checking this device's license status."
:: A simple registry entry can skip this check :: Resiliency registry entry can skip this check
if defined _sublic ( if defined o16c2r (
echo Adding a Reg To Skip License Check [Successful] for %%# in (!_sid! HKCU) do (reg delete %%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f %nul%)
reg add HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /v "TimeOfLastHeartbeatFailure" /t REG_SZ /d "2033-08-18T22:18:45Z" /f %nul% for %%# in (!_sid! HKCU) do (
reg query %%# %nul% && (
reg add %%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /v "TimeOfLastHeartbeatFailure" /t REG_SZ /d "2040-01-01T00:00:00Z" /f %nul%
)
)
echo Adding Reg Keys To Skip License Check [Successful]
) )
::======================================================================================================================================== ::========================================================================================================================================
@ -1997,7 +2047,7 @@ goto :dk_done
cls cls
mode 99, 28 mode 99, 28
title Uninstall Ohook Activation title Uninstall Ohook Activation %masver%
set _present= set _present=
set _unerror= set _unerror=
@ -2034,15 +2084,21 @@ if exist "%%~A\Microsoft %%~G\root\vfs\%%#\sppc*dll" (set _present=1& del /s /f
) )
) )
reg query HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /s %nul2% | find /i "2033" %nul% && ( reg query HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency %nul% && (
echo: echo:
echo Deleting - HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency echo Deleting - Registry keys to skip license check
reg delete HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f reg delete HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f
for /f "tokens=* delims=" %%a in ('%psc% "$userSIDs = Get-WmiObject -Class Win32_UserAccount | ForEach-Object {write-host $_.SID}" %nul6%') do (if defined _sid (set "_sid=!_sid! %%a") else (set "_sid=%%a"))
for %%# in (!_sid!) do (reg query HKU\%%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency %nul% && (
reg delete HKU\%%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f
)
)
) )
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" %nul% && ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" %nul% && (
echo: echo:
echo Deleting - Registry key to prevent non-genuine banner echo Deleting - Registry keys to prevent non-genuine banner
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" /f reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" /f
) )
@ -2179,6 +2235,9 @@ exit /b
set ierror= set ierror=
set hasherror= set hasherror=
if %_hook%==sppc32.dll set offset=2564
if %_hook%==sppc64.dll set offset=3076
del /s /q "%_hookPath%\sppcs.dll" %nul% del /s /q "%_hookPath%\sppcs.dll" %nul%
del /s /q "%_hookPath%\sppc.dll" %nul% del /s /q "%_hookPath%\sppc.dll" %nul%
@ -2188,7 +2247,7 @@ if exist "%_hookPath%\sppc.dll" set ierror=1
mklink "%_hookPath%\sppcs.dll" "%_sppcPath%" %nul% mklink "%_hookPath%\sppcs.dll" "%_sppcPath%" %nul%
if not %errorlevel%==0 set ierror=1 if not %errorlevel%==0 set ierror=1
if not exist "%_hookPath%\sppc.dll" call :oh_extractdll "%_hookPath%\sppc.dll" if not exist "%_hookPath%\sppc.dll" call :oh_extractdll "%_hookPath%\sppc.dll" "%offset%"
if not exist "%_hookPath%\sppc.dll" set ierror=1 if not exist "%_hookPath%\sppc.dll" set ierror=1
echo: echo:
@ -2200,7 +2259,9 @@ set error=1
call :dk_color %Red% "Symlinking Systems sppc.dll [Failed]" call :dk_color %Red% "Symlinking Systems sppc.dll [Failed]"
call :dk_color %Red% "Extracting Custom %_hook% [Failed]" call :dk_color %Red% "Extracting Custom %_hook% [Failed]"
echo ["%_hookPath%\sppc.dll"] echo ["%_hookPath%\sppc.dll"]
call :dk_color %Blue% "Close Office apps if they are running and try again." echo:
call :dk_color %Blue% "Close ALL Office apps including Outlook and try again."
call :dk_color %Blue% "If its still not resolved then restart system and try again."
) )
if not defined ierror ( if not defined ierror (
@ -2519,7 +2580,7 @@ exit /b
:oh_extractdll :oh_extractdll
set b= set b=
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':%_hook%\:.*';$bytes = [Con%b%vert]::FromBas%b%e64String($f[1]); $PePath='%1'; $m=[io.file]::ReadAllText('!_batp!') -split ':hexedit\:.*';iex ($m[1]);" %nul2% | find /i "Error found" %nul1% && set hasherror=1 %psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':%_hook%\:.*';$bytes = [Con%b%vert]::FromBas%b%e64String($f[1]); $PePath='%1'; $offset='%2'; $m=[io.file]::ReadAllText('!_batp!') -split ':hexedit\:.*';iex ($m[1]);" %nul2% | find /i "Error found" %nul1% && set hasherror=1
exit /b exit /b
:hexedit: :hexedit:
@ -2541,7 +2602,7 @@ $Imagehlp = $TypeBuilder.CreateType()
# Offset information # Offset information
$timestampOffset = 136 $timestampOffset = 136
$exportTimestampOffset = 3076 $exportTimestampOffset = $offset
$checkSumOffset = 216 $checkSumOffset = 216
# Calculate timestamp # Calculate timestamp
@ -2597,10 +2658,10 @@ $MemoryStream.Close()
:: This below blocks of text is encoded in base64 format :: This below blocks of text is encoded in base64 format
:: The blocks in labels "sppc64.dll" and "sppc32.dll" contains below files :: The blocks in labels "sppc64.dll" and "sppc32.dll" contains below files
:: ::
:: C6DF24DEEF2E83813DEE9C81DDD9793A3D60C117A4E8E231B82E32B3192927E7 *sppc64.dll :: e6ac83560c19ec7eb868c50ea97ea0ed5632a397a9f43c17e24e6de4a694d118 *sppc32.dll
:: E6AC83560C19EC7EB868C50EA97EA0ED5632A397A9F43C17E24E6DE4A694D118 *sppc32.dll :: c6df24deef2e83813dee9c81ddd9793a3d60c117a4e8e231b82e32b3192927e7 *sppc64.dll
:: ::
:: The files are encoded in base64 to make MAS AIO version. Alternatively, you can use MAS separate files version :: The files are encoded in base64 to make MAS AIO version.
:: ::
:: mass grave[.]dev/ohook :: mass grave[.]dev/ohook
:: Here you can find the files source code and info on how to rebuild the identical sppc.dll files :: Here you can find the files source code and info on how to rebuild the identical sppc.dll files
@ -2761,11 +2822,13 @@ set _NoEditionChange=0
:: If value is changed in above lines or parameter is used then script will run in unattended mode :: If value is changed in above lines or parameter is used then script will run in unattended mode
::======================================================================================================================================== ::========================================================================================================================================
cls cls
color 07 color 07
title KMS38 Activation title KMS38 Activation %masver%
set _args= set _args=
set _elev= set _elev=
@ -2852,7 +2915,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -2865,7 +2928,7 @@ if %_rem%==1 goto :k_uninstall
if %_unattended%==0 ( if %_unattended%==0 (
cls cls
mode 76, 25 mode 76, 25
title KMS38 Activation title KMS38 Activation %masver%
echo: echo:
echo: echo:
@ -2896,7 +2959,7 @@ goto :k_menu
cls cls
mode 108, 34 mode 108, 34
title KMS38 Activation title KMS38 Activation %masver%
echo: echo:
echo Initializing... echo Initializing...
@ -3373,7 +3436,7 @@ goto :dk_done
cls cls
mode 99, 28 mode 99, 28
title Remove KMS38 Protection title Remove KMS38 Protection %masver%
%nul% reg delete "HKLM\%specific_kms%" /f %nul% reg delete "HKLM\%specific_kms%" /f
%nul% reg delete "HKU\S-1-5-20\%specific_kms%" /f %nul% reg delete "HKU\S-1-5-20\%specific_kms%" /f
@ -3613,7 +3676,7 @@ exit /b
cls cls
color 07 color 07
title Online KMS Activation title Online KMS Activation %masver%
:: You are not supposed to edit anything below this. :: You are not supposed to edit anything below this.
@ -3685,7 +3748,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
set "_Local=%LocalAppData%" set "_Local=%LocalAppData%"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -3739,7 +3802,7 @@ if defined _unattended if not defined _unattendedact goto Done
::======================================================================================================================================== ::========================================================================================================================================
set "_title=Online KMS Activation" set "_title=Online KMS Activation %masver%"
set _gui= set _gui=
:_KMS_Menu :_KMS_Menu
@ -3948,7 +4011,7 @@ mode con cols=98 lines=31
%psc% "&%_buf%" %psc% "&%_buf%"
title %_title% title %_title%
) else ( ) else (
title Online KMS Activation title Online KMS Activation %masver%
) )
if defined _gui if %_Debug%==1 mode con cols=98 lines=30 if defined _gui if %_Debug%==1 mode con cols=98 lines=30
@ -6742,7 +6805,7 @@ goto :eof
cls cls
mode con: cols=91 lines=30 mode con: cols=91 lines=30
title Online KMS Complete Uninstall title Online KMS Complete Uninstall %masver%
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
@ -6853,7 +6916,7 @@ exit /b
cls cls
mode con cols=91 lines=30 mode con cols=91 lines=30
title Install Activation Auto-Renewal title Install Activation Auto-Renewal %masver%
set error_= set error_=
set "_dest=%ProgramFiles%\Activation-Renewal" set "_dest=%ProgramFiles%\Activation-Renewal"
@ -6882,7 +6945,7 @@ if exist "%_temp%\.*" rmdir /s /q "%_temp%\" %nul%
call :createInfo.txt call :createInfo.txt
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":_extracttask\:.*`r`n\"; [io.file]::WriteAllText('%_dest%\Activation_task.cmd', '@REM Dummy ' + '%random%' + [Environment]::NewLine + $f[1].Trim(), [System.Text.Encoding]::ASCII);" %psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":_extracttask\:.*`r`n\"; [io.file]::WriteAllText('%_dest%\Activation_task.cmd', '@REM Dummy ' + '%random%' + [Environment]::NewLine + $f[1].Trim(), [System.Text.Encoding]::ASCII);"
title Install Activation Auto-Renewal title Install Activation Auto-Renewal %masver%
::======================================================================================================================================== ::========================================================================================================================================
@ -8473,7 +8536,7 @@ PrintLicensesInformation -Mode "Device"
cls cls
color 07 color 07
title Troubleshoot title Troubleshoot %masver%
set _args= set _args=
set _elev= set _elev=
@ -8518,7 +8581,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
:: Check desktop location :: Check desktop location
@ -8540,7 +8603,7 @@ setlocal EnableDelayedExpansion
cls cls
color 07 color 07
title Troubleshoot title Troubleshoot %masver%
mode con cols=77 lines=30 mode con cols=77 lines=30
echo: echo:
@ -8701,7 +8764,7 @@ goto :at_back
:retokens :retokens
cls cls
mode con cols=115 lines=32 mode con cols=125 lines=32
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
title Fix Licensing ^(ClipSVC ^+ Office vNext ^+ SPP ^+ OSPP^) title Fix Licensing ^(ClipSVC ^+ Office vNext ^+ SPP ^+ OSPP^)
@ -8714,6 +8777,8 @@ echo - It helps in troubleshooting activation issues.
echo: echo:
echo - This option will, echo - This option will,
echo - Deactivate Windows and Office, you may need to reactivate echo - Deactivate Windows and Office, you may need to reactivate
echo If Windows is activated with motherboard / OEM / Digital license then don't worry
echo:
echo - Clear ClipSVC, Office vNext, SPP and OSPP licenses echo - Clear ClipSVC, Office vNext, SPP and OSPP licenses
echo - Fix SPP permissions of tokens folder and registries echo - Fix SPP permissions of tokens folder and registries
echo - Trigger the repair option for Office. echo - Trigger the repair option for Office.
@ -8834,7 +8899,8 @@ for %%# in (wlidsvc LicenseManager) do (net stop %%# /y %nul% & net start %%# /y
::======================================================================================================================================== ::========================================================================================================================================
:: Clear Office vNext License :: Find remnants of Office vNext license block and remove it because it stops non vNext licenses from appearing
:: https://learn.microsoft.com/en-us/office/troubleshoot/activation/reset-office-365-proplus-activation-state
:cleanvnext :cleanvnext
@ -8873,21 +8939,28 @@ echo Deleted Folder - !_Local!\Microsoft\Office\Licenses\
echo Not Found - !_Local!\Microsoft\Office\Licenses\ echo Not Found - !_Local!\Microsoft\Office\Licenses\
) )
echo: echo:
for %%# in ( for /f "tokens=* delims=" %%a in ('%psc% "$userSIDs = Get-WmiObject -Class Win32_UserAccount | ForEach-Object {write-host $_.SID}" %nul6%') do (if defined _sid (set "_sid=!_sid! HKU\%%a") else (set "_sid=HKU\%%a"))
HKCU\Software\Microsoft\Office\16.0\Common\Licensing
HKCU\Software\Microsoft\Office\16.0\Registration set regfound=
for %%# in (HKCU !_sid!) do (
for %%A in (
%%#\Software\Microsoft\Office\16.0\Common\Licensing
%%#\Software\Microsoft\Office\16.0\Common\Identity
%%#\Software\Microsoft\Office\16.0\Registration
) do ( ) do (
reg query %%# %nul% && ( reg query %%A %nul% && (
reg delete %%# /f %nul% && ( set regfound=1
echo Deleted Registry - %%# reg delete %%A /f %nul% && (
echo Deleted Registry - %%A
) || ( ) || (
echo Failed to Delete - %%# echo Failed to Delete - %%A
)
) || (
echo Not Found Registry - %%#
) )
) )
)
)
if not defined regfound echo Not Found - Office vNext Registry Keys
::======================================================================================================================================== ::========================================================================================================================================
@ -9545,7 +9618,7 @@ set _stg=0
cls cls
color 07 color 07
title Change Windows Edition title Change Windows Edition %masver%
set _args= set _args=
set _elev= set _elev=
@ -9607,7 +9680,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -9769,7 +9842,7 @@ echo "!_target!" | find /i " %%# " %nul1% || set "_target= !_target! %%# "
if defined _target ( if defined _target (
for %%# in (%_target%) do ( for %%# in (%_target%) do (
echo %%# | findstr /i "CountrySpecific CloudEdition" %nul% || (set "_ntarget=!_ntarget! %%#") echo %%# | findstr /i "CountrySpecific CloudEdition ServerRdsh" %nul% || (set "_ntarget=!_ntarget! %%#")
) )
) )
@ -9861,18 +9934,31 @@ goto ced_done
:: Changing from Core to Non-Core & Changing editions in Windows build older than 17134 requires "changepk /productkey" or DISM Api method and restart :: Changing from Core to Non-Core & Changing editions in Windows build older than 17134 requires "changepk /productkey" or DISM Api method and restart
:: In other cases, editions can be changed instantly with "slmgr /ipk" :: In other cases, editions can be changed instantly with "slmgr /ipk"
if %_dismapi%==1 (
mode con cols=105 lines=40
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
%eline%
echo Pending Reboot flags found.
echo:
echo Restart the system and try again.
goto ced_done
)
)
cls cls
%line% %line%
echo: echo:
if defined dismnotworking call :dk_color %_Yellow% "DISM.exe is not responding."
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%] echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
echo: echo:
if %_dismapi%==1 ( if %_dismapi%==1 (
call :dk_color %Blue% "Notes-" call :dk_color %Green% "Notes-"
echo: echo:
echo - Save your work before continue, system will auto restart. echo - Save your work before continue, system will auto restart.
echo: echo:
echo - You will need to activate with HWID option once the edition is changed. echo - You will need to activate with HWID option once the edition is changed.
%line%
echo: echo:
choice /C:21 /N /M "[1] Continue [2] %_exitmsg% : " choice /C:21 /N /M "[1] Continue [2] %_exitmsg% : "
if !errorlevel!==1 exit /b if !errorlevel!==1 exit /b
@ -9904,7 +9990,7 @@ echo Check this page for help. %mas%troubleshoot
if %_dismapi%==1 ( if %_dismapi%==1 (
echo: echo:
echo Applying the DISM API method with %_chan% Key %key% echo Applying the DISM API method with %_chan% Key %key%. Please wait...
echo: echo:
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':dismapi\:.*';& ([ScriptBlock]::Create($f[1])) %targetedition% %key%;" %psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':dismapi\:.*';& ([ScriptBlock]::Create($f[1])) %targetedition% %key%;"
timeout /t 3 %nul1% timeout /t 3 %nul1%
@ -9924,7 +10010,16 @@ cls
mode con cols=105 lines=32 mode con cols=105 lines=32
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
%eline%
echo Pending reboot flags found.
echo: echo:
echo Restart the system and try again.
goto ced_done
)
echo:
if defined dismnotworking call :dk_color %_Yellow% "Note - DISM.exe is not responding."
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%] echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
echo: echo:
call :dk_color %Blue% "Important - Save your work before continue, system will auto reboot." call :dk_color %Blue% "Important - Save your work before continue, system will auto reboot."
@ -9973,8 +10068,17 @@ goto ced_done
::======================================================================================================================================== ::========================================================================================================================================
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
%eline%
echo Pending reboot flags found.
echo:
echo Restart the system and try again.
goto ced_done
)
cls cls
echo: echo:
if defined dismnotworking call :dk_color %_Yellow% "Note - DISM.exe is not responding."
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%] echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
echo: echo:
echo Applying the command with %_chan% Key echo Applying the command with %_chan% Key
@ -10001,11 +10105,38 @@ exit /b
if %_wmic% EQU 1 set "chkedi=for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f') get LicenseFamily /VALUE" %nul6%')" if %_wmic% EQU 1 set "chkedi=for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f') get LicenseFamily /VALUE" %nul6%')"
if %_wmic% EQU 0 set "chkedi=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELECT LicenseFamily FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f''').Get()).LicenseFamily ^| %% {echo ('LicenseFamily='+$_)}" %nul6%')" if %_wmic% EQU 0 set "chkedi=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELECT LicenseFamily FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f''').Get()).LicenseFamily ^| %% {echo ('LicenseFamily='+$_)}" %nul6%')"
%chkedi% do (call set "_wtarget= !_wtarget! %%a ") %chkedi% do (
call if exist %Systemdrive%\Windows\System32\spp\tokens\skus\%%a (
call set "_wtarget= !_wtarget! %%a "
)
)
exit /b exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check pending reboot flags
:checkrebootflag:
function Test-PendingReboot
{
if (Test-Path -Path "$env:windir\WinSxS\pending.xml") { return $true }
if (Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -EA Ignore) { return $true }
if (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -EA Ignore) { return $true }
try {
$util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities"
$status = $util.DetermineIfRebootPending()
if(($status -ne $null) -and $status.RebootPending){
return $true
}
}catch{}
return $false
}
Test-PendingReboot
:checkrebootflag:
::========================================================================================================================================
:ced_windowskey :ced_windowskey
for %%# in (pkeyhelper.dll) do @if "%%~$PATH:#"=="" exit /b for %%# in (pkeyhelper.dll) do @if "%%~$PATH:#"=="" exit /b

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -97,7 +98,7 @@ popd
cls cls
color 07 color 07
title HWID Activation title HWID Activation %masver%
set _args= set _args=
set _elev= set _elev=
@ -194,7 +195,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -218,7 +219,7 @@ goto dk_done
%nul1% fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%eline% %eline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto dk_done goto dk_done
) )
@ -240,9 +241,37 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
if not %_unattended%==1 (
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :dk_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
)
::========================================================================================================================================
cls cls
mode 108, 34 mode 108, 34
title HWID Activation title HWID Activation %masver%
:: Start Windows update service at the beginning and in later checks as well, because in some normal conditions one kick is not enough :: Start Windows update service at the beginning and in later checks as well, because in some normal conditions one kick is not enough
@ -891,7 +920,7 @@ set showfix=1
if defined safeboot_option ( if defined safeboot_option (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[System is running in safe mode. Run in normal mode.]" call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[Safe mode found. Run in normal mode.]"
) )
@ -905,7 +934,7 @@ call :dk_color2 %Red% "Checking Audit Mode " %Blue% "[IMAGE_
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking WinPE " %Blue% "[System is running in WinPE mode. Run in normal mode.]" call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE mode found. Run in normal mode.]"
) )

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -100,7 +101,7 @@ popd
cls cls
color 07 color 07
title KMS38 Activation title KMS38 Activation %masver%
set _args= set _args=
set _elev= set _elev=
@ -193,7 +194,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -217,7 +218,7 @@ goto dk_done
%nul1% fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%eline% %eline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto dk_done goto dk_done
) )
@ -239,6 +240,35 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
if not %_unattended%==1 (
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :dk_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
)
cls
::========================================================================================================================================
if %_rem%==1 goto :k_uninstall if %_rem%==1 goto :k_uninstall
:k_menu :k_menu
@ -246,7 +276,7 @@ if %_rem%==1 goto :k_uninstall
if %_unattended%==0 ( if %_unattended%==0 (
cls cls
mode 76, 25 mode 76, 25
title KMS38 Activation title KMS38 Activation %masver%
echo: echo:
echo: echo:
@ -277,7 +307,7 @@ goto :k_menu
cls cls
mode 108, 34 mode 108, 34
title KMS38 Activation title KMS38 Activation %masver%
echo: echo:
echo Initializing... echo Initializing...
@ -754,7 +784,7 @@ goto :dk_done
cls cls
mode 99, 28 mode 99, 28
title Remove KMS38 Protection title Remove KMS38 Protection %masver%
%nul% reg delete "HKLM\%specific_kms%" /f %nul% reg delete "HKLM\%specific_kms%" /f
%nul% reg delete "HKU\S-1-5-20\%specific_kms%" /f %nul% reg delete "HKU\S-1-5-20\%specific_kms%" /f
@ -1037,7 +1067,7 @@ set showfix=1
if defined safeboot_option ( if defined safeboot_option (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[System is running in safe mode. Run in normal mode.]" call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[Safe mode found. Run in normal mode.]"
) )
@ -1051,7 +1081,7 @@ call :dk_color2 %Red% "Checking Audit Mode " %Blue% "[IMAGE_
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking WinPE " %Blue% "[System is running in WinPE mode. Run in normal mode.]" call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE mode found. Run in normal mode.]"
) )

View File

@ -1,3 +0,0 @@
<html>
<meta http-equiv="refresh" content="0; url=https://massgrave.dev/ohook.html#Custom_sppcdll_Info">
</html>

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -97,7 +98,7 @@ popd
cls cls
color 07 color 07
title Ohook Activation title Ohook Activation %masver%
set _args= set _args=
set _elev= set _elev=
@ -186,7 +187,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -210,7 +211,7 @@ goto dk_done
%nul1% fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%eline% %eline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto dk_done goto dk_done
) )
@ -232,6 +233,35 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
if not %_unattended%==1 (
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :dk_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
)
cls
::========================================================================================================================================
if %_rem%==1 goto :oh_uninstall if %_rem%==1 goto :oh_uninstall
:oh_menu :oh_menu
@ -239,7 +269,7 @@ if %_rem%==1 goto :oh_uninstall
if %_unattended%==0 ( if %_unattended%==0 (
cls cls
mode 76, 25 mode 76, 25
title Ohook Activation title Ohook Activation %masver%
echo: echo:
echo: echo:
@ -275,17 +305,7 @@ cls
mode 128, 32 mode 128, 32
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=32;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=32;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
title Ohook Activation title Ohook Activation %masver%
:: Check files
for %%# in (sppc32.dll sppc64.dll) do (
if not exist "!_work!\BIN\%%#" (
%eline%
echo '%%#' file is missing in 'BIN' folder. Aborting...
goto dk_done
)
)
echo: echo:
echo Initializing... echo Initializing...
@ -496,33 +516,45 @@ call :oh_hookinstall
::======================================================================================================================================== ::========================================================================================================================================
:: Find remnants of Office vNext license block and remove it because it stops non vNext licenses from appearing :: Find remnants of Office vNext license block and remove it because it stops non vNext licenses from appearing
:: https://learn.microsoft.com/en-us/office/troubleshoot/activation/reset-office-365-proplus-activation-state
set _sid=
set sub_next= set sub_next=
set kNext=HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Licensing for /f "tokens=* delims=" %%a in ('%psc% "$userSIDs = Get-WmiObject -Class Win32_UserAccount | ForEach-Object {write-host $_.SID}" %nul6%') do (if defined _sid (set "_sid=!_sid! HKU\%%a") else (set "_sid=HKU\%%a"))
reg query %kNext%\LicensingNext /v MigrationToV5Done %nul2% | find /i "0x1" %nul% && ( if not defined _sid (
reg query %kNext%\LicensingNext %nul2% | findstr /i "volume retail" %nul2% | findstr /i "0x2 0x3" %nul% && ( call :dk_color %Red% "Checking User Accounts SID [Not Found]"
)
for %%# in (!_sid! HKCU) do if not defined sub_next (
reg query %%#\Software\Microsoft\Office\16.0\Common\Licensing\LicensingNext /v MigrationToV5Done %nul2% | find /i "0x1" %nul% && (
reg query %%#\Software\Microsoft\Office\16.0\Common\Licensing\LicensingNext %nul2% | findstr /i "volume retail" %nul2% | findstr /i "0x2 0x3" %nul% && (
set sub_next=1 set sub_next=1
reg delete %kNext% /f %nul% )
) )
) )
if defined sub_next ( if defined sub_next for %%# in (!_sid! HKCU) do (
reg query %kNext%\LicensingNext %nul% && ( reg delete %%#\Software\Microsoft\Office\16.0\Common\Licensing /f %nul%
call :dk_color %Red% "Removing Office vNext Block [Failed]" reg delete %%#\Software\Microsoft\Office\16.0\Common\Identity /f %nul%
) || ( reg delete %%#\Software\Microsoft\Office\16.0\Registration /f %nul%
echo Removing Office vNext Block [Successful]
)
) )
if defined sub_next echo Removing Office vNext Block [Successful]
::======================================================================================================================================== ::========================================================================================================================================
:: Subscription licenses attempt to validate the license and may show a banner "There was a problem checking this device's license status.", other products don't do that. :: Subscription products attempt to validate the license and may show a banner "There was a problem checking this device's license status."
:: A simple registry entry can skip this check :: Resiliency registry entry can skip this check
if defined _sublic ( if defined o16c2r (
echo Adding a Reg To Skip License Check [Successful] for %%# in (!_sid! HKCU) do (reg delete %%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f %nul%)
reg add HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /v "TimeOfLastHeartbeatFailure" /t REG_SZ /d "2033-08-18T22:18:45Z" /f %nul% for %%# in (!_sid! HKCU) do (
reg query %%# %nul% && (
reg add %%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /v "TimeOfLastHeartbeatFailure" /t REG_SZ /d "2040-01-01T00:00:00Z" /f %nul%
)
)
echo Adding Reg Keys To Skip License Check [Successful]
) )
::======================================================================================================================================== ::========================================================================================================================================
@ -607,7 +639,7 @@ goto :dk_done
cls cls
mode 99, 28 mode 99, 28
title Uninstall Ohook Activation title Uninstall Ohook Activation %masver%
set _present= set _present=
set _unerror= set _unerror=
@ -644,15 +676,21 @@ if exist "%%~A\Microsoft %%~G\root\vfs\%%#\sppc*dll" (set _present=1& del /s /f
) )
) )
reg query HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /s %nul2% | find /i "2033" %nul% && ( reg query HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency %nul% && (
echo: echo:
echo Deleting - HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency echo Deleting - Registry keys to skip license check
reg delete HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f reg delete HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f
for /f "tokens=* delims=" %%a in ('%psc% "$userSIDs = Get-WmiObject -Class Win32_UserAccount | ForEach-Object {write-host $_.SID}" %nul6%') do (if defined _sid (set "_sid=!_sid! %%a") else (set "_sid=%%a"))
for %%# in (!_sid!) do (reg query HKU\%%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency %nul% && (
reg delete HKU\%%#\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency /f
)
)
) )
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" %nul% && ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" %nul% && (
echo: echo:
echo Deleting - Registry key to prevent non-genuine banner echo Deleting - Registry keys to prevent non-genuine banner
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" /f reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663" /f
) )
@ -789,6 +827,9 @@ exit /b
set ierror= set ierror=
set hasherror= set hasherror=
if %_hook%==sppc32.dll set offset=2564
if %_hook%==sppc64.dll set offset=3076
del /s /q "%_hookPath%\sppcs.dll" %nul% del /s /q "%_hookPath%\sppcs.dll" %nul%
del /s /q "%_hookPath%\sppc.dll" %nul% del /s /q "%_hookPath%\sppc.dll" %nul%
@ -798,25 +839,23 @@ if exist "%_hookPath%\sppc.dll" set ierror=1
mklink "%_hookPath%\sppcs.dll" "%_sppcPath%" %nul% mklink "%_hookPath%\sppcs.dll" "%_sppcPath%" %nul%
if not %errorlevel%==0 set ierror=1 if not %errorlevel%==0 set ierror=1
pushd "!_work!\BIN\" if not exist "%_hookPath%\sppc.dll" call :oh_extractdll "%_hookPath%\sppc.dll" "%offset%"
copy /y %_hook% "%_hookPath%\sppc.dll" %nul%
popd
if not exist "%_hookPath%\sppc.dll" set ierror=1 if not exist "%_hookPath%\sppc.dll" set ierror=1
echo: echo:
if not defined ierror ( if not defined ierror (
echo Symlinking System's sppc.dll To ["%_hookPath%\sppcs.dll"] [Successful] echo Symlinking System's sppc.dll To ["%_hookPath%\sppcs.dll"] [Successful]
echo Copying Custom %_hook% To ["%_hookPath%\sppc.dll"] [Successful] echo Extracting Custom %_hook% To ["%_hookPath%\sppc.dll"] [Successful]
) else ( ) else (
set error=1 set error=1
call :dk_color %Red% "Symlinking Systems sppc.dll [Failed]" call :dk_color %Red% "Symlinking Systems sppc.dll [Failed]"
call :dk_color %Red% "Copying Custom %_hook% [Failed]" call :dk_color %Red% "Extracting Custom %_hook% [Failed]"
echo ["%_hookPath%\sppc.dll"] echo ["%_hookPath%\sppc.dll"]
call :dk_color %Blue% "Close Office apps if they are running and try again." echo:
call :dk_color %Blue% "Close ALL Office apps including Outlook and try again."
call :dk_color %Blue% "If its still not resolved then restart system and try again."
) )
if not defined ierror call :oh_modify "%_hookPath%\sppc.dll"
if not defined ierror ( if not defined ierror (
if defined hasherror ( if defined hasherror (
set error=1 set error=1
@ -1076,7 +1115,7 @@ set showfix=1
if defined safeboot_option ( if defined safeboot_option (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[System is running in safe mode. Run in normal mode.]" call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[Safe mode found. Run in normal mode.]"
) )
@ -1090,7 +1129,7 @@ call :dk_color2 %Red% "Checking Audit Mode " %Blue% "[IMAGE_
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && (
set error=1 set error=1
set showfix=1 set showfix=1
call :dk_color2 %Red% "Checking WinPE " %Blue% "[System is running in WinPE mode. Run in normal mode.]" call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE mode found. Run in normal mode.]"
) )
@ -1485,16 +1524,17 @@ exit /b
:: This code is used to modify the timestamp value of sppc dll file in order to change checksums :: This code is used to modify the timestamp value of sppc dll file in order to change checksums
:: It's done to lower the potential false positive detection by antivirus's. On each install, it will install a unique sppc dll file :: It's done to lower the potential false positive detection by antivirus's. On each install, it will install a unique sppc dll file
:oh_modify :oh_extractdll
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':hexedit\:.*';& ([ScriptBlock]::Create($f[1])) '%1';" %nul2% | find /i "Error found" %nul1% && set hasherror=1 set b=
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':%_hook%\:.*';$bytes = [Con%b%vert]::FromBas%b%e64String($f[1]); $PePath='%1'; $offset='%2'; $m=[io.file]::ReadAllText('!_batp!') -split ':hexedit\:.*';iex ($m[1]);" %nul2% | find /i "Error found" %nul1% && set hasherror=1
exit /b exit /b
:hexedit: :hexedit:
param ( # Use a MemoryStream to perform operations on the bytes
[Parameter()] $MemoryStream = New-Object System.IO.MemoryStream
[String]$PePath $Writer = New-Object System.IO.BinaryWriter($MemoryStream)
) $Writer.Write($bytes)
# Define dynamic assembly, module, and type # Define dynamic assembly, module, and type
$AssemblyBuilder = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1) $AssemblyBuilder = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1)
@ -1507,20 +1547,15 @@ $TypeBuilder = $ModuleBuilder.DefineType(0)
# Create the type # Create the type
$Imagehlp = $TypeBuilder.CreateType() $Imagehlp = $TypeBuilder.CreateType()
# File and offset information # Offset information
$PeFile = Get-ChildItem -Path $PePath
$timestampOffset = 136 $timestampOffset = 136
$exportTimestampOffset = 3076 $exportTimestampOffset = $offset
$checkSumOffset = 216 $checkSumOffset = 216
# Calculate timestamp # Calculate timestamp
$currentTimestamp = [DateTime]::UtcNow $currentTimestamp = [DateTime]::UtcNow
$unixTimestamp = [int]($currentTimestamp - (Get-Date -Year 1970 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0)).TotalSeconds $unixTimestamp = [int]($currentTimestamp - (Get-Date -Year 1970 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0)).TotalSeconds
# Open file
$Stream = [System.IO.File]::Open($PeFile.FullName, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Write, [System.IO.FileShare]::Read)
$Writer = New-Object System.IO.BinaryWriter($Stream)
# Change timestamps # Change timestamps
$Writer.BaseStream.Position = $timestampOffset $Writer.BaseStream.Position = $timestampOffset
$Writer.Write($unixTimestamp) $Writer.Write($unixTimestamp)
@ -1530,12 +1565,16 @@ $Writer.Write($unixTimestamp)
$Writer.Flush() $Writer.Flush()
# Update hash # Write the current state of the MemoryStream to a temporary file
$tempFilePath = [System.IO.Path]::Combine($env:windir, "Temp", [System.IO.Path]::GetRandomFileName())
[System.IO.File]::WriteAllBytes($tempFilePath, $MemoryStream.ToArray())
# Update hash using the temporary file
[int]$HeaderSum = 0 [int]$HeaderSum = 0
[int]$CheckSum = 0 [int]$CheckSum = 0
[void]$Imagehlp::MapFileAndCheckSum($tempFilePath, [ref]$HeaderSum, [ref]$CheckSum)
[void]$Imagehlp::MapFileAndCheckSum($PeFile.FullName, [ref]$HeaderSum, [ref]$CheckSum) # If the checksums don't match, update the checksum in the MemoryStream
if ($HeaderSum -ne $CheckSum) { if ($HeaderSum -ne $CheckSum) {
$Writer.BaseStream.Position = $checkSumOffset $Writer.BaseStream.Position = $checkSumOffset
$Writer.Write($CheckSum) $Writer.Write($CheckSum)
@ -1544,14 +1583,174 @@ if ($HeaderSum -ne $CheckSum) {
Write-host Error found Write-host Error found
} }
[void]$Imagehlp::MapFileAndCheckSum($PeFile.FullName, [ref]$HeaderSum, [ref]$CheckSum) # Delete the temporary file
Remove-Item -Path $tempFilePath -Force
# Get the modified bytes
$modifiedBytes = $MemoryStream.ToArray()
# Write the modified bytes to the final file
[System.IO.File]::WriteAllBytes($PePath, $modifiedBytes)
[void]$Imagehlp::MapFileAndCheckSum($PePath, [ref]$HeaderSum, [ref]$CheckSum)
if ($HeaderSum -ne $CheckSum) { if ($HeaderSum -ne $CheckSum) {
Write-host Error found Write-host Error found
} }
$Stream.Close() $MemoryStream.Close()
:hexedit: :hexedit:
::========================================================================================================================================
::
:: This below blocks of text is encoded in base64 format
:: The blocks in labels "sppc64.dll" and "sppc32.dll" contains below files
::
:: e6ac83560c19ec7eb868c50ea97ea0ed5632a397a9f43c17e24e6de4a694d118 *sppc32.dll
:: c6df24deef2e83813dee9c81ddd9793a3d60c117a4e8e231b82e32b3192927e7 *sppc64.dll
::
:: The files are encoded in base64 to make MAS AIO version.
::
:: mass grave[.]dev/ohook
:: Here you can find the files source code and info on how to rebuild the identical sppc.dll files
::
:: stackoverflow.com/a/35335273
:: Here you can check how to extract sppc.dll files from base64
::
:: For any further question, feel free to contact us on mass grave[.]dev/contactus
::
::========================================================================================================================================
:sppc32.dll:
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAQAAAAHAAAAODf//8IAAAAAAAAACQAAAAwAAAA
1N///50AAAAAQQ4IhQJCDQVIhgODBAKPw0HGQcUMBAQoAAAAWAAAAEng//+qAAAAAEEOCIUCQg0FRocDhgSDBQKbw0HGQcdBxQwEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADA3NBkAAAAAMZCAAABAAAAQwAAAEMAAAAoQAAANEEAAEBCAADPQgAA70IAAAVDAAApQwAAXUMAAKFDAADpQwAAF0QAADVEAABnRAAAnUQAAONEAAAtRQAAYUUAAJ9FAADTRQAADUYAADtGAABxRgAAr0YAAM9GAAD7RgAApRAAAFFHAABvRwAA
n0cAANNHAAARSAAATUgAAG9IAAClSAAAzUgAAAVJAABBSQAAbUkAAKdJAAC7SQAA+0kAADlKAABPSgAAdUoAAJ1KAADTSgAAB0sAAD1LAABpSwAApUsAAONLAAANTAAAOUwAAIlMAADRTAAAEU0AAFlNAACjTQAA8U0AABtOAABHTgAAh04AALtOAADnTgAAK08AAFtP
AAC1TwAA608AACdQAABdUAAA4kIAAP1CAAAaQwAARkMAAIJDAADIQwAAA0QAAClEAABRRAAAhUQAAMNEAAALRQAASkUAAINFAAC8RQAA80UAACdGAABZRgAAk0YAAMJGAADoRgAAGUcAADFHAABjRwAAikcAALxHAAD1RwAAMkgAAGFIAACNSAAAvEgAAOxIAAAmSQAA
WkkAAI1JAAC0SQAA3kkAAB1KAABHSgAAZUoAAIxKAAC7SgAA8EoAACVLAABWSwAAiksAAMdLAAD7SwAAJkwAAGRMAACwTAAA9EwAADhNAACBTQAAzU0AAAlOAAA0TgAAak4AAKROAADUTgAADE8AAEZPAACLTwAA008AAAxQAABFUAAAeFAAAAAAAQACAAMABAAFAAYA
BwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAc3BwYy5kbGwAU1BQQ1MuU0xDYWxsU2VydmVyAFNM
Q2FsbFNlcnZlcgBTUFBDUy5TTENsb3NlAFNMQ2xvc2UAU1BQQ1MuU0xDb25zdW1lUmlnaHQAU0xDb25zdW1lUmlnaHQAU1BQQ1MuU0xEZXBvc2l0TWlncmF0aW9uQmxvYgBTTERlcG9zaXRNaWdyYXRpb25CbG9iAFNQUENTLlNMRGVwb3NpdE9mZmxpbmVDb25maXJt
YXRpb25JZABTTERlcG9zaXRPZmZsaW5lQ29uZmlybWF0aW9uSWQAU1BQQ1MuU0xEZXBvc2l0T2ZmbGluZUNvbmZpcm1hdGlvbklkRXgAU0xEZXBvc2l0T2ZmbGluZUNvbmZpcm1hdGlvbklkRXgAU1BQQ1MuU0xEZXBvc2l0U3RvcmVUb2tlbgBTTERlcG9zaXRTdG9y
ZVRva2VuAFNQUENTLlNMRmlyZUV2ZW50AFNMRmlyZUV2ZW50AFNQUENTLlNMR2F0aGVyTWlncmF0aW9uQmxvYgBTTEdhdGhlck1pZ3JhdGlvbkJsb2IAU1BQQ1MuU0xHYXRoZXJNaWdyYXRpb25CbG9iRXgAU0xHYXRoZXJNaWdyYXRpb25CbG9iRXgAU1BQQ1MuU0xH
ZW5lcmF0ZU9mZmxpbmVJbnN0YWxsYXRpb25JZABTTEdlbmVyYXRlT2ZmbGluZUluc3RhbGxhdGlvbklkAFNQUENTLlNMR2VuZXJhdGVPZmZsaW5lSW5zdGFsbGF0aW9uSWRFeABTTEdlbmVyYXRlT2ZmbGluZUluc3RhbGxhdGlvbklkRXgAU1BQQ1MuU0xHZXRBY3Rp
dmVMaWNlbnNlSW5mbwBTTEdldEFjdGl2ZUxpY2Vuc2VJbmZvAFNQUENTLlNMR2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbgBTTEdldEFwcGxpY2F0aW9uSW5mb3JtYXRpb24AU1BQQ1MuU0xHZXRBcHBsaWNhdGlvblBvbGljeQBTTEdldEFwcGxpY2F0aW9uUG9saWN5
AFNQUENTLlNMR2V0QXV0aGVudGljYXRpb25SZXN1bHQAU0xHZXRBdXRoZW50aWNhdGlvblJlc3VsdABTUFBDUy5TTEdldEVuY3J5cHRlZFBJREV4AFNMR2V0RW5jcnlwdGVkUElERXgAU1BQQ1MuU0xHZXRHZW51aW5lSW5mb3JtYXRpb24AU0xHZXRHZW51aW5lSW5m
b3JtYXRpb24AU1BQQ1MuU0xHZXRJbnN0YWxsZWRQcm9kdWN0S2V5SWRzAFNMR2V0SW5zdGFsbGVkUHJvZHVjdEtleUlkcwBTUFBDUy5TTEdldExpY2Vuc2UAU0xHZXRMaWNlbnNlAFNQUENTLlNMR2V0TGljZW5zZUZpbGVJZABTTEdldExpY2Vuc2VGaWxlSWQAU1BQ
Q1MuU0xHZXRMaWNlbnNlSW5mb3JtYXRpb24AU0xHZXRMaWNlbnNlSW5mb3JtYXRpb24AU0xHZXRMaWNlbnNpbmdTdGF0dXNJbmZvcm1hdGlvbgBTUFBDUy5TTEdldFBLZXlJZABTTEdldFBLZXlJZABTUFBDUy5TTEdldFBLZXlJbmZvcm1hdGlvbgBTTEdldFBLZXlJ
bmZvcm1hdGlvbgBTUFBDUy5TTEdldFBvbGljeUluZm9ybWF0aW9uAFNMR2V0UG9saWN5SW5mb3JtYXRpb24AU1BQQ1MuU0xHZXRQb2xpY3lJbmZvcm1hdGlvbkRXT1JEAFNMR2V0UG9saWN5SW5mb3JtYXRpb25EV09SRABTUFBDUy5TTEdldFByb2R1Y3RTa3VJbmZv
cm1hdGlvbgBTTEdldFByb2R1Y3RTa3VJbmZvcm1hdGlvbgBTUFBDUy5TTEdldFNMSURMaXN0AFNMR2V0U0xJRExpc3QAU1BQQ1MuU0xHZXRTZXJ2aWNlSW5mb3JtYXRpb24AU0xHZXRTZXJ2aWNlSW5mb3JtYXRpb24AU1BQQ1MuU0xJbnN0YWxsTGljZW5zZQBTTElu
c3RhbGxMaWNlbnNlAFNQUENTLlNMSW5zdGFsbFByb29mT2ZQdXJjaGFzZQBTTEluc3RhbGxQcm9vZk9mUHVyY2hhc2UAU1BQQ1MuU0xJbnN0YWxsUHJvb2ZPZlB1cmNoYXNlRXgAU0xJbnN0YWxsUHJvb2ZPZlB1cmNoYXNlRXgAU1BQQ1MuU0xJc0dlbnVpbmVMb2Nh
bEV4AFNMSXNHZW51aW5lTG9jYWxFeABTUFBDUy5TTExvYWRBcHBsaWNhdGlvblBvbGljaWVzAFNMTG9hZEFwcGxpY2F0aW9uUG9saWNpZXMAU1BQQ1MuU0xPcGVuAFNMT3BlbgBTUFBDUy5TTFBlcnNpc3RBcHBsaWNhdGlvblBvbGljaWVzAFNMUGVyc2lzdEFwcGxp
Y2F0aW9uUG9saWNpZXMAU1BQQ1MuU0xQZXJzaXN0UlRTUGF5bG9hZE92ZXJyaWRlAFNMUGVyc2lzdFJUU1BheWxvYWRPdmVycmlkZQBTUFBDUy5TTFJlQXJtAFNMUmVBcm0AU1BQQ1MuU0xSZWdpc3RlckV2ZW50AFNMUmVnaXN0ZXJFdmVudABTUFBDUy5TTFJlZ2lz
dGVyUGx1Z2luAFNMUmVnaXN0ZXJQbHVnaW4AU1BQQ1MuU0xTZXRBdXRoZW50aWNhdGlvbkRhdGEAU0xTZXRBdXRoZW50aWNhdGlvbkRhdGEAU1BQQ1MuU0xTZXRDdXJyZW50UHJvZHVjdEtleQBTTFNldEN1cnJlbnRQcm9kdWN0S2V5AFNQUENTLlNMU2V0R2VudWlu
ZUluZm9ybWF0aW9uAFNMU2V0R2VudWluZUluZm9ybWF0aW9uAFNQUENTLlNMVW5pbnN0YWxsTGljZW5zZQBTTFVuaW5zdGFsbExpY2Vuc2UAU1BQQ1MuU0xVbmluc3RhbGxQcm9vZk9mUHVyY2hhc2UAU0xVbmluc3RhbGxQcm9vZk9mUHVyY2hhc2UAU1BQQ1MuU0xV
bmxvYWRBcHBsaWNhdGlvblBvbGljaWVzAFNMVW5sb2FkQXBwbGljYXRpb25Qb2xpY2llcwBTUFBDUy5TTFVucmVnaXN0ZXJFdmVudABTTFVucmVnaXN0ZXJFdmVudABTUFBDUy5TTFVucmVnaXN0ZXJQbHVnaW4AU0xVbnJlZ2lzdGVyUGx1Z2luAFNQUENTLlNMcEF1
dGhlbnRpY2F0ZUdlbnVpbmVUaWNrZXRSZXNwb25zZQBTTHBBdXRoZW50aWNhdGVHZW51aW5lVGlja2V0UmVzcG9uc2UAU1BQQ1MuU0xwQmVnaW5HZW51aW5lVGlja2V0VHJhbnNhY3Rpb24AU0xwQmVnaW5HZW51aW5lVGlja2V0VHJhbnNhY3Rpb24AU1BQQ1MuU0xw
Q2xlYXJBY3RpdmF0aW9uSW5Qcm9ncmVzcwBTTHBDbGVhckFjdGl2YXRpb25JblByb2dyZXNzAFNQUENTLlNMcERlcG9zaXREb3dubGV2ZWxHZW51aW5lVGlja2V0AFNMcERlcG9zaXREb3dubGV2ZWxHZW51aW5lVGlja2V0AFNQUENTLlNMcERlcG9zaXRUb2tlbkFj
dGl2YXRpb25SZXNwb25zZQBTTHBEZXBvc2l0VG9rZW5BY3RpdmF0aW9uUmVzcG9uc2UAU1BQQ1MuU0xwR2VuZXJhdGVUb2tlbkFjdGl2YXRpb25DaGFsbGVuZ2UAU0xwR2VuZXJhdGVUb2tlbkFjdGl2YXRpb25DaGFsbGVuZ2UAU1BQQ1MuU0xwR2V0R2VudWluZUJs
b2IAU0xwR2V0R2VudWluZUJsb2IAU1BQQ1MuU0xwR2V0R2VudWluZUxvY2FsAFNMcEdldEdlbnVpbmVMb2NhbABTUFBDUy5TTHBHZXRMaWNlbnNlQWNxdWlzaXRpb25JbmZvAFNMcEdldExpY2Vuc2VBY3F1aXNpdGlvbkluZm8AU1BQQ1MuU0xwR2V0TVNQaWRJbmZv
cm1hdGlvbgBTTHBHZXRNU1BpZEluZm9ybWF0aW9uAFNQUENTLlNMcEdldE1hY2hpbmVVR1VJRABTTHBHZXRNYWNoaW5lVUdVSUQAU1BQQ1MuU0xwR2V0VG9rZW5BY3RpdmF0aW9uR3JhbnRJbmZvAFNMcEdldFRva2VuQWN0aXZhdGlvbkdyYW50SW5mbwBTUFBDUy5T
THBJQUFjdGl2YXRlUHJvZHVjdABTTHBJQUFjdGl2YXRlUHJvZHVjdABTUFBDUy5TTHBJc0N1cnJlbnRJbnN0YWxsZWRQcm9kdWN0S2V5RGVmYXVsdEtleQBTTHBJc0N1cnJlbnRJbnN0YWxsZWRQcm9kdWN0S2V5RGVmYXVsdEtleQBTUFBDUy5TTHBQcm9jZXNzVk1Q
aXBlTWVzc2FnZQBTTHBQcm9jZXNzVk1QaXBlTWVzc2FnZQBTUFBDUy5TTHBTZXRBY3RpdmF0aW9uSW5Qcm9ncmVzcwBTTHBTZXRBY3RpdmF0aW9uSW5Qcm9ncmVzcwBTUFBDUy5TTHBUcmlnZ2VyU2VydmljZVdvcmtlcgBTTHBUcmlnZ2VyU2VydmljZVdvcmtlcgBT
UFBDUy5TTHBWTEFjdGl2YXRlUHJvZHVjdABTTHBWTEFjdGl2YXRlUHJvZHVjdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBgAAAAAAAAAAAAAOhgAABsYAAAXGAAAAAAAAAAAAAA
+GAAAHhgAABkYAAAAAAAAAAAAAAMYQAAgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiGAAAKpgAAAAAAAAyGAAAAAAAADUYAAAAAAAAIhgAACqYAAAAAAAAMhgAAAAAAAA1GAAAAAAAAACAFNMR2V0TGljZW5zaW5nU3RhdHVzSW5mb3JtYXRpb24AAQBTTEdldFByb2R1
Y3RTa3VJbmZvcm1hdGlvbgAA3QNMb2NhbEZyZWUARwFTdHJTdHJOSVcAAGAAAABgAABzcHBjcy5kbGwAAAAUYAAAS0VSTkVMMzIuZGxsAAAAAChgAABTSExXQVBJLmRsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACAAAAAAAAAAAAAAAAAAAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAkEAABIAAAAWHAAABwDAAAAAAAAAAAAABwDNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4A
RgBPAAAAAAC9BO/+AAABAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAQABAACAAAAAAAAAAAAAAAAAAAAfAIAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAWAIAAAEAMAA0ADAAOQAwADQARQA0AAAAegAtAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAA
AABBAG4AbwBtAGEAbABvAHUAcwAgAFMAbwBmAHQAdwBhAHIAZQAgAEQAZQB0AGUAcgBpAG8AcgBhAHQAaQBvAG4AIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4AAAAAAD4ACwABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABvAGgAbwBvAGsAIABTAFAA
UABDAAAAAAAwAAgAAQBGAGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADAALgAzAC4AMAAuADAAAAAqAAUAAQBJAG4AdABlAHIAbgBhAGwATgBhAG0AZQAAAHMAcABwAGMAAAAAAIwANAABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAAKkAIAAyADAAMgAzACAA
QQBuAG8AbQBhAGwAbwB1AHMAIABTAG8AZgB0AHcAYQByAGUAIABEAGUAdABlAHIAaQBvAHIAYQB0AGkAbwBuACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAAAAOgAJAAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAHMAcABwAGMALgBkAGwAbAAAAAAA
LAAGAAEAUAByAG8AZAB1AGMAdABOAGEAbQBlAAAAAABvAGgAbwBvAGsAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAwAC4AMwAuADAALgAwAAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQA
aQBvAG4AAAAAAAkE5AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAQAAAUAAAAOzBQMHEwfjBSMVoxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
:sppc32.dll:
:========================================================================================================================================
:sppc64.dll:
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABhAAAABAAAAGEAAAjhAAAARAAACOEAAAGREAABBAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAAABBwMAB4IDMALAAAABDAcADGIIMAdgBnAFUATAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDc0GQAAAAAxlIAAAEAAABDAAAAQwAAAChQAAA0UQAAQFIAAM9SAADvUgAABVMAAClTAABdUwAAoVMAAOlTAAAXVAAANVQAAGdU
AACdVAAA41QAAC1VAABhVQAAn1UAANNVAAANVgAAO1YAAHFWAACvVgAAz1YAAPtWAACOEAAAUVcAAG9XAACfVwAA01cAABFYAABNWAAAb1gAAKVYAADNWAAABVkAAEFZAABtWQAAp1kAALtZAAD7WQAAOVoAAE9aAAB1WgAAnVoAANNaAAAHWwAAPVsAAGlbAAClWwAA
41sAAA1cAAA5XAAAiVwAANFcAAARXQAAWV0AAKNdAADxXQAAG14AAEdeAACHXgAAu14AAOdeAAArXwAAW18AALVfAADrXwAAJ2AAAF1gAADiUgAA/VIAABpTAABGUwAAglMAAMhTAAADVAAAKVQAAFFUAACFVAAAw1QAAAtVAABKVQAAg1UAALxVAADzVQAAJ1YAAFlW
AACTVgAAwlYAAOhWAAAZVwAAMVcAAGNXAACKVwAAvFcAAPVXAAAyWAAAYVgAAI1YAAC8WAAA7FgAACZZAABaWQAAjVkAALRZAADeWQAAHVoAAEdaAABlWgAAjFoAALtaAADwWgAAJVsAAFZbAACKWwAAx1sAAPtbAAAmXAAAZFwAALBcAAD0XAAAOF0AAIFdAADNXQAA
CV4AADReAABqXgAApF4AANReAAAMXwAARl8AAItfAADTXwAADGAAAEVgAAB4YAAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIA
MwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBzcHBjLmRsbABTUFBDUy5TTENhbGxTZXJ2ZXIAU0xDYWxsU2VydmVyAFNQUENTLlNMQ2xvc2UAU0xDbG9zZQBTUFBDUy5TTENvbnN1bWVSaWdodABTTENvbnN1bWVSaWdodABTUFBDUy5TTERlcG9zaXRNaWdy
YXRpb25CbG9iAFNMRGVwb3NpdE1pZ3JhdGlvbkJsb2IAU1BQQ1MuU0xEZXBvc2l0T2ZmbGluZUNvbmZpcm1hdGlvbklkAFNMRGVwb3NpdE9mZmxpbmVDb25maXJtYXRpb25JZABTUFBDUy5TTERlcG9zaXRPZmZsaW5lQ29uZmlybWF0aW9uSWRFeABTTERlcG9zaXRP
ZmZsaW5lQ29uZmlybWF0aW9uSWRFeABTUFBDUy5TTERlcG9zaXRTdG9yZVRva2VuAFNMRGVwb3NpdFN0b3JlVG9rZW4AU1BQQ1MuU0xGaXJlRXZlbnQAU0xGaXJlRXZlbnQAU1BQQ1MuU0xHYXRoZXJNaWdyYXRpb25CbG9iAFNMR2F0aGVyTWlncmF0aW9uQmxvYgBT
UFBDUy5TTEdhdGhlck1pZ3JhdGlvbkJsb2JFeABTTEdhdGhlck1pZ3JhdGlvbkJsb2JFeABTUFBDUy5TTEdlbmVyYXRlT2ZmbGluZUluc3RhbGxhdGlvbklkAFNMR2VuZXJhdGVPZmZsaW5lSW5zdGFsbGF0aW9uSWQAU1BQQ1MuU0xHZW5lcmF0ZU9mZmxpbmVJbnN0
YWxsYXRpb25JZEV4AFNMR2VuZXJhdGVPZmZsaW5lSW5zdGFsbGF0aW9uSWRFeABTUFBDUy5TTEdldEFjdGl2ZUxpY2Vuc2VJbmZvAFNMR2V0QWN0aXZlTGljZW5zZUluZm8AU1BQQ1MuU0xHZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uAFNMR2V0QXBwbGljYXRpb25J
bmZvcm1hdGlvbgBTUFBDUy5TTEdldEFwcGxpY2F0aW9uUG9saWN5AFNMR2V0QXBwbGljYXRpb25Qb2xpY3kAU1BQQ1MuU0xHZXRBdXRoZW50aWNhdGlvblJlc3VsdABTTEdldEF1dGhlbnRpY2F0aW9uUmVzdWx0AFNQUENTLlNMR2V0RW5jcnlwdGVkUElERXgAU0xH
ZXRFbmNyeXB0ZWRQSURFeABTUFBDUy5TTEdldEdlbnVpbmVJbmZvcm1hdGlvbgBTTEdldEdlbnVpbmVJbmZvcm1hdGlvbgBTUFBDUy5TTEdldEluc3RhbGxlZFByb2R1Y3RLZXlJZHMAU0xHZXRJbnN0YWxsZWRQcm9kdWN0S2V5SWRzAFNQUENTLlNMR2V0TGljZW5z
ZQBTTEdldExpY2Vuc2UAU1BQQ1MuU0xHZXRMaWNlbnNlRmlsZUlkAFNMR2V0TGljZW5zZUZpbGVJZABTUFBDUy5TTEdldExpY2Vuc2VJbmZvcm1hdGlvbgBTTEdldExpY2Vuc2VJbmZvcm1hdGlvbgBTTEdldExpY2Vuc2luZ1N0YXR1c0luZm9ybWF0aW9uAFNQUENT
LlNMR2V0UEtleUlkAFNMR2V0UEtleUlkAFNQUENTLlNMR2V0UEtleUluZm9ybWF0aW9uAFNMR2V0UEtleUluZm9ybWF0aW9uAFNQUENTLlNMR2V0UG9saWN5SW5mb3JtYXRpb24AU0xHZXRQb2xpY3lJbmZvcm1hdGlvbgBTUFBDUy5TTEdldFBvbGljeUluZm9ybWF0
aW9uRFdPUkQAU0xHZXRQb2xpY3lJbmZvcm1hdGlvbkRXT1JEAFNQUENTLlNMR2V0UHJvZHVjdFNrdUluZm9ybWF0aW9uAFNMR2V0UHJvZHVjdFNrdUluZm9ybWF0aW9uAFNQUENTLlNMR2V0U0xJRExpc3QAU0xHZXRTTElETGlzdABTUFBDUy5TTEdldFNlcnZpY2VJ
bmZvcm1hdGlvbgBTTEdldFNlcnZpY2VJbmZvcm1hdGlvbgBTUFBDUy5TTEluc3RhbGxMaWNlbnNlAFNMSW5zdGFsbExpY2Vuc2UAU1BQQ1MuU0xJbnN0YWxsUHJvb2ZPZlB1cmNoYXNlAFNMSW5zdGFsbFByb29mT2ZQdXJjaGFzZQBTUFBDUy5TTEluc3RhbGxQcm9v
Zk9mUHVyY2hhc2VFeABTTEluc3RhbGxQcm9vZk9mUHVyY2hhc2VFeABTUFBDUy5TTElzR2VudWluZUxvY2FsRXgAU0xJc0dlbnVpbmVMb2NhbEV4AFNQUENTLlNMTG9hZEFwcGxpY2F0aW9uUG9saWNpZXMAU0xMb2FkQXBwbGljYXRpb25Qb2xpY2llcwBTUFBDUy5T
TE9wZW4AU0xPcGVuAFNQUENTLlNMUGVyc2lzdEFwcGxpY2F0aW9uUG9saWNpZXMAU0xQZXJzaXN0QXBwbGljYXRpb25Qb2xpY2llcwBTUFBDUy5TTFBlcnNpc3RSVFNQYXlsb2FkT3ZlcnJpZGUAU0xQZXJzaXN0UlRTUGF5bG9hZE92ZXJyaWRlAFNQUENTLlNMUmVB
cm0AU0xSZUFybQBTUFBDUy5TTFJlZ2lzdGVyRXZlbnQAU0xSZWdpc3RlckV2ZW50AFNQUENTLlNMUmVnaXN0ZXJQbHVnaW4AU0xSZWdpc3RlclBsdWdpbgBTUFBDUy5TTFNldEF1dGhlbnRpY2F0aW9uRGF0YQBTTFNldEF1dGhlbnRpY2F0aW9uRGF0YQBTUFBDUy5T
TFNldEN1cnJlbnRQcm9kdWN0S2V5AFNMU2V0Q3VycmVudFByb2R1Y3RLZXkAU1BQQ1MuU0xTZXRHZW51aW5lSW5mb3JtYXRpb24AU0xTZXRHZW51aW5lSW5mb3JtYXRpb24AU1BQQ1MuU0xVbmluc3RhbGxMaWNlbnNlAFNMVW5pbnN0YWxsTGljZW5zZQBTUFBDUy5T
TFVuaW5zdGFsbFByb29mT2ZQdXJjaGFzZQBTTFVuaW5zdGFsbFByb29mT2ZQdXJjaGFzZQBTUFBDUy5TTFVubG9hZEFwcGxpY2F0aW9uUG9saWNpZXMAU0xVbmxvYWRBcHBsaWNhdGlvblBvbGljaWVzAFNQUENTLlNMVW5yZWdpc3RlckV2ZW50AFNMVW5yZWdpc3Rl
ckV2ZW50AFNQUENTLlNMVW5yZWdpc3RlclBsdWdpbgBTTFVucmVnaXN0ZXJQbHVnaW4AU1BQQ1MuU0xwQXV0aGVudGljYXRlR2VudWluZVRpY2tldFJlc3BvbnNlAFNMcEF1dGhlbnRpY2F0ZUdlbnVpbmVUaWNrZXRSZXNwb25zZQBTUFBDUy5TTHBCZWdpbkdlbnVp
bmVUaWNrZXRUcmFuc2FjdGlvbgBTTHBCZWdpbkdlbnVpbmVUaWNrZXRUcmFuc2FjdGlvbgBTUFBDUy5TTHBDbGVhckFjdGl2YXRpb25JblByb2dyZXNzAFNMcENsZWFyQWN0aXZhdGlvbkluUHJvZ3Jlc3MAU1BQQ1MuU0xwRGVwb3NpdERvd25sZXZlbEdlbnVpbmVU
aWNrZXQAU0xwRGVwb3NpdERvd25sZXZlbEdlbnVpbmVUaWNrZXQAU1BQQ1MuU0xwRGVwb3NpdFRva2VuQWN0aXZhdGlvblJlc3BvbnNlAFNMcERlcG9zaXRUb2tlbkFjdGl2YXRpb25SZXNwb25zZQBTUFBDUy5TTHBHZW5lcmF0ZVRva2VuQWN0aXZhdGlvbkNoYWxs
ZW5nZQBTTHBHZW5lcmF0ZVRva2VuQWN0aXZhdGlvbkNoYWxsZW5nZQBTUFBDUy5TTHBHZXRHZW51aW5lQmxvYgBTTHBHZXRHZW51aW5lQmxvYgBTUFBDUy5TTHBHZXRHZW51aW5lTG9jYWwAU0xwR2V0R2VudWluZUxvY2FsAFNQUENTLlNMcEdldExpY2Vuc2VBY3F1
aXNpdGlvbkluZm8AU0xwR2V0TGljZW5zZUFjcXVpc2l0aW9uSW5mbwBTUFBDUy5TTHBHZXRNU1BpZEluZm9ybWF0aW9uAFNMcEdldE1TUGlkSW5mb3JtYXRpb24AU1BQQ1MuU0xwR2V0TWFjaGluZVVHVUlEAFNMcEdldE1hY2hpbmVVR1VJRABTUFBDUy5TTHBHZXRU
b2tlbkFjdGl2YXRpb25HcmFudEluZm8AU0xwR2V0VG9rZW5BY3RpdmF0aW9uR3JhbnRJbmZvAFNQUENTLlNMcElBQWN0aXZhdGVQcm9kdWN0AFNMcElBQWN0aXZhdGVQcm9kdWN0AFNQUENTLlNMcElzQ3VycmVudEluc3RhbGxlZFByb2R1Y3RLZXlEZWZhdWx0S2V5
AFNMcElzQ3VycmVudEluc3RhbGxlZFByb2R1Y3RLZXlEZWZhdWx0S2V5AFNQUENTLlNMcFByb2Nlc3NWTVBpcGVNZXNzYWdlAFNMcFByb2Nlc3NWTVBpcGVNZXNzYWdlAFNQUENTLlNMcFNldEFjdGl2YXRpb25JblByb2dyZXNzAFNMcFNldEFjdGl2YXRpb25JblBy
b2dyZXNzAFNQUENTLlNMcFRyaWdnZXJTZXJ2aWNlV29ya2VyAFNMcFRyaWdnZXJTZXJ2aWNlV29ya2VyAFNQUENTLlNMcFZMQWN0aXZhdGVQcm9kdWN0AFNMcFZMQWN0aXZhdGVQcm9kdWN0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUHAAAAAAAAAAAAAAIHEAAIhwAABocAAAAAAAAAAAAAAwcQAAoHAAAHhwAAAAAAAAAAAAAERxAACwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAcAAAAAAAAOJwAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAA
DHEAAAAAAAAAAAAAAAAAAMBwAAAAAAAA4nAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAAAAAAAAAAAMcQAAAAAAAAAAAAAAAAAAAgBTTEdldExpY2Vuc2luZ1N0YXR1c0luZm9ybWF0aW9uAAEAU0xHZXRQcm9kdWN0U2t1SW5mb3JtYXRpb24AAOgDTG9jYWxGcmVlAFEB
U3RyU3RyTklXAABwAAAAcAAAc3BwY3MuZGxsAAAAFHAAAEtFUk5FTDMyLmRsbAAAAAAocAAAU0hMV0FQSS5kbGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAAAAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAA
AAAAAAEACQQAAEgAAABYgAAAHAMAAAAAAAAAAAAAHAM0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAABAAEAAIAAAAAAAAAAAAAAAAAAAB8AgAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkA
bgBmAG8AAABYAgAAAQAwADQAMAA5ADAANABFADQAAAB6AC0AAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAEEAbgBvAG0AYQBsAG8AdQBzACAAUwBvAGYAdAB3AGEAcgBlACAARABlAHQAZQByAGkAbwByAGEAdABpAG8AbgAgAEMAbwByAHAAbwByAGEAdABpAG8A
bgAAAAAAPgALAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAG8AaABvAG8AawAgAFMAUABQAEMAAAAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8AbgAAAAAAMAAuADMALgAwAC4AMAAAACoABQABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAA
cwBwAHAAYwAAAAAAjAA0AAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAqQAgADIAMAAyADMAIABBAG4AbwBtAGEAbABvAHUAcwAgAFMAbwBmAHQAdwBhAHIAZQAgAEQAZQB0AGUAcgBpAG8AcgBhAHQAaQBvAG4AIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4A
AAA6AAkAAQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAcwBwAHAAYwAuAGQAbABsAAAAAAAsAAYAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAG8AaABvAG8AawAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADAALgAzAC4A
MAAuADAAAABEAAAAAQBWAGEAcgBGAGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAACQTkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
:sppc64.dll:
::======================================================================================================================================== ::========================================================================================================================================
:: Leave empty line below :: Leave empty line below

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -93,7 +94,7 @@ popd
cls cls
color 07 color 07
title Online KMS Activation title Online KMS Activation %masver%
:: You are not supposed to edit anything below this. :: You are not supposed to edit anything below this.
@ -137,14 +138,18 @@ 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 "nul=>nul 2>&1"
set psc=powershell.exe set psc=powershell.exe
set winbuild=1 set winbuild=1
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
set _NCS=1 set _NCS=1
if %winbuild% LSS 10586 set _NCS=0 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)
call :_colorprep call :_colorprep
set "_buf={$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" set "_buf={$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
@ -180,14 +185,14 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
set "_Local=%LocalAppData%" set "_Local=%LocalAppData%"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
::======================================================================================================================================== ::========================================================================================================================================
echo "!_batf!" | find /i "!_ttemp!" 1>nul && ( echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
if /i not "!_work!"=="!_ttemp!" ( if /i not "!_work!"=="!_ttemp!" (
%nceline% %nceline%
echo Script is launched from the temp folder, echo Script is launched from the temp folder,
@ -202,10 +207,10 @@ goto Done
:: Elevate script as admin and pass arguments and preventing loop :: Elevate script as admin and pass arguments and preventing loop
>nul fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%nceline% %nceline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto Done goto Done
) )
@ -218,8 +223,8 @@ goto Done
if defined _unattended set quedit=1 if defined _unattended set quedit=1
for %%# in (%_args%) do (if /i "%%#"=="-qedit" set quedit=1) for %%# in (%_args%) do (if /i "%%#"=="-qedit" set quedit=1)
reg query HKCU\Console /v QuickEdit 2>nul | find /i "0x0" %nul% || if not defined quedit ( 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 %nul% reg add HKCU\Console /v QuickEdit /t REG_DWORD /d "0" /f %nul1%
start cmd.exe /c ""!_batf!" %_args% -qedit" 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 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 exit /b
@ -227,6 +232,35 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
if not defined _unattended (
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
)
cls
::========================================================================================================================================
if %~z0 GEQ 300000 (set "_exitmsg=Go back") else (set "_exitmsg=Exit") if %~z0 GEQ 300000 (set "_exitmsg=Go back") else (set "_exitmsg=Exit")
:: Check not x86 Windows :: Check not x86 Windows
@ -274,7 +308,7 @@ if defined _unattended if not defined _unattendedact goto Done
::======================================================================================================================================== ::========================================================================================================================================
set "_title=Online KMS Activation" set "_title=Online KMS Activation %masver%"
set _gui= set _gui=
:_KMS_Menu :_KMS_Menu
@ -483,7 +517,7 @@ mode con cols=98 lines=31
%psc% "&%_buf%" %psc% "&%_buf%"
title %_title% title %_title%
) else ( ) else (
title Online KMS Activation title Online KMS Activation %masver%
) )
if defined _gui if %_Debug%==1 mode con cols=98 lines=30 if defined _gui if %_Debug%==1 mode con cols=98 lines=30
@ -3277,7 +3311,7 @@ goto :eof
cls cls
mode con: cols=91 lines=30 mode con: cols=91 lines=30
title Online KMS Complete Uninstall title Online KMS Complete Uninstall %masver%
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
@ -3388,7 +3422,7 @@ exit /b
cls cls
mode con cols=91 lines=30 mode con cols=91 lines=30
title Install Activation Auto-Renewal title Install Activation Auto-Renewal %masver%
set error_= set error_=
set "_dest=%ProgramFiles%\Activation-Renewal" set "_dest=%ProgramFiles%\Activation-Renewal"
@ -3417,7 +3451,7 @@ if exist "%_temp%\.*" rmdir /s /q "%_temp%\" %nul%
call :createInfo.txt call :createInfo.txt
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":_extracttask\:.*`r`n\"; [io.file]::WriteAllText('%_dest%\Activation_task.cmd', '@REM Dummy ' + '%random%' + [Environment]::NewLine + $f[1].Trim(), [System.Text.Encoding]::ASCII);" %psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":_extracttask\:.*`r`n\"; [io.file]::WriteAllText('%_dest%\Activation_task.cmd', '@REM Dummy ' + '%random%' + [Environment]::NewLine + $f[1].Trim(), [System.Text.Encoding]::ASCII);"
title Install Activation Auto-Renewal title Install Activation Auto-Renewal %masver%
::======================================================================================================================================== ::========================================================================================================================================

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -92,7 +93,7 @@ popd
cls cls
color 07 color 07
title Change Windows Edition title Change Windows Edition %masver%
set _args= set _args=
set _elev= set _elev=
@ -169,7 +170,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -193,7 +194,7 @@ goto ced_done
%nul1% fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%eline% %eline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto ced_done goto ced_done
) )
@ -214,6 +215,32 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :dk_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
::========================================================================================================================================
cls cls
mode 98, 30 mode 98, 30
@ -370,7 +397,7 @@ echo "!_target!" | find /i " %%# " %nul1% || set "_target= !_target! %%# "
if defined _target ( if defined _target (
for %%# in (%_target%) do ( for %%# in (%_target%) do (
echo %%# | findstr /i "CountrySpecific CloudEdition" %nul% || (set "_ntarget=!_ntarget! %%#") echo %%# | findstr /i "CountrySpecific CloudEdition ServerRdsh" %nul% || (set "_ntarget=!_ntarget! %%#")
) )
) )
@ -462,18 +489,31 @@ goto ced_done
:: Changing from Core to Non-Core & Changing editions in Windows build older than 17134 requires "changepk /productkey" or DISM Api method and restart :: Changing from Core to Non-Core & Changing editions in Windows build older than 17134 requires "changepk /productkey" or DISM Api method and restart
:: In other cases, editions can be changed instantly with "slmgr /ipk" :: In other cases, editions can be changed instantly with "slmgr /ipk"
if %_dismapi%==1 (
mode con cols=105 lines=40
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
%eline%
echo Pending Reboot flags found.
echo:
echo Restart the system and try again.
goto ced_done
)
)
cls cls
%line% %line%
echo: echo:
if defined dismnotworking call :dk_color %_Yellow% "DISM.exe is not responding."
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%] echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
echo: echo:
if %_dismapi%==1 ( if %_dismapi%==1 (
call :dk_color %Blue% "Notes-" call :dk_color %Green% "Notes-"
echo: echo:
echo - Save your work before continue, system will auto restart. echo - Save your work before continue, system will auto restart.
echo: echo:
echo - You will need to activate with HWID option once the edition is changed. echo - You will need to activate with HWID option once the edition is changed.
%line%
echo: echo:
choice /C:21 /N /M "[1] Continue [2] %_exitmsg% : " choice /C:21 /N /M "[1] Continue [2] %_exitmsg% : "
if !errorlevel!==1 exit /b if !errorlevel!==1 exit /b
@ -505,7 +545,7 @@ echo Check this page for help. %mas%troubleshoot
if %_dismapi%==1 ( if %_dismapi%==1 (
echo: echo:
echo Applying the DISM API method with %_chan% Key %key% echo Applying the DISM API method with %_chan% Key %key%. Please wait...
echo: echo:
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':dismapi\:.*';& ([ScriptBlock]::Create($f[1])) %targetedition% %key%;" %psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':dismapi\:.*';& ([ScriptBlock]::Create($f[1])) %targetedition% %key%;"
timeout /t 3 %nul1% timeout /t 3 %nul1%
@ -525,7 +565,16 @@ cls
mode con cols=105 lines=32 mode con cols=105 lines=32
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
%eline%
echo Pending reboot flags found.
echo: echo:
echo Restart the system and try again.
goto ced_done
)
echo:
if defined dismnotworking call :dk_color %_Yellow% "Note - DISM.exe is not responding."
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%] echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
echo: echo:
call :dk_color %Blue% "Important - Save your work before continue, system will auto reboot." call :dk_color %Blue% "Important - Save your work before continue, system will auto reboot."
@ -574,8 +623,17 @@ goto ced_done
::======================================================================================================================================== ::========================================================================================================================================
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
%eline%
echo Pending reboot flags found.
echo:
echo Restart the system and try again.
goto ced_done
)
cls cls
echo: echo:
if defined dismnotworking call :dk_color %_Yellow% "Note - DISM.exe is not responding."
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%] echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
echo: echo:
echo Applying the command with %_chan% Key echo Applying the command with %_chan% Key
@ -620,7 +678,11 @@ exit /b
if %_wmic% EQU 1 set "chkedi=for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f') get LicenseFamily /VALUE" %nul6%')" if %_wmic% EQU 1 set "chkedi=for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f') get LicenseFamily /VALUE" %nul6%')"
if %_wmic% EQU 0 set "chkedi=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELECT LicenseFamily FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f''').Get()).LicenseFamily ^| %% {echo ('LicenseFamily='+$_)}" %nul6%')" if %_wmic% EQU 0 set "chkedi=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELECT LicenseFamily FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f''').Get()).LicenseFamily ^| %% {echo ('LicenseFamily='+$_)}" %nul6%')"
%chkedi% do (call set "_wtarget= !_wtarget! %%a ") %chkedi% do (
call if exist %Systemdrive%\Windows\System32\spp\tokens\skus\%%a (
call set "_wtarget= !_wtarget! %%a "
)
)
exit /b exit /b
:: Check wmic.exe :: Check wmic.exe
@ -663,6 +725,29 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check pending reboot flags
:checkrebootflag:
function Test-PendingReboot
{
if (Test-Path -Path "$env:windir\WinSxS\pending.xml") { return $true }
if (Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -EA Ignore) { return $true }
if (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -EA Ignore) { return $true }
try {
$util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities"
$status = $util.DetermineIfRebootPending()
if(($status -ne $null) -and $status.RebootPending){
return $true
}
}catch{}
return $false
}
Test-PendingReboot
:checkrebootflag:
::========================================================================================================================================
:: Get Product Key from pkeyhelper.dll for future new editions :: Get Product Key from pkeyhelper.dll for future new editions
:: It works on Windows 10 1803 (17134) and later builds. :: It works on Windows 10 1803 (17134) and later builds.

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -87,7 +88,7 @@ popd
cls cls
color 07 color 07
title Extract $OEM$ Folder title Extract $OEM$ Folder %masver%
set _args= set _args=
set _elev= set _elev=
@ -161,7 +162,7 @@ set "_batf=%~f0"
set "_batp=%_batf:'=''%" set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -185,7 +186,7 @@ goto done2
%nul1% fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%eline% %eline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto done2 goto done2
) )
@ -206,6 +207,33 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :ex_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
cls
::========================================================================================================================================
setlocal DisableDelayedExpansion setlocal DisableDelayedExpansion
:: Check desktop location :: Check desktop location
@ -240,9 +268,7 @@ goto done2
set HWID_Activation.cmd=Activators\HWID_Activation.cmd set HWID_Activation.cmd=Activators\HWID_Activation.cmd
set KMS38_Activation.cmd=Activators\KMS38_Activation.cmd set KMS38_Activation.cmd=Activators\KMS38_Activation.cmd
set Online_KMS_Activation.cmd=Activators\Online_KMS_Activation.cmd set Online_KMS_Activation.cmd=Activators\Online_KMS_Activation.cmd
set Ohook_Activation.cmd=Activators\Ohook_Activation\Ohook_Activation.cmd set Ohook_Activation_AIO.cmd=Activators\Ohook_Activation_AIO.cmd
set sppc32.dll=Activators\Ohook_Activation\BIN\sppc32.dll
set sppc64.dll=Activators\Ohook_Activation\BIN\sppc64.dll
pushd "!_work!" pushd "!_work!"
set _nofile= set _nofile=
@ -250,9 +276,7 @@ for %%# in (
%HWID_Activation.cmd% %HWID_Activation.cmd%
%KMS38_Activation.cmd% %KMS38_Activation.cmd%
%Online_KMS_Activation.cmd% %Online_KMS_Activation.cmd%
%Ohook_Activation.cmd% %Ohook_Activation_AIO.cmd%
%sppc32.dll%
%sppc64.dll%
) do ( ) do (
if not exist "%%#" set _nofile=1 if not exist "%%#" set _nofile=1
) )
@ -336,7 +360,7 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID call "%~dp0HWID_Activation.cmd" /HWID
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -347,18 +371,14 @@ cd \
:ohook :ohook
cls cls
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" md "!desktop!\$OEM$\$$\Setup\Scripts"
pushd "!_work!" pushd "!_work!"
copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul% copy /y /b %Ohook_Activation_AIO.cmd% "!_dir!\Ohook_Activation_AIO.cmd" %nul%
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
popd popd
call :export ohook_setup call :export ohook_setup
set _error= set _error=
if not exist "!_dir!\Ohook_Activation.cmd" set _error=1 if not exist "!_dir!\Ohook_Activation_AIO.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 not exist "!_dir!\SetupComplete.cmd" set _error=1
if defined _error goto errorfound if defined _error goto errorfound
@ -370,7 +390,7 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -400,7 +420,7 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38 call "%~dp0KMS38_Activation.cmd" /KMS38
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -430,7 +450,7 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-WindowsOffice call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-WindowsOffice
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -441,20 +461,16 @@ cd \
:hwid_ohook :hwid_ohook
cls cls
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" md "!desktop!\$OEM$\$$\Setup\Scripts"
pushd "!_work!" pushd "!_work!"
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul% 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 "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
popd popd
call :export hwid_ohook_setup call :export hwid_ohook_setup
set _error= set _error=
if not exist "!_dir!\HWID_Activation.cmd" set _error=1 if not exist "!_dir!\HWID_Activation.cmd" set _error=1
if not exist "!_dir!\Ohook_Activation.cmd" set _error=1 if not exist "!_dir!\Ohook_Activation_AIO.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 not exist "!_dir!\SetupComplete.cmd" set _error=1
if defined _error goto errorfound if defined _error goto errorfound
@ -466,9 +482,13 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID setlocal
call "%~dp0HWID_Activation.cmd" /HWID
endlocal
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook setlocal
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
endlocal
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -500,9 +520,13 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID setlocal
call "%~dp0HWID_Activation.cmd" /HWID
endlocal
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office setlocal
call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office
endlocal
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -513,20 +537,16 @@ cd \
:kms38_ohook :kms38_ohook
cls cls
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" md "!desktop!\$OEM$\$$\Setup\Scripts"
pushd "!_work!" pushd "!_work!"
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul% 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 "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
popd popd
call :export kms38_ohook_setup call :export kms38_ohook_setup
set _error= set _error=
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1 if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
if not exist "!_dir!\Ohook_Activation.cmd" set _error=1 if not exist "!_dir!\Ohook_Activation_AIO.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 not exist "!_dir!\SetupComplete.cmd" set _error=1
if defined _error goto errorfound if defined _error goto errorfound
@ -538,9 +558,13 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38 setlocal
call "%~dp0KMS38_Activation.cmd" /KMS38
endlocal
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook setlocal
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
endlocal
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -572,9 +596,13 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38 setlocal
call "%~dp0KMS38_Activation.cmd" /KMS38
endlocal
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office setlocal
call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office
endlocal
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
@ -585,20 +613,16 @@ cd \
:kms_ohook :kms_ohook
cls cls
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN" md "!desktop!\$OEM$\$$\Setup\Scripts"
pushd "!_work!" pushd "!_work!"
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul% 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 "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
popd popd
call :export kms_ohook_setup call :export kms_ohook_setup
set _error= set _error=
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1 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!\Ohook_Activation_AIO.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 not exist "!_dir!\SetupComplete.cmd" set _error=1
if defined _error goto errorfound if defined _error goto errorfound
@ -610,9 +634,13 @@ goto done
fltmc >nul || exit /b fltmc >nul || exit /b
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Windows setlocal
call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Windows
endlocal
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook setlocal
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
endlocal
cd \ cd \
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0") (goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")

View File

@ -1,3 +1,4 @@
@set masver=2.4
@setlocal DisableDelayedExpansion @setlocal DisableDelayedExpansion
@echo off @echo off
@ -87,7 +88,7 @@ popd
cls cls
color 07 color 07
title Troubleshoot title Troubleshoot %masver%
set _args= set _args=
set _elev= set _elev=
@ -147,7 +148,7 @@ set "_batp=%_batf:'=''%"
set _PSarg="""%~f0""" -el %_args% set _PSarg="""%~f0""" -el %_args%
set "_ttemp=%temp%" set "_ttemp=%userprofile%\AppData\Local\Temp"
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
@ -171,7 +172,7 @@ goto at_done
%nul1% fltmc || ( %nul1% fltmc || (
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
%nceline% %nceline%
echo This script require admin privileges. echo This script requires admin privileges.
echo To do so, right click on this script and select 'Run as administrator'. echo To do so, right click on this script and select 'Run as administrator'.
goto at_done goto at_done
) )
@ -192,6 +193,33 @@ exit /b
::======================================================================================================================================== ::========================================================================================================================================
:: Check for updates
set -=
set old=
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
)
if defined old (
echo ________________________________________________
%eline%
echo You are running outdated version MAS %masver%
echo ________________________________________________
echo:
echo [1] Download Latest MAS
echo [0] Continue Anyway
echo:
call :_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
choice /C:10 /N
if !errorlevel!==2 rem
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
)
cls
::========================================================================================================================================
setlocal DisableDelayedExpansion setlocal DisableDelayedExpansion
:: Check desktop location :: Check desktop location
@ -214,7 +242,7 @@ setlocal EnableDelayedExpansion
cls cls
color 07 color 07
title Troubleshoot title Troubleshoot %masver%
mode con cols=77 lines=30 mode con cols=77 lines=30
echo: echo:
@ -375,7 +403,7 @@ goto :at_back
:retokens :retokens
cls cls
mode con cols=115 lines=32 mode con cols=125 lines=32
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
title Fix Licensing ^(ClipSVC ^+ Office vNext ^+ SPP ^+ OSPP^) title Fix Licensing ^(ClipSVC ^+ Office vNext ^+ SPP ^+ OSPP^)
@ -388,6 +416,8 @@ echo - It helps in troubleshooting activation issues.
echo: echo:
echo - This option will, echo - This option will,
echo - Deactivate Windows and Office, you may need to reactivate echo - Deactivate Windows and Office, you may need to reactivate
echo If Windows is activated with motherboard / OEM / Digital license then don't worry
echo:
echo - Clear ClipSVC, Office vNext, SPP and OSPP licenses echo - Clear ClipSVC, Office vNext, SPP and OSPP licenses
echo - Fix SPP permissions of tokens folder and registries echo - Fix SPP permissions of tokens folder and registries
echo - Trigger the repair option for Office. echo - Trigger the repair option for Office.
@ -508,7 +538,8 @@ for %%# in (wlidsvc LicenseManager) do (net stop %%# /y %nul% & net start %%# /y
::======================================================================================================================================== ::========================================================================================================================================
:: Clear Office vNext License :: Find remnants of Office vNext license block and remove it because it stops non vNext licenses from appearing
:: https://learn.microsoft.com/en-us/office/troubleshoot/activation/reset-office-365-proplus-activation-state
:cleanvnext :cleanvnext
@ -547,21 +578,28 @@ echo Deleted Folder - !_Local!\Microsoft\Office\Licenses\
echo Not Found - !_Local!\Microsoft\Office\Licenses\ echo Not Found - !_Local!\Microsoft\Office\Licenses\
) )
echo: echo:
for %%# in ( for /f "tokens=* delims=" %%a in ('%psc% "$userSIDs = Get-WmiObject -Class Win32_UserAccount | ForEach-Object {write-host $_.SID}" %nul6%') do (if defined _sid (set "_sid=!_sid! HKU\%%a") else (set "_sid=HKU\%%a"))
HKCU\Software\Microsoft\Office\16.0\Common\Licensing
HKCU\Software\Microsoft\Office\16.0\Registration set regfound=
for %%# in (HKCU !_sid!) do (
for %%A in (
%%#\Software\Microsoft\Office\16.0\Common\Licensing
%%#\Software\Microsoft\Office\16.0\Common\Identity
%%#\Software\Microsoft\Office\16.0\Registration
) do ( ) do (
reg query %%# %nul% && ( reg query %%A %nul% && (
reg delete %%# /f %nul% && ( set regfound=1
echo Deleted Registry - %%# reg delete %%A /f %nul% && (
echo Deleted Registry - %%A
) || ( ) || (
echo Failed to Delete - %%# echo Failed to Delete - %%A
)
) || (
echo Not Found Registry - %%#
) )
) )
)
)
if not defined regfound echo Not Found - Office vNext Registry Keys
::======================================================================================================================================== ::========================================================================================================================================

View File

@ -29,8 +29,8 @@
To run the scripts in unattended mode, check [here](https://massgrave.dev/command_line_switches.html) To run the scripts in unattended mode, check [here](https://massgrave.dev/command_line_switches.html)
``` ```
Latest Version: 2.2 Latest Version: 2.4
Release date: 03-Oct-2023 Release date: 21-Oct-2023
``` ```
### [Troubleshooting / Help](https://massgrave.dev/troubleshoot.html) ### [Troubleshooting / Help](https://massgrave.dev/troubleshoot.html)