mirror of
https://github.com/massgravel/Microsoft-Activation-Scripts.git
synced 2026-07-10 02:22:34 +02:00
Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6401d2f369 | |||
| 05c4f881ef | |||
| 40c74d0d7f | |||
| f34d025d51 | |||
| a9d539e763 | |||
| d084ef3fb6 | |||
| bf9da8b5d8 | |||
| 166814e52d | |||
| 694976cd35 | |||
| 7b78fffd7f | |||
| 983762fc78 | |||
| b990647262 | |||
| 5bde60199b | |||
| 7e5cda65c1 | |||
| d1c0050718 | |||
| 2a4fe194fb | |||
| 1baa4e18ed | |||
| 33b0ac9cc7 | |||
| 97602941e5 | |||
| 773b758f4d | |||
| c07796e405 | |||
| 3e3fe2ca52 | |||
| d33dfc9ce6 | |||
| a5435a349b | |||
| 4fdefbc0d5 | |||
| 63da908027 | |||
| 146d828b46 | |||
| d7302ee41b | |||
| 72cd62552e | |||
| 8d8ed5d098 | |||
| f0d13cb216 | |||
| a93b4b3f4b | |||
| a353813814 | |||
| da9358e4d8 | |||
| 3024b1ca98 | |||
| 31a79148b1 | |||
| da0b2800d9 | |||
| 54a1ec3d54 | |||
| 5f40fb4a79 | |||
| 541364642b | |||
| 2bc48bfd4d | |||
| f69e4ff432 | |||
| f8f37b38fe | |||
| 3c7178aaf6 | |||
| 41783f7a23 | |||
| e7e73a8fbc | |||
| 7327f3b445 |
+4
-4
@@ -1,4 +1,4 @@
|
||||
MAS export-ignore
|
||||
LICENSE export-ignore
|
||||
README.md export-ignore
|
||||
.gitattributes export-ignore
|
||||
# MAS export-ignore
|
||||
# LICENSE export-ignore
|
||||
# README.md export-ignore
|
||||
# .gitattributes export-ignore
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -44,6 +43,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
@@ -100,9 +111,9 @@ set "nul="
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -121,8 +132,7 @@ cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
>nul findstr /v "$" "%_cmdf%" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
@@ -131,10 +141,8 @@ echo Check this webpage for help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -188,7 +196,6 @@ if %winbuild% LSS 10240 (
|
||||
%eline%
|
||||
echo Unsupported OS version detected [%winbuild%].
|
||||
echo HWID Activation is only supported on Windows 10/11.
|
||||
echo:
|
||||
call :dk_color %Blue% "Use TSforge activation option from the main menu."
|
||||
goto dk_done
|
||||
)
|
||||
@@ -207,10 +214,9 @@ goto dk_done
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_batp=%_cmdf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg="""%_cmdf%""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
@@ -219,7 +225,7 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
echo "!_cmdf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
@@ -248,7 +254,7 @@ goto dk_done
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -262,7 +268,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto dk_done
|
||||
@@ -272,7 +277,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -283,7 +287,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto dk_done
|
||||
@@ -295,7 +298,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -316,7 +318,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -354,11 +355,11 @@ reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% && set resetQE
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f %nul1%
|
||||
|
||||
if defined terminal (
|
||||
start conhost.exe "!_batf!" %_args% -qedit
|
||||
start conhost.exe "!_cmdf!" %_args% -qedit
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
) else if %resetQE% EQU 1 (
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
start cmd.exe /c ""!_cmdf!" %_args% -qedit"
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
)
|
||||
@@ -414,7 +415,7 @@ title HWID Activation %masver%
|
||||
|
||||
echo:
|
||||
echo Initializing...
|
||||
call :dk_chkmal
|
||||
echo:
|
||||
|
||||
for %%# in (
|
||||
sppsvc.exe
|
||||
@@ -427,7 +428,6 @@ echo:
|
||||
if not defined results (
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run DISM Restore and SFC Scan options."
|
||||
call :dk_color %Blue% "After that, restart system and try activation again."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If it still shows the same error, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
)
|
||||
@@ -474,7 +474,6 @@ echo [%winos% ^| %winbuild%]
|
||||
echo:
|
||||
echo Evaluation editions cannot be activated outside of their evaluation period.
|
||||
call :dk_color %Blue% "Use TSforge activation option from the main menu to reset evaluation period."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%evaluation_editions
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%evaluation_editions"
|
||||
goto dk_done
|
||||
@@ -538,7 +537,7 @@ set notworking=
|
||||
call :dk_actids 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
if defined allapps call :hwiddata key
|
||||
if not defined key (
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':getactivationid\:.*';. ([scriptblock]::Create($f[1]))"') do (set altapplist=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':getactivationid\:.*';. ([scriptblock]::Create($f[1]))"') do (set altapplist=%%a)
|
||||
if defined altapplist call :hwiddata key
|
||||
)
|
||||
|
||||
@@ -675,7 +674,6 @@ call :dk_color %Red% "Checking Ticket Migration [Failed]"
|
||||
|
||||
if not defined altapplist if not defined showfix if defined rebuildinfo (
|
||||
set showfix=1
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -747,7 +745,6 @@ licensing.mp.microsoft.com
|
||||
findstr /i "%%#" "%SysPath%\drivers\etc\hosts" %nul1% && set "hosfail= [%%# Blocked in Hosts]"
|
||||
)
|
||||
call :dk_color %Red% "Checking Licensing Servers [Failed to Connect]!hosfail!"
|
||||
echo:
|
||||
set fixes=%fixes% %mas%licensing-servers-issue
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%licensing-servers-issue"
|
||||
echo:
|
||||
@@ -763,7 +760,6 @@ reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v DisableWin
|
||||
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v DoNotConnectToWindowsUpdateInternetLocations %nul2% | find /i "0x1" %nul% && set wublock=1
|
||||
if defined wublock (
|
||||
call :dk_color %Red% "Checking Update Blocker In Registry [Found]"
|
||||
echo:
|
||||
call :dk_color %Blue% "HWID activation needs working Windows updates, if you have used any tool to block updates, undo it."
|
||||
echo:
|
||||
)
|
||||
@@ -771,7 +767,6 @@ echo:
|
||||
reg query "HKLM\SOFTWARE\Policies\Microsoft\WindowsStore" /v DisableStoreApps %nul2% | find /i "0x1" %nul% && (
|
||||
set storeblock=1
|
||||
call :dk_color %Red% "Checking Store Blocker In Registry [Found]"
|
||||
echo:
|
||||
call :dk_color %Blue% "If you have used any tool to block Store, undo it."
|
||||
echo:
|
||||
)
|
||||
@@ -790,12 +785,10 @@ set error=1
|
||||
call :dk_color %Red% "Checking Windows Update Registry [Corruption Found]"
|
||||
if !wcount! GTR 2 (
|
||||
call :dk_color %Red% "Windows seems to be infected with Mal%w%ware."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
echo:
|
||||
) else (
|
||||
echo:
|
||||
call :dk_color %Blue% "HWID activation needs working Windows updates, if you have used any tool to block updates, undo it."
|
||||
echo:
|
||||
)
|
||||
@@ -806,7 +799,6 @@ set error=1
|
||||
set wuerror=1
|
||||
sc start wuauserv %nul%
|
||||
call :dk_color %Red% "Starting Windows Update Service [Failed] [!errorlevel!]"
|
||||
echo:
|
||||
call :dk_color %Blue% "HWID activation needs working Windows updates, if you have used any tool to block updates, undo it."
|
||||
echo:
|
||||
)
|
||||
@@ -821,7 +813,6 @@ if %keyerror% EQU 0 if not defined _perm if defined _int (
|
||||
if not defined wucorrupt if not defined wublock if not defined wuerror if not defined storeblock if not defined resfail (
|
||||
echo "%error_code%" | findstr /i "0x80072e 0x80072f 0x800704cf 0x87e10bcf 0x800705b4" %nul% && (
|
||||
call :dk_color %Red% "Checking Internet Issues [Found] %error_code%"
|
||||
echo:
|
||||
set fixes=%fixes% %mas%licensing-servers-issue
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%licensing-servers-issue"
|
||||
echo:
|
||||
@@ -968,7 +959,7 @@ for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Con
|
||||
if %_wmic% EQU 1 for /f "tokens=2 delims==" %%a in ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" %nul6%') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
if %_wmic% EQU 0 for /f "tokens=1" %%a in ('%psc% "([WMI]'Win32_OperatingSystem=@').OperatingSystemSKU" %nul6%') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
|
||||
if %winbuild% GEQ 15063 %psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':winsubstatus\:.*';. ([scriptblock]::Create($f[1]))" %nul2% | find /i "Subscription_is_activated" %nul% && (
|
||||
if %winbuild% GEQ 15063 %psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':winsubstatus\:.*';. ([scriptblock]::Create($f[1]))" %nul2% | find /i "Subscription_is_activated" %nul% && (
|
||||
if defined regSKU if defined slcSKU if not "%regSKU%"=="%slcSKU%" (
|
||||
set winsub=1
|
||||
set osSKU=%regSKU%
|
||||
@@ -1033,7 +1024,6 @@ echo %keyecho% %~1 [Successful]
|
||||
call :dk_color %Red% "%keyecho% %~1 [Failed] %keyerror%"
|
||||
if not defined showfix (
|
||||
if defined altapplist call :dk_color %Red% "Activation ID not found for this key."
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set showfix=1
|
||||
@@ -1159,7 +1149,6 @@ if %spperror% NEQ 1056 if %spperror% NEQ 0 (
|
||||
%eline%
|
||||
echo sc start %_slser% [Error Code: %spperror%]
|
||||
if %spperror% EQU 1053 (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and try again."
|
||||
call :dk_color %Blue% "If it still does not work, go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
@@ -1220,15 +1209,15 @@ exit /b
|
||||
|
||||
set w=
|
||||
set results=
|
||||
if exist "%ProgramFiles%\KM%w%Spico" set pupfound= KM%w%Spico
|
||||
if exist "%ProgramFiles%\KM%w%Spico" set pupfound=[KM%w%Spico]
|
||||
if not defined pupfound (
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" /f Path /s | find /i "AutoPico" %nul% && set pupfound= KM%w%Spico
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" /f Path /s | find /i "AutoPico" %nul% && set pupfound=[KM%w%Spico]
|
||||
)
|
||||
|
||||
set hcount=0
|
||||
for %%# in (avira.com kaspersky.com virustotal.com mcafee.com) do (
|
||||
find /i "%%#" %SysPath%\drivers\etc\hosts %nul% && set /a hcount+=1)
|
||||
if %hcount%==4 set "results=[Antivirus URLs are blocked in hosts]"
|
||||
if %hcount%==4 set "results=[Antivirus Domains Blocked In Hosts File] "
|
||||
|
||||
sc start %_slser% %nul%
|
||||
echo "%errorlevel%" | findstr "577 225" %nul% && (
|
||||
@@ -1238,10 +1227,9 @@ if not exist %SysPath%\%_slexe% if not exist %SysPath%\alg.exe (set "results=%re
|
||||
)
|
||||
|
||||
if not "%results%%pupfound%"=="" (
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators [Found%pupfound%]"
|
||||
if defined results call :dk_color %Red% "Checking Probable Mal%w%ware Infection..."
|
||||
if defined results (call :dk_color %Red% "%results%"&set showfix=1)
|
||||
echo:
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators %pupfound%"
|
||||
if defined results call :dk_color %Red% "Checking for Mal%w%ware Infection... %results%"
|
||||
call :dk_color %Gray% "It is highly likely that your Windows install is infected with mal%w%ware. Windows may fail to activate."
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
echo:
|
||||
@@ -1259,6 +1247,7 @@ exit /b
|
||||
|
||||
:dk_errorcheck
|
||||
|
||||
echo:
|
||||
set showfix=
|
||||
call :dk_chkmal
|
||||
|
||||
@@ -1269,7 +1258,6 @@ call :dk_chkmal
|
||||
sc query Null %nul% || (
|
||||
call :dk_color %Red% "Checking Sandboxing [Found, script may not work properly]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "If you are using any third-party antivirus, check if it is blocking the script."
|
||||
echo:
|
||||
)
|
||||
@@ -1285,7 +1273,6 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot
|
||||
|
||||
call :dk_color %Red% "Checking WinPE [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "WinPE mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -1300,7 +1287,6 @@ set showfix=1
|
||||
if defined safeboot_option (
|
||||
call :dk_color %Red% "Checking Boot Mode [%safeboot_option%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Safe mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -1319,7 +1305,6 @@ if /i not "%imagestate%"=="IMAGE_STATE_COMPLETE" (
|
||||
call :dk_color %Gray% "Checking Windows Setup State [%imagestate%]"
|
||||
echo "%imagestate%" | find /i "RESEAL" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "You need to run it in normal mode in case you are running it in Audit Mode."
|
||||
echo:
|
||||
)
|
||||
@@ -1328,7 +1313,6 @@ set showfix=1
|
||||
)
|
||||
echo "%imagestate%" | find /i "UNDEPLOYABLE" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If the activation fails, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -1414,7 +1398,6 @@ if not defined showfix (
|
||||
echo:
|
||||
echo %serv_cste% | findstr /i "ClipSVC sppsvc" %nul% && (
|
||||
echo A registry fix has been applied to enable the disabled service.
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
) || (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
@@ -1455,7 +1438,6 @@ if not defined showfix (
|
||||
set listwospp=%_serv:sppsvc=%
|
||||
echo %serv_e% | findstr /i "!listwospp!" %nul% && (
|
||||
set showfix=1
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If service error is still not fixed, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -1487,7 +1469,6 @@ if defined wmifailed (
|
||||
call :dk_color %Red% "Checking WMI [Not Working]"
|
||||
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WMI option."
|
||||
echo:
|
||||
)
|
||||
@@ -1502,7 +1483,6 @@ set showfix=1
|
||||
if %winbuild% GEQ 7600 reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Plugins\Objects\msft:rm/algorithm/hwid/4.0" /f ba02fed39662 /d %nul% || (
|
||||
call :dk_color %Red% "Checking SPP Registry Key [Incorrect ModuleId Found] [Most likely caused by gaming spoofers]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%issues_due_to_gaming_spoofers
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%issues_due_to_gaming_spoofers"
|
||||
echo:
|
||||
@@ -1523,7 +1503,6 @@ if %winbuild% LSS 9200 set "tokenstore=%Systemdrive%\Windows\ServiceProfiles\Net
|
||||
if %winbuild% GEQ 9200 if /i not "!tokenstore!"=="%SysPath%\spp\store" if /i not "!tokenstore!"=="%SysPath%\spp\store\2.0" if /i not "!tokenstore!"=="%SysPath%\spp\store_test\2.0" (
|
||||
call :dk_color %Red% "Checking TokenStore Registry Key [Correct Path Not Found] [!tokenstore!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -1554,7 +1533,6 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found, Creat
|
||||
) else (
|
||||
call :dk_color %Red% "Checking SPP Token Folder [Not Found, Failed to Create] [%tokenstore%\]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -1599,7 +1577,6 @@ if !errorlevel!==3 set "permerror=Error Found In S-1-5-20 SPP"
|
||||
if defined permerror (
|
||||
call :dk_color %Red% "Checking SPP Permissions [!permerror!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -1614,14 +1591,13 @@ set showfix=1
|
||||
|
||||
set chkalp=
|
||||
set wpainfo=NotFound
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=0123456789" %%i in ("%wpainfo%") do set chkalp=%%i
|
||||
|
||||
if defined chkalp (
|
||||
call :dk_color %Red% "Checking WPA Registry Errors [%wpainfo%]"
|
||||
if not defined showfix (
|
||||
echo "%wpainfo%" | find /i "Error Found" %nul% && (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
set error=1
|
||||
@@ -1634,7 +1610,6 @@ set wpainfo=a
|
||||
if not defined chkalp (
|
||||
if %wpainfo% GEQ 5000 (
|
||||
call :dk_color %Gray% "Checking WPA Registry Count [%wpainfo%]"
|
||||
echo:
|
||||
call :dk_color %Blue% "A large number of WPA registries have been found, which may cause high CPU usage."
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -1650,7 +1625,6 @@ echo Checking WPA Registry Count [%wpainfo%]
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\PersistedTSReArmed" %nul% && (
|
||||
call :dk_color %Red% "Checking Rearm [System is Rearmed]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -1662,7 +1636,6 @@ set showfix=1
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ClipSVC\Volatile\PersistedSystemState" %nul% && (
|
||||
call :dk_color %Red% "Checking ClipSVC PersistedSystemState [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -1677,7 +1650,6 @@ set showfix=1
|
||||
if %error_code% NEQ 0 (
|
||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -1693,7 +1665,7 @@ set showfix=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
if not defined apps (
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if not defined _vis if !errorlevel! NEQ 0 set rlicfailed=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
)
|
||||
@@ -1707,7 +1679,6 @@ call :dk_color %Gray% "Checking Activation IDs [Key Not Installe
|
||||
if not defined apps if not defined allapps (
|
||||
call :dk_color %Red% "Checking Activation IDs [Not found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -1717,7 +1688,6 @@ set showfix=1
|
||||
)
|
||||
|
||||
if not defined showfix if defined rlicfailed (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -1735,7 +1705,6 @@ if not defined notwinact if exist "%SystemRoot%\Servicing\Packages\Microsoft-Win
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Eval" %nul1% || (
|
||||
call :dk_color %Red% "Checking Eval Packages [License swapping found. Non-Eval licenses are installed in Eval Windows]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "License swapping is not the right way to upgrade to the full version. Learn the correct method at the link below."
|
||||
set fixes=%fixes% %mas%evaluation_editions
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%evaluation_editions"
|
||||
@@ -1753,7 +1722,6 @@ set showfix=1
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion" %nul% || (
|
||||
call :dk_color %Red% "Checking HKU\S-1-5-20 Registry [Not Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -1791,6 +1759,13 @@ call :dk_color %Red% "Checking License Files [Not Found] [%osed
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*-%osedition%-*.mum" (
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-%osedition%Edition*.mum" (
|
||||
call :dk_color %Red% "Checking Package Files [Not Found] [%osedition%]"
|
||||
if not defined showfix (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
)
|
||||
set error=1
|
||||
set showfix=1
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1837,7 +1812,6 @@ if defined _sppint (
|
||||
echo %_sppint% | find /i "PerfOptions" %nul% && (
|
||||
call :dk_color %Red% "Checking SPP Interference In IFEO [%_sppint% - System might deactivate later]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -1872,7 +1846,6 @@ if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||
|
||||
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -1974,7 +1947,7 @@ if %_unattended%==1 timeout /t 2 & exit /b
|
||||
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
@@ -2056,8 +2029,8 @@ set key=%%B
|
||||
REM Generate ticket
|
||||
|
||||
if %1==ticket if "%key%"=="%%B" (
|
||||
set "SessionIdStr=OSMajorVersion=5;OSMinorVersion=1;OSPlatformId=2;PP=0;Pfn=Microsoft.Windows.%%C.%%D_8wekyb3d8bbwe;PKeyIID=465145217131314304264339481117862266242033457260311819664735280;"
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':sign\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
set "SessionIdStr=OSMajorVersion=5;OSMinorVersion=1;OSPlatformId=2;PP=0;Pfn=Microsoft.Windows.%%C.%%D_8wekyb3d8bbwe;PKeyIID=221306452340115677963964261259250411589493550039199940431586886;"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':sign\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
)
|
||||
|
||||
)
|
||||
@@ -2132,7 +2105,7 @@ $SignatureStr = SignProperties $PropertiesStr $rsa
|
||||
$xml = @"
|
||||
<?xml version="1.0" encoding="utf-8"?><genuineAuthorization xmlns="http://www.microsoft.com/DRM/SL/GenuineAuthorization/1.0"><version>1.0</version><genuineProperties origin="sppclient"><properties>$PropertiesStr</properties><signatures><signature name="clientLockboxKey" method="rsa-sha256">$SignatureStr</signature></signatures></genuineProperties></genuineAuthorization>
|
||||
"@
|
||||
[System.IO.File]::WriteAllText("$env:ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\GenuineTicket", ($xml -join ""), [System.Text.Encoding]::ASCII)
|
||||
[IO.File]::WriteAllText("$env:ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\GenuineTicket", ($xml -join ""), [System.Text.Encoding]::ASCII)
|
||||
:sign:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -44,6 +43,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
@@ -100,9 +111,9 @@ set "nul="
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -121,8 +132,7 @@ cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
>nul findstr /v "$" "%_cmdf%" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
@@ -131,10 +141,8 @@ echo Check this webpage for help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -215,10 +223,9 @@ goto dk_done
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_batp=%_cmdf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg="""%_cmdf%""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
@@ -227,7 +234,7 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
echo "!_cmdf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
@@ -256,7 +263,7 @@ goto dk_done
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -270,7 +277,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto dk_done
|
||||
@@ -280,7 +286,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -291,7 +296,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto dk_done
|
||||
@@ -303,7 +307,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -324,7 +327,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -362,11 +364,11 @@ reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% && set resetQE
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f %nul1%
|
||||
|
||||
if defined terminal (
|
||||
start conhost.exe "!_batf!" %_args% -qedit
|
||||
start conhost.exe "!_cmdf!" %_args% -qedit
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
) else if %resetQE% EQU 1 (
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
start cmd.exe /c ""!_cmdf!" %_args% -qedit"
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
)
|
||||
@@ -457,14 +459,13 @@ goto :oh_menu
|
||||
cls
|
||||
if not defined terminal (
|
||||
mode 140, 32
|
||||
if exist "%SysPath%\spp\store_test\" mode 140, 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;}" %nul%
|
||||
)
|
||||
title Ohook Activation %masver%
|
||||
|
||||
echo:
|
||||
echo Initializing...
|
||||
call :dk_chkmal
|
||||
echo:
|
||||
|
||||
if not exist %SysPath%\%_slexe% (
|
||||
%eline%
|
||||
@@ -473,7 +474,6 @@ echo:
|
||||
if not defined results (
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run DISM Restore and SFC Scan options."
|
||||
call :dk_color %Blue% "After that, restart system and try activation again."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If it still shows the same error, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
)
|
||||
@@ -572,11 +572,9 @@ call :dk_color %Red% "Checking Installed Office [Not Found]"
|
||||
|
||||
if defined ohub (
|
||||
echo:
|
||||
echo You only have the Office Dashboard app installed. You need to install the full version of Office.
|
||||
echo You only have the Office Dashboard app installed; you need to install the full version of Office.
|
||||
)
|
||||
echo:
|
||||
call :dk_color %Blue% "Download and install Office from the below URL and then try again."
|
||||
echo:
|
||||
call :dk_color %Blue% "Download and install Office from the URL below, then try again."
|
||||
set fixes=%fixes% %mas%genuine-installation-media
|
||||
call :dk_color %_Yellow% "%mas%genuine-installation-media"
|
||||
goto dk_done
|
||||
@@ -602,6 +600,26 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Smart App Control
|
||||
|
||||
set "sacstate="
|
||||
if %winbuild% GEQ 22621 (
|
||||
for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy" /v VerifiedAndReputablePolicyState %nul6%') do set "sacstate=%%a"
|
||||
)
|
||||
if defined sacstate (
|
||||
if "%sacstate%"=="0x1" (
|
||||
call :dk_color %Gray% "Checking Smart App Control State [Enabled]"
|
||||
call :dk_color %Blue% "Smart App Control may prevent you from opening Office after Ohook activation."
|
||||
call :dk_color %Blue% "You will need to disable it from the Windows Defender settings if it does."
|
||||
) else if "%sacstate%"=="0x2" (
|
||||
call :dk_color %Gray% "Checking Smart App Control State [Evaluation]"
|
||||
call :dk_color %Blue% "Smart App Control may prevent you from opening Office in the future if it enables itself after the evaluation period."
|
||||
call :dk_color %Blue% "It is recommended that you disable it from the Windows Defender settings."
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Process Office 15.0 C2R
|
||||
|
||||
if not defined o15c2r goto :starto16c2r
|
||||
@@ -728,7 +746,7 @@ call :dk_color %Gray% "Checking Old Office With Sub License [Found. Update Of
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: mass()grave(dot)dev/office-license-is-not-genuine
|
||||
:: mass{}grave{dot}dev/office-license-is-not-genuine
|
||||
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
||||
:: Script already is using MAK instead of GVLK so it won't appear anyway, but registry keys are added incase Office installs default GVLK grace key for volume products
|
||||
|
||||
@@ -771,7 +789,6 @@ echo Help: %mas%troubleshoot
|
||||
) else (
|
||||
call :dk_color %Red% "Some errors were detected."
|
||||
if not defined ierror if not defined showfix call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
)
|
||||
@@ -1101,7 +1118,7 @@ for %%# in ("!_oLPath!\%_License%*.xrm-ms") do (
|
||||
if defined _arr (set "_arr=!_arr!;"!_oLPath!\%%~nx#"") else (set "_arr="!_oLPath!\%%~nx#"")
|
||||
)
|
||||
|
||||
%psc% "$sls = Get-WmiObject %sps%; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'; InstallLicenseFile '"!_oLPath!\pkeyconfig-office.xrm-ms"'" %nul%
|
||||
%psc% "$sls = Get-WmiObject %sps%; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'; InstallLicenseFile '"!_oLPath!\pkeyconfig-office.xrm-ms"'" %nul%
|
||||
|
||||
call :dk_actids 0ff1ce15-a989-479d-af46-f275c6370663
|
||||
echo "!allapps!" | find /i "!_actid!" %nul1% || (
|
||||
@@ -1141,18 +1158,9 @@ set ierror=mklink sppcs.dll
|
||||
goto :oh_hookinstall_error
|
||||
)
|
||||
|
||||
set exhook=
|
||||
if exist "!_work!\BIN\%_hook%" set exhook=1
|
||||
|
||||
if not exist "%_hookPath%\sppc.dll" (
|
||||
if defined exhook (
|
||||
pushd "!_work!\BIN\"
|
||||
copy /y /b "%_hook%" "%_hookPath%\sppc.dll" %nul%
|
||||
popd
|
||||
) else (
|
||||
call :oh_extractdll "%_hookPath%\sppc.dll" "%offset%"
|
||||
)
|
||||
)
|
||||
if not exist "%_hookPath%\sppc.dll" (
|
||||
set ierror=Copy
|
||||
goto :oh_hookinstall_error
|
||||
@@ -1160,11 +1168,7 @@ goto :oh_hookinstall_error
|
||||
|
||||
echo:
|
||||
echo Symlinking System's sppc.dll ["%_hookPath%\sppcs.dll"] [Successful]
|
||||
if defined exhook (
|
||||
echo Copying Custom %_hook% to ["%_hookPath%\sppc.dll"] [Successful]
|
||||
) else (
|
||||
echo Extracting Custom %_hook% to ["%_hookPath%\sppc.dll"] [Successful]
|
||||
)
|
||||
|
||||
goto :oh_hookinstall_error
|
||||
|
||||
@@ -1230,18 +1234,8 @@ set ierror=mklink sppcs.dll
|
||||
goto :oh_hookinstall_error
|
||||
)
|
||||
|
||||
set exhook=
|
||||
if exist "!_work!\BIN\%_hook68%" if exist "!_work!\BIN\%_hook86%" set exhook=1
|
||||
|
||||
if defined exhook (
|
||||
pushd "!_work!\BIN\"
|
||||
if defined _osppPath68 (copy /y /b "%_hook68%" "%_osppPath68%\OSPPC.DLL" %nul%)
|
||||
if defined _osppPath86 (copy /y /b "%_hook86%" "%_osppPath86%\OSPPC.DLL" %nul%)
|
||||
popd
|
||||
) else (
|
||||
if defined _osppPath68 (set _hook=%_hook68%&call :oh_extractdll "%_osppPath68%\OSPPC.DLL" "%offset68%")
|
||||
if defined _osppPath86 (set _hook=%_hook86%&call :oh_extractdll "%_osppPath86%\OSPPC.DLL" "%offset86%")
|
||||
)
|
||||
|
||||
if defined _osppPath68 (if not exist "%_osppPath68%\OSPPC.DLL" set ierror=1)
|
||||
if defined _osppPath86 (if not exist "%_osppPath86%\OSPPC.DLL" set ierror=1)
|
||||
@@ -1254,13 +1248,8 @@ goto :oh_hookinstall_error
|
||||
echo:
|
||||
if defined _osppPath68 (echo Renaming OSPPC.DLL to sppcs.dll ["%_osppPath68%\sppcs.dll"])
|
||||
if defined _osppPath86 (echo Renaming OSPPC.DLL to sppcs.dll ["%_osppPath86%\sppcs.dll"])
|
||||
if defined exhook (
|
||||
if defined _osppPath68 (echo Copying Custom %_hook68% to ["%_osppPath68%\OSPPC.DLL"])
|
||||
if defined _osppPath86 (echo Copying Custom %_hook86% to ["%_osppPath86%\OSPPC.DLL"])
|
||||
) else (
|
||||
if defined _osppPath68 (echo Extracting Custom %_hook68% to ["%_osppPath68%\OSPPC.DLL"])
|
||||
if defined _osppPath86 (echo Extracting Custom %_hook86% to ["%_osppPath86%\OSPPC.DLL"])
|
||||
)
|
||||
|
||||
echo Symlinking Renamed sppcs.dll ["%_hookPath%\sppcs.dll"]
|
||||
|
||||
@@ -1617,7 +1606,6 @@ if %upk_result%==1 echo Uninstalling Other/Grace Keys [Successful]
|
||||
if %upk_result%==2 (
|
||||
call :dk_color %Red% "Uninstalling Other/Grace Keys [Failed]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set showfix=1
|
||||
@@ -1633,8 +1621,8 @@ exit /b
|
||||
:oh_licrefresh
|
||||
|
||||
if exist "%SysPath%\spp\store_test\2.0\tokens.dat" (
|
||||
%psc% "Stop-Service sppsvc -force; $sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if !errorlevel! NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "Stop-Service sppsvc -force; $sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if !errorlevel! NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
)
|
||||
exit /b
|
||||
|
||||
@@ -1766,7 +1754,6 @@ echo %keyecho% %~1 [Successful]
|
||||
call :dk_color %Red% "%keyecho% %~1 [Failed] %keyerror%"
|
||||
if not defined showfix (
|
||||
if defined altapplist call :dk_color %Red% "Activation ID not found for this key."
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set showfix=1
|
||||
@@ -1860,7 +1847,6 @@ if %spperror% NEQ 1056 if %spperror% NEQ 0 (
|
||||
%eline%
|
||||
echo sc start %_slser% [Error Code: %spperror%]
|
||||
if %spperror% EQU 1053 (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and try again."
|
||||
call :dk_color %Blue% "If it still does not work, go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
@@ -1914,20 +1900,19 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\
|
||||
set hcount=0
|
||||
for %%# in (avira.com kaspersky.com virustotal.com mcafee.com) do (
|
||||
find /i "%%#" %SysPath%\drivers\etc\hosts %nul% && set /a hcount+=1)
|
||||
if %hcount%==4 set "results=[Antivirus URLs are blocked in hosts]"
|
||||
if %hcount%==4 set "results=Antivirus URLs blocked in hosts file"
|
||||
|
||||
sc start %_slser% %nul%
|
||||
echo "%errorlevel%" | findstr "577 225" %nul% && (
|
||||
set "results=%results%[Likely File Infector]"
|
||||
set "results=%results%Likely File Infector"
|
||||
) || (
|
||||
if not exist %SysPath%\%_slexe% if not exist %SysPath%\alg.exe (set "results=%results%[Likely File Infector]")
|
||||
)
|
||||
|
||||
if not "%results%%pupfound%"=="" (
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators [Found%pupfound%]"
|
||||
if defined results call :dk_color %Red% "Checking Probable Mal%w%ware Infection..."
|
||||
if defined results (call :dk_color %Red% "%results%"&set showfix=1)
|
||||
echo:
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators [%pupfound%]"
|
||||
if defined results call :dk_color %Red% "Checking for Mal%w%ware Infection... [%results%]"
|
||||
call :dk_color %Gray% "It is highly likely that your Windows install is infected with mal%w%ware. Windows cannot be activated."
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
echo:
|
||||
@@ -1955,7 +1940,6 @@ call :dk_chkmal
|
||||
sc query Null %nul% || (
|
||||
call :dk_color %Red% "Checking Sandboxing [Found, script may not work properly]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "If you are using any third-party antivirus, check if it is blocking the script."
|
||||
echo:
|
||||
)
|
||||
@@ -1971,7 +1955,6 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot
|
||||
|
||||
call :dk_color %Red% "Checking WinPE [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "WinPE mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -1986,7 +1969,6 @@ set showfix=1
|
||||
if defined safeboot_option (
|
||||
call :dk_color %Red% "Checking Boot Mode [%safeboot_option%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Safe mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -2005,7 +1987,6 @@ if /i not "%imagestate%"=="IMAGE_STATE_COMPLETE" (
|
||||
call :dk_color %Gray% "Checking Windows Setup State [%imagestate%]"
|
||||
echo "%imagestate%" | find /i "RESEAL" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "You need to run it in normal mode in case you are running it in Audit Mode."
|
||||
echo:
|
||||
)
|
||||
@@ -2014,7 +1995,6 @@ set showfix=1
|
||||
)
|
||||
echo "%imagestate%" | find /i "UNDEPLOYABLE" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If the activation fails, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -2100,7 +2080,6 @@ if not defined showfix (
|
||||
echo:
|
||||
echo %serv_cste% | findstr /i "ClipSVC sppsvc" %nul% && (
|
||||
echo A registry fix has been applied to enable the disabled service.
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
) || (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
@@ -2141,7 +2120,6 @@ if not defined showfix (
|
||||
set listwospp=%_serv:sppsvc=%
|
||||
echo %serv_e% | findstr /i "!listwospp!" %nul% && (
|
||||
set showfix=1
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If service error is still not fixed, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -2173,7 +2151,6 @@ if defined wmifailed (
|
||||
call :dk_color %Red% "Checking WMI [Not Working]"
|
||||
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WMI option."
|
||||
echo:
|
||||
)
|
||||
@@ -2188,7 +2165,6 @@ set showfix=1
|
||||
if %winbuild% GEQ 7600 reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Plugins\Objects\msft:rm/algorithm/hwid/4.0" /f ba02fed39662 /d %nul% || (
|
||||
call :dk_color %Red% "Checking SPP Registry Key [Incorrect ModuleId Found] [Most likely caused by gaming spoofers]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%issues_due_to_gaming_spoofers
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%issues_due_to_gaming_spoofers"
|
||||
echo:
|
||||
@@ -2209,7 +2185,6 @@ if %winbuild% LSS 9200 set "tokenstore=%Systemdrive%\Windows\ServiceProfiles\Net
|
||||
if %winbuild% GEQ 9200 if /i not "!tokenstore!"=="%SysPath%\spp\store" if /i not "!tokenstore!"=="%SysPath%\spp\store\2.0" if /i not "!tokenstore!"=="%SysPath%\spp\store_test\2.0" (
|
||||
call :dk_color %Red% "Checking TokenStore Registry Key [Correct Path Not Found] [!tokenstore!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -2240,7 +2215,6 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found, Creat
|
||||
) else (
|
||||
call :dk_color %Red% "Checking SPP Token Folder [Not Found, Failed to Create] [%tokenstore%\]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -2285,7 +2259,6 @@ if !errorlevel!==3 set "permerror=Error Found In S-1-5-20 SPP"
|
||||
if defined permerror (
|
||||
call :dk_color %Red% "Checking SPP Permissions [!permerror!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -2300,14 +2273,13 @@ set showfix=1
|
||||
|
||||
set chkalp=
|
||||
set wpainfo=NotFound
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=0123456789" %%i in ("%wpainfo%") do set chkalp=%%i
|
||||
|
||||
if defined chkalp (
|
||||
call :dk_color %Red% "Checking WPA Registry Errors [%wpainfo%]"
|
||||
if not defined showfix (
|
||||
echo "%wpainfo%" | find /i "Error Found" %nul% && (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
set error=1
|
||||
@@ -2320,7 +2292,6 @@ set wpainfo=a
|
||||
if not defined chkalp (
|
||||
if %wpainfo% GEQ 5000 (
|
||||
call :dk_color %Gray% "Checking WPA Registry Count [%wpainfo%]"
|
||||
echo:
|
||||
call :dk_color %Blue% "A large number of WPA registries have been found, which may cause high CPU usage."
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -2336,7 +2307,6 @@ echo Checking WPA Registry Count [%wpainfo%]
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\PersistedTSReArmed" %nul% && (
|
||||
call :dk_color %Red% "Checking Rearm [System is Rearmed]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -2348,7 +2318,6 @@ set showfix=1
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ClipSVC\Volatile\PersistedSystemState" %nul% && (
|
||||
call :dk_color %Red% "Checking ClipSVC PersistedSystemState [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -2363,7 +2332,6 @@ set showfix=1
|
||||
if %error_code% NEQ 0 (
|
||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -2379,7 +2347,7 @@ set showfix=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
if not defined apps (
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if not defined _vis if !errorlevel! NEQ 0 set rlicfailed=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
)
|
||||
@@ -2393,7 +2361,6 @@ call :dk_color %Gray% "Checking Activation IDs [Key Not Installe
|
||||
if not defined apps if not defined allapps (
|
||||
call :dk_color %Red% "Checking Activation IDs [Not found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -2403,7 +2370,6 @@ set showfix=1
|
||||
)
|
||||
|
||||
if not defined showfix if defined rlicfailed (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -2421,7 +2387,6 @@ if not defined notwinact if exist "%SystemRoot%\Servicing\Packages\Microsoft-Win
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Eval" %nul1% || (
|
||||
call :dk_color %Red% "Checking Eval Packages [License swapping found. Non-Eval licenses are installed in Eval Windows]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "License swapping is not the right way to upgrade to the full version. Learn the correct method at the link below."
|
||||
set fixes=%fixes% %mas%evaluation_editions
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%evaluation_editions"
|
||||
@@ -2439,7 +2404,6 @@ set showfix=1
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion" %nul% || (
|
||||
call :dk_color %Red% "Checking HKU\S-1-5-20 Registry [Not Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -2477,6 +2441,13 @@ call :dk_color %Red% "Checking License Files [Not Found] [%osed
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*-%osedition%-*.mum" (
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-%osedition%Edition*.mum" (
|
||||
call :dk_color %Red% "Checking Package Files [Not Found] [%osedition%]"
|
||||
if not defined showfix (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
)
|
||||
set error=1
|
||||
set showfix=1
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -2523,7 +2494,6 @@ if defined _sppint (
|
||||
echo %_sppint% | find /i "PerfOptions" %nul% && (
|
||||
call :dk_color %Red% "Checking SPP Interference In IFEO [%_sppint% - System might deactivate later]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -2558,7 +2528,6 @@ if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||
|
||||
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -2660,7 +2629,7 @@ if %_unattended%==1 timeout /t 2 & exit /b
|
||||
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
@@ -3158,7 +3127,7 @@ exit /b
|
||||
:oh_extractdll
|
||||
|
||||
set b=
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':%_hook%\:.*';$encoded = ($f[1]) -replace '-', 'A' -replace '_', 'a';$bytes = [Con%b%vert]::FromBas%b%e64String($encoded); $PePath='%1'; $offset='%2'; $m=[System.IO.File]::ReadAllText('!_batp!') -split ':hexedit\:.*';. ([scriptblock]::Create($m[1]))" %nul2% | find /i "Error found" %nul1% && set hasherror=1
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':%_hook%\:.*';$encoded = ($f[1]) -replace '-', 'A' -replace '_', 'a';$bytes = [Con%b%vert]::FromBas%b%e64String($encoded); $PePath='%1'; $offset='%2'; $m=[IO.File]::ReadAllText('!_batp!') -split ':hexedit\:.*';. ([scriptblock]::Create($m[1]))" %nul2% | find /i "Error found" %nul1% && set hasherror=1
|
||||
exit /b
|
||||
|
||||
:hexedit:
|
||||
@@ -3197,8 +3166,8 @@ $Writer.Write($unixTimestamp)
|
||||
$Writer.Flush()
|
||||
|
||||
# Write the current state of the MemoryStream to a temporary file
|
||||
$tempFilePath = "$env:windir\Temp\$([System.IO.Path]::GetRandomFileName())"
|
||||
[System.IO.File]::WriteAllBytes($tempFilePath, $MemoryStream.ToArray())
|
||||
$tempFilePath = "$env:windir\Temp\$([Guid]::NewGuid().Guid)"
|
||||
[IO.File]::WriteAllBytes($tempFilePath, $MemoryStream.ToArray())
|
||||
|
||||
# Update hash using the temporary file
|
||||
[int]$HeaderSum = 0
|
||||
@@ -3221,7 +3190,7 @@ Remove-Item -Path $tempFilePath -Force
|
||||
$modifiedBytes = $MemoryStream.ToArray()
|
||||
|
||||
# Write the modified bytes to the final file
|
||||
[System.IO.File]::WriteAllBytes($PePath, $modifiedBytes)
|
||||
[IO.File]::WriteAllBytes($PePath, $modifiedBytes)
|
||||
|
||||
[void]$Imagehlp::MapFileAndCheckSum($PePath, [ref]$HeaderSum, [ref]$CheckSum)
|
||||
if ($HeaderSum -ne $CheckSum) {
|
||||
@@ -3241,19 +3210,13 @@ $MemoryStream.Close()
|
||||
::
|
||||
:: The files are encoded in base64 to make AIO version.
|
||||
::
|
||||
:: mass()grave(dot)dev/ohook
|
||||
:: mass{}grave{dot}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(dot)dev/contactus
|
||||
::
|
||||
::========================================================================================================================================
|
||||
::
|
||||
:: If you want to use a different sppc.dll or without base64 format, then create a folder named "BIN" where this script is located and
|
||||
:: place these two files in that "BIN" folder. sppc32.dll, sppc64.dll
|
||||
:: Script will auto pick that instead of using the below from base64 section. You can also delete the below code in that case.
|
||||
:: For any further question, feel free to contact us on mass{}grave{dot}dev/contactus
|
||||
::
|
||||
::========================================================================================================================================
|
||||
::
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -69,6 +68,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
@@ -125,9 +136,9 @@ set "nul="
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -146,8 +157,7 @@ cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
>nul findstr /v "$" "%_cmdf%" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
@@ -156,10 +166,8 @@ echo Check this webpage for help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -246,10 +254,9 @@ goto dk_done
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_batp=%_cmdf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg="""%_cmdf%""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
@@ -258,7 +265,7 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
echo "!_cmdf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
@@ -287,7 +294,7 @@ goto dk_done
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -301,7 +308,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto dk_done
|
||||
@@ -311,7 +317,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -322,7 +327,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto dk_done
|
||||
@@ -334,7 +338,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -355,7 +358,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -393,11 +395,11 @@ reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% && set resetQE
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f %nul1%
|
||||
|
||||
if defined terminal (
|
||||
start conhost.exe "!_batf!" %_args% -qedit
|
||||
start conhost.exe "!_cmdf!" %_args% -qedit
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
) else if %resetQE% EQU 1 (
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
start cmd.exe /c ""!_cmdf!" %_args% -qedit"
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
)
|
||||
@@ -526,7 +528,7 @@ title Online %KS% Activation %masver%
|
||||
|
||||
echo:
|
||||
echo Initializing...
|
||||
call :dk_chkmal
|
||||
echo:
|
||||
|
||||
if not exist %SysPath%\%_slexe% (
|
||||
%eline%
|
||||
@@ -535,7 +537,6 @@ echo:
|
||||
if not defined results (
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run DISM Restore and SFC Scan options."
|
||||
call :dk_color %Blue% "After that, restart system and try activation again."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If it still shows the same error, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
)
|
||||
@@ -817,9 +818,9 @@ call :dk_color %Red% "Checking Installed Office [Not Found]"
|
||||
|
||||
if defined ohub (
|
||||
echo:
|
||||
echo You only have the Office Dashboard app installed. You need to install the full version of Office.
|
||||
echo You only have the Office Dashboard app installed; you need to install the full version of Office.
|
||||
)
|
||||
call :dk_color %Blue% "Download and install Office from below URL and try again."
|
||||
call :dk_color %Blue% "Download and install Office from the URL below, then try again."
|
||||
set fixes=%fixes% %mas%genuine-installation-media
|
||||
call :dk_color %_Yellow% "%mas%genuine-installation-media"
|
||||
goto :ks_activate
|
||||
@@ -1031,7 +1032,7 @@ if %winbuild% GEQ 9200 (
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath /reg:32" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
||||
if defined _C16R (
|
||||
REM mass()grave(dot)dev/office-license-is-not-genuine
|
||||
REM mass{}grave{dot}dev/office-license-is-not-genuine
|
||||
set _server=10.0.0.10
|
||||
call :_taskregserv
|
||||
echo Keeping the non-existent IP address 10.0.0.10 as %KS% Server.
|
||||
@@ -1386,7 +1387,7 @@ for %%# in ("!_oLPath!\%_License%*.xrm-ms") do (
|
||||
if defined _arr (set "_arr=!_arr!;"!_oLPath!\%%~nx#"") else (set "_arr="!_oLPath!\%%~nx#"")
|
||||
)
|
||||
|
||||
%psc% "$sls = Get-WmiObject %sps%; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'; InstallLicenseFile '"!_oLPath!\pkeyconfig-office.xrm-ms"'" %nul%
|
||||
%psc% "$sls = Get-WmiObject %sps%; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'; InstallLicenseFile '"!_oLPath!\pkeyconfig-office.xrm-ms"'" %nul%
|
||||
|
||||
call :dk_actids 0ff1ce15-a989-479d-af46-f275c6370663
|
||||
echo "!allapps!" | find /i "!_actid!" %nul1% || (
|
||||
@@ -1595,7 +1596,6 @@ if %upk_result%==1 echo Uninstalling Other/Grace Keys [Successful]
|
||||
if %upk_result%==2 (
|
||||
call :dk_color %Red% "Uninstalling Other/Grace Keys [Failed]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set showfix=1
|
||||
@@ -1611,8 +1611,8 @@ exit /b
|
||||
:oh_licrefresh
|
||||
|
||||
if exist "%SysPath%\spp\store_test\2.0\tokens.dat" (
|
||||
%psc% "Stop-Service sppsvc -force; $sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if !errorlevel! NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "Stop-Service sppsvc -force; $sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if !errorlevel! NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
)
|
||||
exit /b
|
||||
|
||||
@@ -1649,7 +1649,6 @@ call :ks_clearstuff
|
||||
set error_=9
|
||||
echo Failed to completely clear %KS% Cache.
|
||||
reg query "HKLM\%SPPk%\%_wApp%" /s %nul2% | findstr /i "127.0.0.2" %nul1% && echo KMS38 activation is locked.
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
) || (
|
||||
@@ -1727,8 +1726,7 @@ exit /b
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -2281,7 +2279,7 @@ if not defined _int (s%nil%cht%nil%asks /cre%nil%ate /tn "Activation-Run_Once" /
|
||||
if exist "%_temp%\.*" rmdir /s /q "%_temp%\" %nul%
|
||||
|
||||
call :ks_createInfo.txt
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split \":_extracttask\:.*`r`n\"; [io.file]::WriteAllText('%_dest%\Activation_task.cmd', '@::%randguid%' + [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', '@::%randguid%' + [Environment]::NewLine + $f[1].Trim(), [System.Text.Encoding]::ASCII)"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -2311,7 +2309,7 @@ exit /b
|
||||
|
||||
:ks_RenExport
|
||||
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
@@ -2337,7 +2335,6 @@ echo:
|
||||
echo This Script is a part of MAS project.
|
||||
echo:
|
||||
echo Homepage: mass%w%grave%w%.dev
|
||||
echo Email: mas.help@outlook.com
|
||||
)>"%_dest%\Info.txt"
|
||||
exit /b
|
||||
|
||||
@@ -2677,7 +2674,7 @@ for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Con
|
||||
if %_wmic% EQU 1 for /f "tokens=2 delims==" %%a in ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" %nul6%') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
if %_wmic% EQU 0 for /f "tokens=1" %%a in ('%psc% "([WMI]'Win32_OperatingSystem=@').OperatingSystemSKU" %nul6%') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
|
||||
if %winbuild% GEQ 15063 %psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':winsubstatus\:.*';. ([scriptblock]::Create($f[1]))" %nul2% | find /i "Subscription_is_activated" %nul% && (
|
||||
if %winbuild% GEQ 15063 %psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':winsubstatus\:.*';. ([scriptblock]::Create($f[1]))" %nul2% | find /i "Subscription_is_activated" %nul% && (
|
||||
if defined regSKU if defined slcSKU if not "%regSKU%"=="%slcSKU%" (
|
||||
set winsub=1
|
||||
set osSKU=%regSKU%
|
||||
@@ -2742,7 +2739,6 @@ echo %keyecho% %~1 [Successful]
|
||||
call :dk_color %Red% "%keyecho% %~1 [Failed] %keyerror%"
|
||||
if not defined showfix (
|
||||
if defined altapplist call :dk_color %Red% "Activation ID not found for this key."
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set showfix=1
|
||||
@@ -2863,7 +2859,6 @@ if %spperror% NEQ 1056 if %spperror% NEQ 0 (
|
||||
%eline%
|
||||
echo sc start %_slser% [Error Code: %spperror%]
|
||||
if %spperror% EQU 1053 (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and try again."
|
||||
call :dk_color %Blue% "If it still does not work, go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
@@ -2977,20 +2972,19 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\
|
||||
set hcount=0
|
||||
for %%# in (avira.com kaspersky.com virustotal.com mcafee.com) do (
|
||||
find /i "%%#" %SysPath%\drivers\etc\hosts %nul% && set /a hcount+=1)
|
||||
if %hcount%==4 set "results=[Antivirus URLs are blocked in hosts]"
|
||||
if %hcount%==4 set "results=Antivirus URLs blocked in hosts file"
|
||||
|
||||
sc start %_slser% %nul%
|
||||
echo "%errorlevel%" | findstr "577 225" %nul% && (
|
||||
set "results=%results%[Likely File Infector]"
|
||||
set "results=%results%Likely File Infector"
|
||||
) || (
|
||||
if not exist %SysPath%\%_slexe% if not exist %SysPath%\alg.exe (set "results=%results%[Likely File Infector]")
|
||||
)
|
||||
|
||||
if not "%results%%pupfound%"=="" (
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators [Found%pupfound%]"
|
||||
if defined results call :dk_color %Red% "Checking Probable Mal%w%ware Infection..."
|
||||
if defined results (call :dk_color %Red% "%results%"&set showfix=1)
|
||||
echo:
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators [%pupfound%]"
|
||||
if defined results call :dk_color %Red% "Checking for Mal%w%ware Infection... [%results%]"
|
||||
call :dk_color %Gray% "It is highly likely that your Windows install is infected with mal%w%ware. Windows cannot be activated."
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
echo:
|
||||
@@ -3018,7 +3012,6 @@ call :dk_chkmal
|
||||
sc query Null %nul% || (
|
||||
call :dk_color %Red% "Checking Sandboxing [Found, script may not work properly]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "If you are using any third-party antivirus, check if it is blocking the script."
|
||||
echo:
|
||||
)
|
||||
@@ -3034,7 +3027,6 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot
|
||||
|
||||
call :dk_color %Red% "Checking WinPE [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "WinPE mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -3049,7 +3041,6 @@ set showfix=1
|
||||
if defined safeboot_option (
|
||||
call :dk_color %Red% "Checking Boot Mode [%safeboot_option%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Safe mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -3068,7 +3059,6 @@ if /i not "%imagestate%"=="IMAGE_STATE_COMPLETE" (
|
||||
call :dk_color %Gray% "Checking Windows Setup State [%imagestate%]"
|
||||
echo "%imagestate%" | find /i "RESEAL" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "You need to run it in normal mode in case you are running it in Audit Mode."
|
||||
echo:
|
||||
)
|
||||
@@ -3077,7 +3067,6 @@ set showfix=1
|
||||
)
|
||||
echo "%imagestate%" | find /i "UNDEPLOYABLE" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If the activation fails, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3163,7 +3152,6 @@ if not defined showfix (
|
||||
echo:
|
||||
echo %serv_cste% | findstr /i "ClipSVC sppsvc" %nul% && (
|
||||
echo A registry fix has been applied to enable the disabled service.
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
) || (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
@@ -3204,7 +3192,6 @@ if not defined showfix (
|
||||
set listwospp=%_serv:sppsvc=%
|
||||
echo %serv_e% | findstr /i "!listwospp!" %nul% && (
|
||||
set showfix=1
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If service error is still not fixed, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -3236,7 +3223,6 @@ if defined wmifailed (
|
||||
call :dk_color %Red% "Checking WMI [Not Working]"
|
||||
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WMI option."
|
||||
echo:
|
||||
)
|
||||
@@ -3251,7 +3237,6 @@ set showfix=1
|
||||
if %winbuild% GEQ 7600 reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Plugins\Objects\msft:rm/algorithm/hwid/4.0" /f ba02fed39662 /d %nul% || (
|
||||
call :dk_color %Red% "Checking SPP Registry Key [Incorrect ModuleId Found] [Most likely caused by gaming spoofers]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%issues_due_to_gaming_spoofers
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%issues_due_to_gaming_spoofers"
|
||||
echo:
|
||||
@@ -3272,7 +3257,6 @@ if %winbuild% LSS 9200 set "tokenstore=%Systemdrive%\Windows\ServiceProfiles\Net
|
||||
if %winbuild% GEQ 9200 if /i not "!tokenstore!"=="%SysPath%\spp\store" if /i not "!tokenstore!"=="%SysPath%\spp\store\2.0" if /i not "!tokenstore!"=="%SysPath%\spp\store_test\2.0" (
|
||||
call :dk_color %Red% "Checking TokenStore Registry Key [Correct Path Not Found] [!tokenstore!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3303,7 +3287,6 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found, Creat
|
||||
) else (
|
||||
call :dk_color %Red% "Checking SPP Token Folder [Not Found, Failed to Create] [%tokenstore%\]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3348,7 +3331,6 @@ if !errorlevel!==3 set "permerror=Error Found In S-1-5-20 SPP"
|
||||
if defined permerror (
|
||||
call :dk_color %Red% "Checking SPP Permissions [!permerror!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -3363,14 +3345,13 @@ set showfix=1
|
||||
|
||||
set chkalp=
|
||||
set wpainfo=NotFound
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=0123456789" %%i in ("%wpainfo%") do set chkalp=%%i
|
||||
|
||||
if defined chkalp (
|
||||
call :dk_color %Red% "Checking WPA Registry Errors [%wpainfo%]"
|
||||
if not defined showfix (
|
||||
echo "%wpainfo%" | find /i "Error Found" %nul% && (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
set error=1
|
||||
@@ -3383,7 +3364,6 @@ set wpainfo=a
|
||||
if not defined chkalp (
|
||||
if %wpainfo% GEQ 5000 (
|
||||
call :dk_color %Gray% "Checking WPA Registry Count [%wpainfo%]"
|
||||
echo:
|
||||
call :dk_color %Blue% "A large number of WPA registries have been found, which may cause high CPU usage."
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3399,7 +3379,6 @@ echo Checking WPA Registry Count [%wpainfo%]
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\PersistedTSReArmed" %nul% && (
|
||||
call :dk_color %Red% "Checking Rearm [System is Rearmed]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -3411,7 +3390,6 @@ set showfix=1
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ClipSVC\Volatile\PersistedSystemState" %nul% && (
|
||||
call :dk_color %Red% "Checking ClipSVC PersistedSystemState [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -3426,7 +3404,6 @@ set showfix=1
|
||||
if %error_code% NEQ 0 (
|
||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3442,7 +3419,7 @@ set showfix=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
if not defined apps (
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if not defined _vis if !errorlevel! NEQ 0 set rlicfailed=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
)
|
||||
@@ -3456,7 +3433,6 @@ call :dk_color %Gray% "Checking Activation IDs [Key Not Installe
|
||||
if not defined apps if not defined allapps (
|
||||
call :dk_color %Red% "Checking Activation IDs [Not found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3466,7 +3442,6 @@ set showfix=1
|
||||
)
|
||||
|
||||
if not defined showfix if defined rlicfailed (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3484,7 +3459,6 @@ if not defined notwinact if exist "%SystemRoot%\Servicing\Packages\Microsoft-Win
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Eval" %nul1% || (
|
||||
call :dk_color %Red% "Checking Eval Packages [License swapping found. Non-Eval licenses are installed in Eval Windows]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "License swapping is not the right way to upgrade to the full version. Learn the correct method at the link below."
|
||||
set fixes=%fixes% %mas%evaluation_editions
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%evaluation_editions"
|
||||
@@ -3502,7 +3476,6 @@ set showfix=1
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion" %nul% || (
|
||||
call :dk_color %Red% "Checking HKU\S-1-5-20 Registry [Not Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3540,6 +3513,13 @@ call :dk_color %Red% "Checking License Files [Not Found] [%osed
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*-%osedition%-*.mum" (
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-%osedition%Edition*.mum" (
|
||||
call :dk_color %Red% "Checking Package Files [Not Found] [%osedition%]"
|
||||
if not defined showfix (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
)
|
||||
set error=1
|
||||
set showfix=1
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -3586,7 +3566,6 @@ if defined _sppint (
|
||||
echo %_sppint% | find /i "PerfOptions" %nul% && (
|
||||
call :dk_color %Red% "Checking SPP Interference In IFEO [%_sppint% - System might deactivate later]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -3621,7 +3600,6 @@ if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||
|
||||
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -3723,7 +3701,7 @@ if %_unattended%==1 timeout /t 2 & exit /b
|
||||
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
@@ -4234,9 +4212,6 @@ set notfoundaltactID=
|
||||
if %_NoEditionChange%==1 exit /b
|
||||
|
||||
for %%# in (
|
||||
188_IoTEnterprise__________________8ab9bdd1-1f67-4997-82d9-8878520837d9_73111121-5638-40f6-bc11-f1d7b0d64300_NPPR9-FWDCX-D2C8J-H872K-2Y%f%T43_Enterprise
|
||||
206_IoTEnterpriseK_________________80083eae-7031-4394-9e88-4901973d56fe_73111121-5638-40f6-bc11-f1d7b0d64300_NPPR9-FWDCX-D2C8J-H872K-2Y%f%T43_Enterprise
|
||||
191_IoTEnterpriseS-2021____________ed655016-a9e8-4434-95d9-4345352c2552_32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee_M7XTQ-FN8P6-TTKYV-9D4CC-J4%f%62D_EnterpriseS-2021
|
||||
205_IoTEnterpriseSK________________d4f9b41f-205c-405e-8e08-3d16e88e02be_59eb965c-9150-42b7-a0ec-22151b9897c5_KBN8V-HFGQ4-MGXVD-347P6-PD%f%QGT_IoTEnterpriseS
|
||||
138_ProfessionalSingleLanguage_____a48938aa-62fa-4966-9d44-9f04da3f72f2_2de67392-b7a7-462a-b1ca-108dd189f588_W269N-WFGWX-YVC9B-4J6C9-T8%f%3GX_Professional
|
||||
139_ProfessionalCountrySpecific____f7af7d09-40e4-419c-a49b-eae366689ebd_2de67392-b7a7-462a-b1ca-108dd189f588_W269N-WFGWX-YVC9B-4J6C9-T8%f%3GX_Professional
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -78,6 +77,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
@@ -134,9 +145,9 @@ set "nul="
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -155,8 +166,7 @@ cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
>nul findstr /v "$" "%_cmdf%" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
@@ -165,10 +175,8 @@ echo Check this webpage for help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -213,7 +221,6 @@ call :dk_setvar
|
||||
if %winbuild% EQU 1 (
|
||||
%eline%
|
||||
echo Failed to detect Windows build number.
|
||||
echo:
|
||||
setlocal EnableDelayedExpansion
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
@@ -273,10 +280,9 @@ goto dk_done
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_batp=%_cmdf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg="""%_cmdf%""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
@@ -285,7 +291,7 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
echo "!_cmdf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
@@ -314,7 +320,7 @@ goto dk_done
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -328,7 +334,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto dk_done
|
||||
@@ -338,7 +343,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -349,7 +353,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto dk_done
|
||||
@@ -361,7 +364,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -382,7 +384,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -420,11 +421,11 @@ reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% && set resetQE
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f %nul1%
|
||||
|
||||
if defined terminal (
|
||||
start conhost.exe "!_batf!" %_args% -qedit
|
||||
start conhost.exe "!_cmdf!" %_args% -qedit
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
) else if %resetQE% EQU 1 (
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
start cmd.exe /c ""!_cmdf!" %_args% -qedit"
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
)
|
||||
@@ -545,7 +546,9 @@ echo:
|
||||
echo ______________________________________________________________
|
||||
echo:
|
||||
call :dk_color2 %_White% " [1] " %_Green% "Auto"
|
||||
echo Builds ^>= 26100 - StaticCID (KMS4k if offline)
|
||||
echo Builds ^>= 26100 - Windows only - KMS4k
|
||||
echo Other options - StaticCID
|
||||
echo:
|
||||
echo Builds ^< 26100 - ZeroCID
|
||||
echo __________________________________________________
|
||||
echo:
|
||||
@@ -596,7 +599,7 @@ title TSforge Activation %masver%
|
||||
|
||||
echo:
|
||||
echo Initializing...
|
||||
call :dk_chkmal
|
||||
echo:
|
||||
|
||||
if not exist %SysPath%\%_slexe% (
|
||||
%eline%
|
||||
@@ -605,7 +608,6 @@ echo:
|
||||
if not defined results (
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run DISM Restore and SFC Scan options."
|
||||
call :dk_color %Blue% "After that, restart system and try activation again."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If it still shows the same error, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
)
|
||||
@@ -619,7 +621,6 @@ echo .NET 3.5 Framework is corrupt or missing. Aborting...
|
||||
if exist "%SysPath%\spp\tokens\skus\Security-SPP-Component-SKU-Embedded" (
|
||||
echo Install .NET Framework 4.8 and Windows Management Framework 5.1
|
||||
)
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -633,7 +634,6 @@ if !errorlevel! EQU 1051 (
|
||||
%eline%
|
||||
echo Evaluation WLMS service is running, %_slser% service can not be stopped. Aborting...
|
||||
echo Install Non-Eval version for Windows build %winbuild%.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -669,6 +669,9 @@ if /i %_actmethod%==KMS4k set tsmethod=KMS4k
|
||||
if /i %_actmethod%==Auto (
|
||||
if %winbuild% GEQ 26100 (
|
||||
set tsmethod=StaticCID
|
||||
if !_actwin!==1 if not !_actwinesuoff!==1 (
|
||||
set tsmethod=KMS4k
|
||||
)
|
||||
) else (
|
||||
set tsmethod=ZeroCID
|
||||
)
|
||||
@@ -773,7 +776,7 @@ if defined _vis goto :ts_winvista
|
||||
|
||||
set tempid=
|
||||
if /i %tsmethod%==KMS4k (set keytype=ks) else (set keytype=zero)
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':wintsid\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':wintsid\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (
|
||||
echo "%%a" | findstr /r ".*-.*-.*-.*-.*" %nul1% && (set tsids=!tsids! %%a& set tempid=%%a)
|
||||
)
|
||||
|
||||
@@ -784,7 +787,7 @@ call :dk_color %Red% "Checking Activation ID [Not Found] [%tsed
|
||||
set error=1
|
||||
if /i %tsmethod%==KMS4k (
|
||||
if /i %_actmethod%==Auto (
|
||||
call :dk_color %Blue% "Connect to the Internet and try again. Script will use the StaticCID activation method."
|
||||
call :dk_color %Blue% "Return to the previous menu and select StaticCID activation method. Internet connection is required to activate."
|
||||
) else (
|
||||
call :dk_color %Blue% "Use non-KMS4K activation options from the previous menu."
|
||||
)
|
||||
@@ -1063,7 +1066,7 @@ goto :ts_esu
|
||||
)
|
||||
|
||||
set resetstuff=1
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':tsforge\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':tsforge\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
set resetstuff=
|
||||
if !errorlevel!==3 (
|
||||
set error=1
|
||||
@@ -1102,7 +1105,7 @@ set esuexistsup=
|
||||
set esueditionlist=
|
||||
set esuexistbutnosup=
|
||||
|
||||
for %%# in (EnterpriseS IoTEnterpriseS IoTEnterpriseSK) do (if /i %tsedition%==%%# set isltsc=1)
|
||||
if %winbuild% GTR 14393 for %%# in (EnterpriseS IoTEnterpriseS IoTEnterpriseSK) do (if /i %tsedition%==%%# set isltsc=1)
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" set isServer=1
|
||||
|
||||
if /i %tsedition%==Embedded (
|
||||
@@ -1116,7 +1119,7 @@ set w10EsuEditions=Education-EducationN-Enterprise-EnterpriseN-Professional-Prof
|
||||
|
||||
set minbuild=0
|
||||
if /i %tsedition%==ServerRdsh set minbuild=5552
|
||||
for %%# in (Core CoreN CoreCountrySpecific CoreSingleLanguage) do (if /i %tsedition%==%%# set minbuild=6156)
|
||||
for %%# in (Core CoreN CoreCountrySpecific CoreSingleLanguage IoTEnterprise) do (if /i %tsedition%==%%# set minbuild=6156)
|
||||
if /i %tsedition%==PPIPro set minbuild=6388
|
||||
|
||||
set /a UBR=0
|
||||
@@ -1140,15 +1143,18 @@ REM Windows8.1
|
||||
11be7019-a309-4763-9a09-091d1722ffe3_Client-FES-ESU-Year3[1-3y]_-EmbeddedIndustry-EmbeddedIndustryE-
|
||||
REM WindowsServer2012/2012R2
|
||||
55b1dd2d-2209-4ea0-a805-06298bad25b3_Server-ESU-Year3[1-3y]_-ServerDatacenter-ServerDatacenterCore-ServerDatacenterV-ServerDatacenterVCore-ServerStandard-ServerStandardCore-ServerStandardV-ServerStandardVCore-
|
||||
1b60284a-63b5-42da-8ec9-eaab825e2bc8_Server-ESU-Year5[4-5y]_-ServerDatacenter-ServerDatacenterCore-ServerDatacenterV-ServerDatacenterVCore-ServerStandard-ServerStandardCore-ServerStandardV-ServerStandardVCore-
|
||||
REM Windows10
|
||||
f520e45e-7413-4a34-a497-d2765967d094_Client-ESU-Year1_-%w10EsuEditions%-%w10EsuEditionsLaterAdded%
|
||||
1043add5-23b1-4afb-9a0f-64343c8f3f8d_Client-ESU-Year2_-%w10EsuEditions%-%w10EsuEditionsLaterAdded%
|
||||
83d49986-add3-41d7-ba33-87c7bfb5c0fb_Client-ESU-Year3_-%w10EsuEditions%-%w10EsuEditionsLaterAdded%
|
||||
0b533b5e-08b6-44f9-b885-c2de291ba456_Client-ESU-Year6[4-6y]_-%w10EsuEditions%-%w10EsuEditionsLaterAdded%
|
||||
b8527af1-5389-447c-9a88-2d1691ea33d3_Client-IoT-ESU-Year1_-IoTEnterprise-
|
||||
7b76ee02-0a75-4f08-85d5-bd0feadad0c0_Client-IoT-ESU-Year2_-IoTEnterprise-
|
||||
4dac5a0c-5709-4595-a32c-14a56a4a6b31_Client-IoT-ESU-Year3_-IoTEnterprise-
|
||||
f69e2d51-3bbd-4ddf-8da7-a145e9dca597_Client-IoT-ESU-Year6[4-6y]_-IoTEnterprise-
|
||||
REM WindowsServer2016
|
||||
91bcac0a-d7d3-4d2b-bd0c-72fed675f01b_Server-ESU-Year3[1-3y]_-ServerDatacenter-ServerDatacenterCore-ServerDatacenterV-ServerDatacenterVCore-ServerStandard-ServerStandardCore-ServerStandardV-ServerStandardVCore-
|
||||
4cd0ab30-73a4-4dde-972c-512f05be31df_Server-ESU-Year6[4-6y]_-ServerDatacenter-ServerDatacenterCore-ServerDatacenterV-ServerDatacenterVCore-ServerStandard-ServerStandardCore-ServerStandardV-ServerStandardVCore-
|
||||
REM Windows10LTSB2016
|
||||
f2571710-2c24-4677-8fb5-a07d41d3c1aa_Client-ESU-Year3[1-3y]_-EnterpriseS-EnterpriseSN-
|
||||
22badfe6-7d55-4485-874b-7ec317442134_Client-ESU-Year6[4-6y]_-EnterpriseS-EnterpriseSN-
|
||||
) do (
|
||||
for /f "tokens=1-3 delims=_" %%A in ("%%#") do (
|
||||
echo "%allapps%" | find /i "%%A" %nul1% && (
|
||||
@@ -1204,7 +1210,7 @@ goto :ts_off
|
||||
set esuavail=
|
||||
if defined _vis if defined isServer set esuavail=1
|
||||
if %winbuild% LEQ 7602 if not defined _vis if not defined isThinpc set esuavail=1
|
||||
if %winbuild% GTR 7602 if %winbuild% LSS 10240 if defined isServer set esuavail=1
|
||||
if %winbuild% GTR 7602 if %winbuild% LEQ 14393 if defined isServer set esuavail=1
|
||||
if %winbuild% GEQ 10240 if %winbuild% LEQ 19045 if not defined isServer set esuavail=1
|
||||
if %winbuild% EQU 9600 set esuavail=1
|
||||
|
||||
@@ -1322,9 +1328,9 @@ call :dk_color %Gray% "Checking Installed Office [Not Found]"
|
||||
|
||||
if defined ohub (
|
||||
echo:
|
||||
echo You only have the Office Dashboard app installed. You need to install the full version of Office.
|
||||
echo You only have the Office Dashboard app installed; you need to install the full version of Office.
|
||||
)
|
||||
call :dk_color %Blue% "Download and install Office from below URL and try again."
|
||||
call :dk_color %Blue% "Download and install Office from the URL below, then try again."
|
||||
if %_actwin%==0 set fixes=%fixes% %mas%genuine-installation-media
|
||||
call :dk_color %_Yellow% "%mas%genuine-installation-media"
|
||||
goto :ts_act
|
||||
@@ -1474,7 +1480,7 @@ call :ts_process
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: mass()grave(dot)dev/office-license-is-not-genuine
|
||||
:: mass{}grave{dot}dev/office-license-is-not-genuine
|
||||
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
||||
|
||||
set "kmskey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663"
|
||||
@@ -1552,10 +1558,10 @@ if %winbuild% GEQ 10586 (
|
||||
for %%# in ("%SysPath%\spp\tokens\skus\%tsedition%\*CSVLK*.xrm-ms") do (
|
||||
if defined _arr (set "_arr=!_arr!;"%SysPath%\spp\tokens\skus\%tsedition%\%%~nx#"") else (set "_arr="%SysPath%\spp\tokens\skus\%tsedition%\%%~nx#"")
|
||||
)
|
||||
if defined _arr %psc% "$sls = Get-WmiObject %sps%; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'" %nul%
|
||||
if defined _arr %psc% "$sls = Get-WmiObject %sps%; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'" %nul%
|
||||
)
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':wintsid\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':wintsid\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (
|
||||
echo "%%a" | findstr /r ".*-.*-.*-.*-.*" %nul1% && (set tsids=!tsids! %%a& set tempid=%%a)
|
||||
)
|
||||
|
||||
@@ -1749,7 +1755,7 @@ echo Processing Reset of Rearm / Timers / Tamper / Lock...
|
||||
echo:
|
||||
|
||||
set resetstuff=1
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':tsforge\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':tsforge\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
|
||||
if %errorlevel%==3 (
|
||||
call :dk_color %Red% "Reset Failed."
|
||||
@@ -1797,7 +1803,7 @@ if %errorlevel%==1 exit /b
|
||||
echo:
|
||||
echo Fetching Supported Activation IDs list. Please wait...
|
||||
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':listactids\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':listactids\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
if %errorlevel%==3 (
|
||||
call :dk_color %Gray% "No supported activation ID found, aborting..."
|
||||
goto :dk_done
|
||||
@@ -1947,13 +1953,13 @@ echo Writing TrustedStore data...
|
||||
if /i %tsmethod%==StaticCID (echo Depositing Static Confirmation ID...) else (echo Depositing Zero Confirmation ID...)
|
||||
)
|
||||
echo:
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':tsforge\:.*';. ([scriptblock]::Create($f[1])) %tsids%"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':tsforge\:.*';. ([scriptblock]::Create($f[1])) %tsids%"
|
||||
if !errorlevel!==3 (
|
||||
if %_actman%==0 (if not defined showfix call :dk_color %Blue% "%_fixmsg%")
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
) else (
|
||||
if /i %tsmethod%==KMS4k if %winbuild% GEQ 26100 (
|
||||
if /i %tsmethod%==KMS4k if %winbuild% GEQ 26100 if %_actwin%==1 (
|
||||
echo:
|
||||
call :dk_color %Gray% "In Windows settings, you may see a renewal notification for activation that can be ignored."
|
||||
if /i %_actmethod%==Auto call :dk_color %Gray% "To avoid this notification, run the script with an internet connection to use the StaticCID method."
|
||||
@@ -1964,7 +1970,7 @@ call :dk_color %Gray% "Windows Update gets 1-3 years of ESU; 4-6 are unofficial
|
||||
echo "%tsids%" | findstr /i "4afc620f-12a4-48ad-8015-2aebfbd6e47c 11be7019-a309-4763-9a09-091d1722ffe3" %nul1% && (
|
||||
call :dk_color %Gray% "ESU is not officially supported on Windows 8.1, but updates can be installed manually until January 2024."
|
||||
)
|
||||
echo "%tsids%" | findstr /i "0b533b5e-08b6-44f9-b885-c2de291ba456 f69e2d51-3bbd-4ddf-8da7-a145e9dca597" %nul1% && (
|
||||
echo "%tsids%" | findstr /i "83d49986-add3-41d7-ba33-87c7bfb5c0fb 0b533b5e-08b6-44f9-b885-c2de291ba456" %nul1% && (
|
||||
call :dk_color %Gray% "Windows Update gets 1-3 years of ESU; 4-6 are unofficial but may let you install LTSC updates manually."
|
||||
if exist %SysPath%\ClipESUConsumer.exe (%SysPath%\ClipESUConsumer.exe -evaluateEligibility)
|
||||
if exist %SysPath%\ClipESU.exe (%SysPath%\ClipESU.exe %nul%)
|
||||
@@ -2232,7 +2238,7 @@ echo !_License! | find /i "Retail" %nul% && (set keytype=zero) || (set keytype=k
|
||||
set keytype=zero
|
||||
)
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':offtsid\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':offtsid\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (
|
||||
echo "%%a" | findstr /r ".*-.*-.*-.*-.*" %nul1% && (set tsids=!tsids! %%a& set _actid=%%a)
|
||||
)
|
||||
set "_allactid=!tsids!"
|
||||
@@ -2353,7 +2359,7 @@ for %%# in ("!_oLPath!\%_License%*.xrm-ms") do (
|
||||
if defined _arr (set "_arr=!_arr!;"!_oLPath!\%%~nx#"") else (set "_arr="!_oLPath!\%%~nx#"")
|
||||
)
|
||||
|
||||
%psc% "$sls = Get-WmiObject %sps%; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'; InstallLicenseFile '"!_oLPath!\pkeyconfig-office.xrm-ms"'" %nul%
|
||||
%psc% "$sls = Get-WmiObject %sps%; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); InstallLicenseArr '!_arr!'; InstallLicenseFile '"!_oLPath!\pkeyconfig-office.xrm-ms"'" %nul%
|
||||
|
||||
call :dk_actids 0ff1ce15-a989-479d-af46-f275c6370663
|
||||
echo "!allapps!" | find /i "!_actid!" %nul1% || (
|
||||
@@ -2562,7 +2568,6 @@ if %upk_result%==1 echo Uninstalling Other/Grace Keys [Successful]
|
||||
if %upk_result%==2 (
|
||||
call :dk_color %Red% "Uninstalling Other/Grace Keys [Failed]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set showfix=1
|
||||
@@ -2578,8 +2583,8 @@ exit /b
|
||||
:oh_licrefresh
|
||||
|
||||
if exist "%SysPath%\spp\store_test\2.0\tokens.dat" (
|
||||
%psc% "Stop-Service sppsvc -force; $sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if !errorlevel! NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "Stop-Service sppsvc -force; $sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if !errorlevel! NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
)
|
||||
exit /b
|
||||
|
||||
@@ -2734,7 +2739,7 @@ for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Con
|
||||
if %_wmic% EQU 1 for /f "tokens=2 delims==" %%a in ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" %nul6%') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
if %_wmic% EQU 0 for /f "tokens=1" %%a in ('%psc% "([WMI]'Win32_OperatingSystem=@').OperatingSystemSKU" %nul6%') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
|
||||
if %winbuild% GEQ 15063 %psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':winsubstatus\:.*';. ([scriptblock]::Create($f[1]))" %nul2% | find /i "Subscription_is_activated" %nul% && (
|
||||
if %winbuild% GEQ 15063 %psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':winsubstatus\:.*';. ([scriptblock]::Create($f[1]))" %nul2% | find /i "Subscription_is_activated" %nul% && (
|
||||
if defined regSKU if defined slcSKU if not "%regSKU%"=="%slcSKU%" (
|
||||
set winsub=1
|
||||
set osSKU=%regSKU%
|
||||
@@ -2798,7 +2803,6 @@ echo %keyecho% %~1 [Successful]
|
||||
call :dk_color %Red% "%keyecho% %~1 [Failed] %keyerror%"
|
||||
if not defined showfix (
|
||||
if defined altapplist call :dk_color %Red% "Activation ID not found for this key."
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
set showfix=1
|
||||
@@ -2922,7 +2926,6 @@ if %spperror% NEQ 1056 if %spperror% NEQ 0 (
|
||||
%eline%
|
||||
echo sc start %_slser% [Error Code: %spperror%]
|
||||
if %spperror% EQU 1053 (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and try again."
|
||||
call :dk_color %Blue% "If it still does not work, go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
@@ -2991,20 +2994,19 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\
|
||||
set hcount=0
|
||||
for %%# in (avira.com kaspersky.com virustotal.com mcafee.com) do (
|
||||
find /i "%%#" %SysPath%\drivers\etc\hosts %nul% && set /a hcount+=1)
|
||||
if %hcount%==4 set "results=[Antivirus URLs are blocked in hosts]"
|
||||
if %hcount%==4 set "results=Antivirus URLs blocked in hosts file"
|
||||
|
||||
sc start %_slser% %nul%
|
||||
echo "%errorlevel%" | findstr "577 225" %nul% && (
|
||||
set "results=%results%[Likely File Infector]"
|
||||
set "results=%results%Likely File Infector"
|
||||
) || (
|
||||
if not exist %SysPath%\%_slexe% if not exist %SysPath%\alg.exe (set "results=%results%[Likely File Infector]")
|
||||
)
|
||||
|
||||
if not "%results%%pupfound%"=="" (
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators [Found%pupfound%]"
|
||||
if defined results call :dk_color %Red% "Checking Probable Mal%w%ware Infection..."
|
||||
if defined results (call :dk_color %Red% "%results%"&set showfix=1)
|
||||
echo:
|
||||
if defined pupfound call :dk_color %Gray% "Checking PUP Activators [%pupfound%]"
|
||||
if defined results call :dk_color %Red% "Checking for Mal%w%ware Infection... [%results%]"
|
||||
call :dk_color %Gray% "It is highly likely that your Windows install is infected with mal%w%ware. Windows cannot be activated."
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
echo:
|
||||
@@ -3032,7 +3034,6 @@ call :dk_chkmal
|
||||
sc query Null %nul% || (
|
||||
call :dk_color %Red% "Checking Sandboxing [Found, script may not work properly]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "If you are using any third-party antivirus, check if it is blocking the script."
|
||||
echo:
|
||||
)
|
||||
@@ -3048,7 +3049,6 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot
|
||||
|
||||
call :dk_color %Red% "Checking WinPE [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "WinPE mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -3063,7 +3063,6 @@ set showfix=1
|
||||
if defined safeboot_option (
|
||||
call :dk_color %Red% "Checking Boot Mode [%safeboot_option%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Safe mode found. Reboot the system and run in normal mode."
|
||||
echo:
|
||||
)
|
||||
@@ -3082,7 +3081,6 @@ if /i not "%imagestate%"=="IMAGE_STATE_COMPLETE" (
|
||||
call :dk_color %Gray% "Checking Windows Setup State [%imagestate%]"
|
||||
echo "%imagestate%" | find /i "RESEAL" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "You need to run it in normal mode in case you are running it in Audit Mode."
|
||||
echo:
|
||||
)
|
||||
@@ -3091,7 +3089,6 @@ set showfix=1
|
||||
)
|
||||
echo "%imagestate%" | find /i "UNDEPLOYABLE" %nul% && (
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If the activation fails, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3177,7 +3174,6 @@ if not defined showfix (
|
||||
echo:
|
||||
echo %serv_cste% | findstr /i "ClipSVC sppsvc" %nul% && (
|
||||
echo A registry fix has been applied to enable the disabled service.
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
) || (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
@@ -3218,7 +3214,6 @@ if not defined showfix (
|
||||
set listwospp=%_serv:sppsvc=%
|
||||
echo %serv_e% | findstr /i "!listwospp!" %nul% && (
|
||||
set showfix=1
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If service error is still not fixed, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -3250,7 +3245,6 @@ if defined wmifailed (
|
||||
call :dk_color %Red% "Checking WMI [Not Working]"
|
||||
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WMI option."
|
||||
echo:
|
||||
)
|
||||
@@ -3265,7 +3259,6 @@ set showfix=1
|
||||
if %winbuild% GEQ 7600 reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Plugins\Objects\msft:rm/algorithm/hwid/4.0" /f ba02fed39662 /d %nul% || (
|
||||
call :dk_color %Red% "Checking SPP Registry Key [Incorrect ModuleId Found] [Most likely caused by gaming spoofers]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%issues_due_to_gaming_spoofers
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%issues_due_to_gaming_spoofers"
|
||||
echo:
|
||||
@@ -3286,7 +3279,6 @@ if %winbuild% LSS 9200 set "tokenstore=%Systemdrive%\Windows\ServiceProfiles\Net
|
||||
if %winbuild% GEQ 9200 if /i not "!tokenstore!"=="%SysPath%\spp\store" if /i not "!tokenstore!"=="%SysPath%\spp\store\2.0" if /i not "!tokenstore!"=="%SysPath%\spp\store_test\2.0" (
|
||||
call :dk_color %Red% "Checking TokenStore Registry Key [Correct Path Not Found] [!tokenstore!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3317,7 +3309,6 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found, Creat
|
||||
) else (
|
||||
call :dk_color %Red% "Checking SPP Token Folder [Not Found, Failed to Create] [%tokenstore%\]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3362,7 +3353,6 @@ if !errorlevel!==3 set "permerror=Error Found In S-1-5-20 SPP"
|
||||
if defined permerror (
|
||||
call :dk_color %Red% "Checking SPP Permissions [!permerror!]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -3377,14 +3367,13 @@ set showfix=1
|
||||
|
||||
set chkalp=
|
||||
set wpainfo=NotFound
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':wpatest\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set wpainfo=%%a)
|
||||
for /f "delims=0123456789" %%i in ("%wpainfo%") do set chkalp=%%i
|
||||
|
||||
if defined chkalp (
|
||||
call :dk_color %Red% "Checking WPA Registry Errors [%wpainfo%]"
|
||||
if not defined showfix (
|
||||
echo "%wpainfo%" | find /i "Error Found" %nul% && (
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
set error=1
|
||||
@@ -3397,7 +3386,6 @@ set wpainfo=a
|
||||
if not defined chkalp (
|
||||
if %wpainfo% GEQ 5000 (
|
||||
call :dk_color %Gray% "Checking WPA Registry Count [%wpainfo%]"
|
||||
echo:
|
||||
call :dk_color %Blue% "A large number of WPA registries have been found, which may cause high CPU usage."
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3413,7 +3401,6 @@ echo Checking WPA Registry Count [%wpainfo%]
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\PersistedTSReArmed" %nul% && (
|
||||
call :dk_color %Red% "Checking Rearm [System is Rearmed]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -3425,7 +3412,6 @@ set showfix=1
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ClipSVC\Volatile\PersistedSystemState" %nul% && (
|
||||
call :dk_color %Red% "Checking ClipSVC PersistedSystemState [Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option to fix this error."
|
||||
echo:
|
||||
)
|
||||
@@ -3440,7 +3426,6 @@ set showfix=1
|
||||
if %error_code% NEQ 0 (
|
||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3456,7 +3441,7 @@ set showfix=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
if not defined apps (
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "if (-not $env:_vis) {Start-Job { Stop-Service %_slser% -force } | Wait-Job -Timeout 20 | Out-Null}; $sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if not defined _vis if !errorlevel! NEQ 0 set rlicfailed=1
|
||||
call :dk_actid 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
)
|
||||
@@ -3470,7 +3455,6 @@ call :dk_color %Gray% "Checking Activation IDs [Key Not Installe
|
||||
if not defined apps if not defined allapps (
|
||||
call :dk_color %Red% "Checking Activation IDs [Not found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3480,7 +3464,6 @@ set showfix=1
|
||||
)
|
||||
|
||||
if not defined showfix if defined rlicfailed (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
echo:
|
||||
@@ -3498,7 +3481,6 @@ if not defined notwinact if exist "%SystemRoot%\Servicing\Packages\Microsoft-Win
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Eval" %nul1% || (
|
||||
call :dk_color %Red% "Checking Eval Packages [License swapping found. Non-Eval licenses are installed in Eval Windows]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "License swapping is not the right way to upgrade to the full version. Learn the correct method at the link below."
|
||||
set fixes=%fixes% %mas%evaluation_editions
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%evaluation_editions"
|
||||
@@ -3516,7 +3498,6 @@ set showfix=1
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion" %nul% || (
|
||||
call :dk_color %Red% "Checking HKU\S-1-5-20 Registry [Not Found]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
@@ -3554,6 +3535,13 @@ call :dk_color %Red% "Checking License Files [Not Found] [%osed
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*-%osedition%-*.mum" (
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-%osedition%Edition*.mum" (
|
||||
call :dk_color %Red% "Checking Package Files [Not Found] [%osedition%]"
|
||||
if not defined showfix (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
echo:
|
||||
)
|
||||
set error=1
|
||||
set showfix=1
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -3600,7 +3588,6 @@ if defined _sppint (
|
||||
echo %_sppint% | find /i "PerfOptions" %nul% && (
|
||||
call :dk_color %Red% "Checking SPP Interference In IFEO [%_sppint% - System might deactivate later]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
echo:
|
||||
)
|
||||
@@ -3635,7 +3622,6 @@ if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||
|
||||
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||
if not defined showfix (
|
||||
echo:
|
||||
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
@@ -3737,7 +3723,7 @@ if %_unattended%==1 timeout /t 2 & exit /b
|
||||
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
@@ -8852,27 +8838,27 @@ namespace LibTSforge.PhysicalStore
|
||||
}
|
||||
'@
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$binPath = "$env:_work\BIN\LibTSforge.dll"
|
||||
$psMajorVer = (Get-Host).Version.Major
|
||||
$build = [System.Environment]::OSVersion.Version.Build
|
||||
|
||||
if (Test-Path -LiteralPath $binPath) {
|
||||
Write-Host "LibTSforge.dll found in BIN folder. Loading the DLL..."
|
||||
Add-Type -Path $binPath
|
||||
}
|
||||
else {
|
||||
$cp = [CodeDom.Compiler.CompilerParameters] [string[]]@("System.dll", "System.Core.dll", "System.ServiceProcess.dll", "System.Xml.dll", "System.Xml.Linq.dll")
|
||||
if ($psMajorVer -le 2) { $cp.CompilerOptions = "/define:POWERSHELL2 /unsafe" } else { $cp.CompilerOptions = "/unsafe" }
|
||||
$lang = if ($psMajorVer -gt 2) { "CSharp" } else { "CSharpVersion3" }
|
||||
$cp = [CodeDom.Compiler.CompilerParameters] [string[]]@("System.dll", "System.Core.dll", "System.ServiceProcess.dll", "System.Xml.dll", "System.Xml.Linq.dll")
|
||||
if ($psMajorVer -le 2) { $cp.CompilerOptions = "/define:POWERSHELL2 /unsafe" } else { $cp.CompilerOptions = "/unsafe" }
|
||||
$lang = if ($psMajorVer -gt 2) { "CSharp" } else { "CSharpVersion3" }
|
||||
|
||||
$ctemp = "$env:SystemRoot\Temp\"
|
||||
if (-Not (Test-Path -Path $ctemp)) { New-Item -Path $ctemp -ItemType Directory > $null }
|
||||
$env:TMP = $ctemp
|
||||
$env:TEMP = $ctemp
|
||||
$ctemp = "$env:SystemRoot\Temp\$([Guid]::NewGuid().Guid)\"
|
||||
if (-Not (Test-Path -Path $ctemp)) { New-Item -Path $ctemp -ItemType Directory > $null }
|
||||
$env:TMP = $ctemp
|
||||
$env:TEMP = $ctemp
|
||||
|
||||
$cp.GenerateInMemory = $true
|
||||
Add-Type -Language $lang -TypeDefinition $src -CompilerParameters $cp
|
||||
$cp.GenerateInMemory = $true
|
||||
Add-Type -Language $lang -TypeDefinition $src -CompilerParameters $cp
|
||||
|
||||
try {
|
||||
$cp.TempFiles.Dispose()
|
||||
} catch {
|
||||
# Older .NET Framework versions do not have that method, but they also don't create the folder that it removes.
|
||||
}
|
||||
Remove-Item -Path $ctemp
|
||||
|
||||
if ($env:_debug -eq '0') {
|
||||
[LibTSforge.Logger]::HideOutput = $true
|
||||
@@ -8974,7 +8960,7 @@ if (-not $env:resetstuff) {
|
||||
if ($env:tsmethod -eq "KMS4k") {
|
||||
if ($build -ge 26100) {
|
||||
Write-Host "[$prodName] is activated with KMS4k for over 4,000 years." -ForegroundColor White -BackgroundColor DarkGreen
|
||||
Write-Host "From build 26100.7019, Windows will always display and stay at 180 days remaining if the actual period is longer." -ForegroundColor White -BackgroundColor Darkgray
|
||||
Write-Host "From build 26100.7019, Windows will always display a remaining activation period of 180 days in Settings." -ForegroundColor White -BackgroundColor Darkgray
|
||||
}
|
||||
else {
|
||||
Write-Host "[$prodName] is activated till $([DateTime]::Now.AddMinutes($GracePeriodStatus).ToString('yyyy-MM-dd HH:mm:ss')) with $env:tsmethod." -ForegroundColor White -BackgroundColor DarkGreen
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -60,9 +59,9 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -201,7 +200,7 @@ goto dk_done
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -215,7 +214,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto dk_done
|
||||
@@ -225,7 +223,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -236,7 +233,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto dk_done
|
||||
@@ -248,7 +244,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -269,7 +264,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -398,7 +392,6 @@ if %_wmic% EQU 0 set "chkedi=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISE
|
||||
if %osedition%==0 (
|
||||
%eline%
|
||||
echo Failed to detect OS Edition. Aborting...
|
||||
echo:
|
||||
call :dk_color %Blue% "To fix this issue, activate Windows from the main menu."
|
||||
goto dk_done
|
||||
)
|
||||
@@ -418,7 +411,6 @@ if not defined o16c2r_reg (
|
||||
%eline%
|
||||
echo Office C2R 2016 or later is not installed, which is required for this script.
|
||||
echo Download and install Office from below URL and try again.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%genuine-installation-media
|
||||
call :dk_color %_Yellow% "%mas%genuine-installation-media"
|
||||
goto dk_done
|
||||
@@ -435,7 +427,6 @@ if %verchk% LSS 9029 (
|
||||
echo Installed Office version is %_version%.
|
||||
echo Minimum required version is 16.0.9029.2167
|
||||
echo Aborting...
|
||||
echo:
|
||||
call :dk_color %Blue% "Download and install latest Office from below URL and try again."
|
||||
set fixes=%fixes% %mas%genuine-installation-media
|
||||
call :dk_color %_Yellow% "%mas%genuine-installation-media"
|
||||
@@ -458,7 +449,6 @@ _masterxml
|
||||
if not defined %%A (
|
||||
%eline%
|
||||
echo Failed to find %%A. Aborting...
|
||||
echo:
|
||||
call :dk_color %Blue% "Download and install Office from below URL and try again."
|
||||
set fixes=%fixes% %mas%genuine-installation-media
|
||||
call :dk_color %_Yellow% "%mas%genuine-installation-media"
|
||||
@@ -471,7 +461,6 @@ if %winbuild% LSS 10240 if defined ltscfound (
|
||||
echo Installed Office appears to be from the Volume channel %ltsc19%%ltsc21%%ltsc24%,
|
||||
echo which is not officially supported on your Windows build version %winbuild%.
|
||||
echo Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -485,12 +474,24 @@ if defined unsupbuild (
|
||||
%eline%
|
||||
echo Unsupported Office %verchk% is installed on your Windows build version %winbuild%.
|
||||
echo Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
set "o_randguid="
|
||||
for /f %%G in ('%psc% "[Guid]::NewGuid().Guid" ^| findstr /r "^[0123456789abcdef]*-[0123456789abcdef]*-[0123456789abcdef]*-[0123456789abcdef]*-[0123456789abcdef]*$"') do set "o_randguid=%%G"
|
||||
if not defined o_randguid (
|
||||
set "o_randguid="
|
||||
%eline%
|
||||
echo Unable to generate GUID with PowerShell.
|
||||
echo Aborting...
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
)
|
||||
md "%SystemRoot%\Temp\%o_randguid%\"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:oemenu
|
||||
@@ -579,7 +580,7 @@ cls
|
||||
set editedition=
|
||||
call :ch_getinfo
|
||||
call :oe_tempcleanup
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':getlist\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':getlist\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
|
||||
:oe_editionchange
|
||||
|
||||
@@ -589,10 +590,9 @@ mode 98, 45
|
||||
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=44;$B.Height=100;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %nul%
|
||||
)
|
||||
|
||||
if not exist %SystemRoot%\Temp\%list%.txt (
|
||||
if not exist %SystemRoot%\Temp\%o_randguid%\%list%.txt (
|
||||
%eline%
|
||||
echo Failed to generate available editions list.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto :oe_goback
|
||||
@@ -612,7 +612,7 @@ if %winbuild% LSS 10240 (
|
||||
echo Unsupported products such as 2019/2021/2024 are excluded from this list.
|
||||
) else (
|
||||
for %%# in (2019 2021 2024) do (
|
||||
find /i "%%#" "%SystemRoot%\Temp\%list%.txt" %nul1% || (
|
||||
find /i "%%#" "%SystemRoot%\Temp\%o_randguid%\%list%.txt" %nul1% || (
|
||||
if defined _notfound (set _notfound=%%#, !_notfound!) else (set _notfound=%%#)
|
||||
)
|
||||
)
|
||||
@@ -621,7 +621,7 @@ if defined _notfound call :dk_color %Gray% "Office !_notfound! is not in this li
|
||||
%line%
|
||||
echo:
|
||||
|
||||
for /f "usebackq delims=" %%A in (%SystemRoot%\Temp\%list%.txt) do (
|
||||
for /f "usebackq delims=" %%A in (%SystemRoot%\Temp\%o_randguid%\%list%.txt) do (
|
||||
set /a counter+=1
|
||||
if !counter! LSS 10 (
|
||||
echo [!counter!] %%A
|
||||
@@ -653,11 +653,10 @@ cls
|
||||
set suites=
|
||||
echo %list% | find /i "Suites" %nul1% && (
|
||||
set suites=1
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':getappnames\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
if not exist %SystemRoot%\Temp\getAppIds.txt (
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':getappnames\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
if not exist %SystemRoot%\Temp\%o_randguid%\getAppIds.txt (
|
||||
%eline%
|
||||
echo Failed to generate available apps list.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto :oe_goback
|
||||
@@ -677,7 +676,7 @@ Visio
|
||||
Word
|
||||
) do (
|
||||
if defined suites (
|
||||
find /i "%%#" "%SystemRoot%\Temp\getAppIds.txt" %nul1% && (set %%#_st=On) || (set %%#_st=)
|
||||
find /i "%%#" "%SystemRoot%\Temp\%o_randguid%\getAppIds.txt" %nul1% && (set %%#_st=On) || (set %%#_st=)
|
||||
) else (
|
||||
set %%#_st=
|
||||
)
|
||||
@@ -687,6 +686,11 @@ if defined Lync_st set Lync_st=Off
|
||||
set OneDrive_st=Off
|
||||
if defined suites (set Teams_st=Off) else (set Teams_st=)
|
||||
|
||||
set OutlookForWindows_st=
|
||||
if %winbuild% GEQ 19041 if defined Outlook_st echo %targetedition% | find /i "O365" %nul1% && (
|
||||
set OutlookForWindows_st=Off
|
||||
)
|
||||
|
||||
:oe_excludeapps
|
||||
|
||||
cls
|
||||
@@ -699,19 +703,20 @@ call :dk_color %Gray% "To exclude the apps listed below from installation, toggl
|
||||
if defined editedition call :dk_color %Gray% "Note: The On/Off status below does not reflect the current status of the installed apps."
|
||||
%line%
|
||||
if defined suites echo:
|
||||
if defined Access_st echo [A] Access : %Access_st%
|
||||
if defined Excel_st echo [E] Excel : %Excel_st%
|
||||
if defined OneNote_st echo [N] OneNote : %OneNote_st%
|
||||
if defined Outlook_st echo [O] Outlook : %Outlook_st%
|
||||
if defined PowerPoint_st echo [P] PowerPoint : %PowerPoint_st%
|
||||
if defined Project_st echo [J] Project : %Project_st%
|
||||
if defined Publisher_st echo [R] Publisher : %Publisher_st%
|
||||
if defined Visio_st echo [V] Visio : %Visio_st%
|
||||
if defined Word_st echo [W] Word : %Word_st%
|
||||
if defined Access_st echo [A] Access : %Access_st%
|
||||
if defined Excel_st echo [E] Excel : %Excel_st%
|
||||
if defined OneNote_st echo [N] OneNote : %OneNote_st%
|
||||
if defined Outlook_st echo [O] Outlook ^(Classic^) : %Outlook_st%
|
||||
if defined PowerPoint_st echo [P] PowerPoint : %PowerPoint_st%
|
||||
if defined Project_st echo [J] Project : %Project_st%
|
||||
if defined Publisher_st echo [R] Publisher : %Publisher_st%
|
||||
if defined Visio_st echo [V] Visio : %Visio_st%
|
||||
if defined Word_st echo [W] Word : %Word_st%
|
||||
echo:
|
||||
if defined Lync_st echo [L] SkypeForBusiness : %Lync_st%
|
||||
if defined OneDrive_st echo [D] OneDrive : %OneDrive_st%
|
||||
if defined Teams_st echo [T] Teams : %Teams_st%
|
||||
if defined Lync_st echo [L] SkypeForBusiness : %Lync_st%
|
||||
if defined OutlookForWindows_st echo [K] Outlook ^(New^) : %OutlookForWindows_st%
|
||||
if defined OneDrive_st echo [D] OneDrive : %OneDrive_st%
|
||||
if defined Teams_st echo [T] Teams : %Teams_st%
|
||||
%line%
|
||||
echo:
|
||||
echo [1] Continue
|
||||
@@ -719,22 +724,23 @@ echo [0] Go Back
|
||||
%line%
|
||||
echo:
|
||||
call :dk_color %_Green% "Choose a menu option using your keyboard:"
|
||||
choice /C:AENOPJRVWLDT10 /N
|
||||
choice /C:AENOPJRVWLKDT10 /N
|
||||
set _el=!errorlevel!
|
||||
if !_el!==14 goto :oemenu
|
||||
if !_el!==13 call :excludelist & goto :oe_editionchangefinal
|
||||
if !_el!==12 if defined Teams_st (if "%Teams_st%"=="Off" (set Teams_st=ON) else (set Teams_st=Off))
|
||||
if !_el!==11 if defined OneDrive_st (if "%OneDrive_st%"=="Off" (set OneDrive_st=ON) else (set OneDrive_st=Off))
|
||||
if !_el!==10 if defined Lync_st (if "%Lync_st%"=="Off" (set Lync_st=ON) else (set Lync_st=Off))
|
||||
if !_el!==9 if defined Word_st (if "%Word_st%"=="Off" (set Word_st=ON) else (set Word_st=Off))
|
||||
if !_el!==8 if defined Visio_st (if "%Visio_st%"=="Off" (set Visio_st=ON) else (set Visio_st=Off))
|
||||
if !_el!==7 if defined Publisher_st (if "%Publisher_st%"=="Off" (set Publisher_st=ON) else (set Publisher_st=Off))
|
||||
if !_el!==6 if defined Project_st (if "%Project_st%"=="Off" (set Project_st=ON) else (set Project_st=Off))
|
||||
if !_el!==5 if defined PowerPoint_st (if "%PowerPoint_st%"=="Off" (set PowerPoint_st=ON) else (set PowerPoint_st=Off))
|
||||
if !_el!==4 if defined Outlook_st (if "%Outlook_st%"=="Off" (set Outlook_st=ON) else (set Outlook_st=Off))
|
||||
if !_el!==3 if defined OneNote_st (if "%OneNote_st%"=="Off" (set OneNote_st=ON) else (set OneNote_st=Off))
|
||||
if !_el!==2 if defined Excel_st (if "%Excel_st%"=="Off" (set Excel_st=ON) else (set Excel_st=Off))
|
||||
if !_el!==1 if defined Access_st (if "%Access_st%"=="Off" (set Access_st=ON) else (set Access_st=Off))
|
||||
if !_el!==15 goto :oemenu
|
||||
if !_el!==14 call :excludelist & goto :oe_editionchangefinal
|
||||
if !_el!==13 if defined Teams_st (if "%Teams_st%"=="Off" (set Teams_st=ON) else (set Teams_st=Off))
|
||||
if !_el!==12 if defined OneDrive_st (if "%OneDrive_st%"=="Off" (set OneDrive_st=ON) else (set OneDrive_st=Off))
|
||||
if !_el!==11 if defined OutlookForWindows_st (if "%OutlookForWindows_st%"=="Off" (set OutlookForWindows_st=ON) else (set OutlookForWindows_st=Off))
|
||||
if !_el!==10 if defined Lync_st (if "%Lync_st%"=="Off" (set Lync_st=ON) else (set Lync_st=Off))
|
||||
if !_el!==9 if defined Word_st (if "%Word_st%"=="Off" (set Word_st=ON) else (set Word_st=Off))
|
||||
if !_el!==8 if defined Visio_st (if "%Visio_st%"=="Off" (set Visio_st=ON) else (set Visio_st=Off))
|
||||
if !_el!==7 if defined Publisher_st (if "%Publisher_st%"=="Off" (set Publisher_st=ON) else (set Publisher_st=Off))
|
||||
if !_el!==6 if defined Project_st (if "%Project_st%"=="Off" (set Project_st=ON) else (set Project_st=Off))
|
||||
if !_el!==5 if defined PowerPoint_st (if "%PowerPoint_st%"=="Off" (set PowerPoint_st=ON) else (set PowerPoint_st=Off))
|
||||
if !_el!==4 if defined Outlook_st (if "%Outlook_st%"=="Off" (set Outlook_st=ON) else (set Outlook_st=Off))
|
||||
if !_el!==3 if defined OneNote_st (if "%OneNote_st%"=="Off" (set OneNote_st=ON) else (set OneNote_st=Off))
|
||||
if !_el!==2 if defined Excel_st (if "%Excel_st%"=="Off" (set Excel_st=ON) else (set Excel_st=Off))
|
||||
if !_el!==1 if defined Access_st (if "%Access_st%"=="Off" (set Access_st=ON) else (set Access_st=Off))
|
||||
goto :oe_excludeapps
|
||||
|
||||
:excludelist
|
||||
@@ -751,6 +757,7 @@ publisher
|
||||
visio
|
||||
word
|
||||
lync
|
||||
outlookforwindows
|
||||
onedrive
|
||||
teams
|
||||
) do (
|
||||
@@ -810,7 +817,6 @@ if /i "%_lang%"=="%%#" set langmatched=1
|
||||
if not defined langmatched (
|
||||
%eline%
|
||||
echo %_lang% language is not available for Project/Visio apps.
|
||||
echo:
|
||||
call :dk_color %Blue% "Install Office in the supported language for Project/Visio from the below URL."
|
||||
set fixes=%fixes% %mas%genuine-installation-media
|
||||
call :dk_color %_Yellow% "%mas%genuine-installation-media"
|
||||
@@ -1071,20 +1077,19 @@ call :dk_color %Gray% "Installed Office editions: %_oIds%"
|
||||
echo:
|
||||
|
||||
for %%# in (
|
||||
"5440fd1f-7ecb-4221-8110-145efaa6372f_Insider Fast [Beta] - Insiders::DevMain -"
|
||||
"64256afe-f5d9-4f86-8936-8840a6a4f5be_Monthly Preview - Insiders::CC -"
|
||||
"492350f6-3a01-4f97-b9c0-c7c6ddf67d60_Monthly [Current] - Production::CC -"
|
||||
"55336b82-a18d-4dd6-b5f6-9e5095c314a6_Monthly Enterprise - Production::MEC -"
|
||||
"b8f9b850-328d-4355-9145-c59439a0c4cf_Semi Annual Preview - Insiders::FRDC -"
|
||||
"7ffbc6bf-bc32-4f92-8982-f9dd17fd3114_Semi Annual - Production::DC -"
|
||||
"ea4a4090-de26-49d7-93c1-91bff9e53fc3_DevMain Channel - Dogfood::DevMain -"
|
||||
"b61285dd-d9f7-41f2-9757-8f61cba4e9c8_Microsoft Elite - Microsoft::DevMain -"
|
||||
"f2e724c1-748f-4b47-8fb8-8e0d210e9208_Perpetual2019 VL - Production::LTSC -"
|
||||
"1d2d2ea6-1680-4c56-ac58-a441c8c24ff9_Microsoft2019 VL - Microsoft::LTSC -"
|
||||
"5030841d-c919-4594-8d2d-84ae4f96e58e_Perpetual2021 VL - Production::LTSC2021 -"
|
||||
"86752282-5841-4120-ac80-db03ae6b5fdb_Microsoft2021 VL - Microsoft::LTSC2021 -"
|
||||
"7983bac0-e531-40cf-be00-fd24fe66619c_Perpetual2024 VL - Production::LTSC2024 -"
|
||||
"c02d8fe6-5242-4da8-972f-82ee55e00671_Microsoft2024 VL - Microsoft::LTSC2024 -"
|
||||
"5440fd1f-7ecb-4221-8110-145efaa6372f_Beta / Insider Fast - Insiders::DevMain -"
|
||||
"64256afe-f5d9-4f86-8936-8840a6a4f5be_Current / Monthly Preview - Insiders::CC -"
|
||||
"492350f6-3a01-4f97-b9c0-c7c6ddf67d60_Current / Monthly - Production::CC -"
|
||||
"55336b82-a18d-4dd6-b5f6-9e5095c314a6_Monthly Enterprise - Production::MEC -"
|
||||
"7ffbc6bf-bc32-4f92-8982-f9dd17fd3114_Semi Annual Enterprise - Production::DC -"
|
||||
"ea4a4090-de26-49d7-93c1-91bff9e53fc3_DevMain Channel - Dogfood::DevMain -"
|
||||
"b61285dd-d9f7-41f2-9757-8f61cba4e9c8_Microsoft Elite - Microsoft::DevMain -"
|
||||
"f2e724c1-748f-4b47-8fb8-8e0d210e9208_Perpetual2019 VL - Production::LTSC -"
|
||||
"1d2d2ea6-1680-4c56-ac58-a441c8c24ff9_Microsoft2019 VL - Microsoft::LTSC -"
|
||||
"5030841d-c919-4594-8d2d-84ae4f96e58e_Perpetual2021 VL - Production::LTSC2021 -"
|
||||
"86752282-5841-4120-ac80-db03ae6b5fdb_Microsoft2021 VL - Microsoft::LTSC2021 -"
|
||||
"7983bac0-e531-40cf-be00-fd24fe66619c_Perpetual2024 VL - Production::LTSC2024 -"
|
||||
"c02d8fe6-5242-4da8-972f-82ee55e00671_Microsoft2024 VL - Microsoft::LTSC2024 -"
|
||||
) do (
|
||||
for /f "tokens=1-2 delims=_" %%A in ("%%~#") do (
|
||||
set bypass=
|
||||
@@ -1133,7 +1138,7 @@ if not defined terminal mode 105, 32
|
||||
:: Get build number for the target FFN, using build number with OfficeC2RClient.exe command to trigger updates provides accurate results
|
||||
|
||||
set build=
|
||||
for /f "delims=" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':getbuild\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set build=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':getbuild\:.*';. ([scriptblock]::Create($f[1]))" %nul6%') do (set build=%%a)
|
||||
echo "%build%" | find /i "16." %nul% || set build=
|
||||
|
||||
echo:
|
||||
@@ -1178,7 +1183,6 @@ goto :oe_goback
|
||||
if not defined build (
|
||||
%eline%
|
||||
call :dk_color %Red% "Failed to detect build number for the target FFN."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto :oe_goback
|
||||
@@ -1216,7 +1220,6 @@ for /l %%i in (1,1,30) do (if !clverchk! LSS %buildchk% (call :ch_getinfo&timeou
|
||||
if %clverchk% LSS %buildchk% (
|
||||
echo:
|
||||
call :dk_color %Red% "Failed to update Office C2R client. Aborting..."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto :oe_goback
|
||||
@@ -1248,7 +1251,7 @@ call :oe_tempcleanup
|
||||
echo:
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 goto :oemenu
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
@@ -1297,11 +1300,11 @@ exit /b
|
||||
|
||||
:oe_tempcleanup
|
||||
|
||||
del /f /q %SystemRoot%\Temp\SingleApps_Volume.txt %nul%
|
||||
del /f /q %SystemRoot%\Temp\SingleApps_Retail.txt %nul%
|
||||
del /f /q %SystemRoot%\Temp\Suites_Volume.txt %nul%
|
||||
del /f /q %SystemRoot%\Temp\Suites_Retail.txt %nul%
|
||||
del /f /q %SystemRoot%\Temp\getAppIds.txt %nul%
|
||||
del %SystemRoot%\Temp\%o_randguid%\SingleApps_Volume.txt %nul%
|
||||
del %SystemRoot%\Temp\%o_randguid%\SingleApps_Retail.txt %nul%
|
||||
del %SystemRoot%\Temp\%o_randguid%\Suites_Volume.txt %nul%
|
||||
del %SystemRoot%\Temp\%o_randguid%\Suites_Retail.txt %nul%
|
||||
del %SystemRoot%\Temp\%o_randguid%\getAppIds.txt %nul%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
@@ -1455,7 +1458,7 @@ if ($windowsBuild -lt 9200) {
|
||||
:getlist:
|
||||
$xmlPath1 = $env:_c2rXml
|
||||
$xmlPath2 = $env:_masterxml
|
||||
$outputDir = $env:SystemRoot + "\Temp\"
|
||||
$outputDir = $env:SystemRoot + "\Temp\$env:o_randguid\"
|
||||
$buildNumber = [System.Environment]::OSVersion.Version.Build
|
||||
$excludedKeywords = @("2019", "2021", "2024")
|
||||
$productReleaseIds = @()
|
||||
@@ -1515,7 +1518,7 @@ foreach ($section in $categories.Keys) {
|
||||
:getappnames:
|
||||
$xmlPath = $env:_masterxml
|
||||
$targetSkuId = $env:targetedition
|
||||
$outputDir = $env:SystemRoot + "\Temp\"
|
||||
$outputDir = $env:SystemRoot + "\Temp\$env:o_randguid\"
|
||||
$outputFile = Join-Path -Path $outputDir -ChildPath "getAppIds.txt"
|
||||
$excludeIds = @("shared", "PowerPivot", "PowerView", "MondoOnly", "OSM", "OSMUX", "Groove", "DCF")
|
||||
|
||||
@@ -1619,7 +1622,6 @@ if %spperror% NEQ 1056 if %spperror% NEQ 0 (
|
||||
%eline%
|
||||
echo sc start %_slser% [Error Code: %spperror%]
|
||||
if %spperror% EQU 1053 (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and try again."
|
||||
call :dk_color %Blue% "If it still does not work, go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
@@ -1671,7 +1673,7 @@ if %_unattended%==1 timeout /t 2 & exit /b
|
||||
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -36,6 +35,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
@@ -65,9 +76,9 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -86,8 +97,7 @@ cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
>nul findstr /v "$" "%_cmdf%" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
@@ -96,10 +106,8 @@ echo Check this webpage for help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -165,10 +173,9 @@ goto dk_done
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_batp=%_cmdf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg="""%_cmdf%""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
@@ -177,7 +184,7 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
echo "!_cmdf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
@@ -206,7 +213,7 @@ goto dk_done
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -220,7 +227,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto dk_done
|
||||
@@ -230,7 +236,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -241,7 +246,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto dk_done
|
||||
@@ -253,7 +257,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -274,7 +277,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -312,11 +314,11 @@ reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% && set resetQE
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f %nul1%
|
||||
|
||||
if defined terminal (
|
||||
start conhost.exe "!_batf!" %_args% -qedit
|
||||
start conhost.exe "!_cmdf!" %_args% -qedit
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
) else if %resetQE% EQU 1 (
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
start cmd.exe /c ""!_cmdf!" %_args% -qedit"
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
)
|
||||
@@ -396,10 +398,8 @@ dism.exe
|
||||
if not exist %SysPath%\%%# (
|
||||
%eline%
|
||||
echo [%SysPath%\%%#] file is missing, aborting...
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run DISM Restore and SFC Scan options."
|
||||
call :dk_color %Blue% "After that, restart system and try activation again."
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "If it still shows the same error, do this - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -432,7 +432,6 @@ call :dk_actids 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
if not defined allapps (
|
||||
%eline%
|
||||
echo Failed to find activation IDs. Aborting...
|
||||
echo:
|
||||
call :dk_color %Blue% "To fix this issue, activate Windows from the main menu."
|
||||
goto dk_done
|
||||
)
|
||||
@@ -454,7 +453,6 @@ if not defined osedition %chkedi% do if not errorlevel 1 (call set "osedition=%%
|
||||
if not defined osedition (
|
||||
%eline%
|
||||
echo Failed to detect OS edition, aborting...
|
||||
echo:
|
||||
call :dk_color %Blue% "To fix this issue, activate Windows from the main menu."
|
||||
goto dk_done
|
||||
)
|
||||
@@ -478,7 +476,7 @@ set _ntarget=
|
||||
set _wtarget=
|
||||
|
||||
if %winbuild% GEQ 10240 for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do (if defined _dtarget (set "_dtarget= !_dtarget! %%a ") else (set "_dtarget= %%a "))
|
||||
if %winbuild% LSS 10240 for /f "tokens=4" %%a in ('%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':cbsxml\:.*';. ([scriptblock]::Create($f[1])) -GetTargetEditions;" ^| findstr /i /c:"Target Edition : "') do (if defined _ptarget (set "_ptarget= !_ptarget! %%a ") else (set "_ptarget= %%a "))
|
||||
if %winbuild% LSS 10240 for /f "tokens=4" %%a in ('%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':cbsxml\:.*';. ([scriptblock]::Create($f[1])) -GetTargetEditions;" ^| findstr /i /c:"Target Edition : "') do (if defined _ptarget (set "_ptarget= !_ptarget! %%a ") else (set "_ptarget= %%a "))
|
||||
|
||||
if %winbuild% GEQ 10240 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" (
|
||||
if %winbuild% GEQ 17063 call :ced_edilist
|
||||
@@ -619,7 +617,6 @@ if not defined key (
|
||||
%eline%
|
||||
echo [%targetedition% ^| %winbuild%]
|
||||
echo Failed to get product key from pkeyhelper.dll.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -674,7 +671,6 @@ echo:
|
||||
call :dk_color %Gray% "Reboot is required to fully change the edition."
|
||||
) else (
|
||||
call :dk_color %Red% "[Unsuccessful] [Error Code: !keyerror!]"
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
)
|
||||
@@ -688,7 +684,7 @@ echo:
|
||||
call :ced_prep
|
||||
if defined preperror goto dk_done
|
||||
|
||||
%psc% "$f=[System.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%"
|
||||
call :ced_postprep
|
||||
)
|
||||
%line%
|
||||
@@ -726,7 +722,7 @@ call :ced_prep
|
||||
if defined preperror goto dk_done
|
||||
|
||||
if %_stg%==0 (set stage=) else (set stage=-StageCurrent)
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':cbsxml\:.*';. ([scriptblock]::Create($f[1])) -SetEdition %targetedition% %stage%"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':cbsxml\:.*';. ([scriptblock]::Create($f[1])) -SetEdition %targetedition% %stage%"
|
||||
call :ced_postprep
|
||||
%line%
|
||||
|
||||
@@ -755,7 +751,6 @@ if not defined key (
|
||||
%eline%
|
||||
echo [%targetedition% ^| %winbuild%]
|
||||
echo Failed to get product key from pkeyhelper.dll.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -840,8 +835,8 @@ exit /b
|
||||
|
||||
:: https://stackoverflow.com/a/46268232
|
||||
|
||||
set "ddf="%SystemRoot%\Temp\%Random%%Random%%Random%%Random%""
|
||||
%nul% del /q /f %ddf%
|
||||
for /f %%G in ('%psc% "[Guid]::NewGuid().Guid"') do set "randguid=%%G"
|
||||
set "ddf="%SystemRoot%\Temp\%Random%%randguid%""
|
||||
echo/.New Cabinet>%ddf%
|
||||
echo/.set Cabinet=ON>>%ddf%
|
||||
echo/.set CabinetFileCountThreshold=0;>>%ddf%
|
||||
@@ -973,7 +968,6 @@ if %spperror% NEQ 1056 if %spperror% NEQ 0 (
|
||||
%eline%
|
||||
echo sc start %_slser% [Error Code: %spperror%]
|
||||
if %spperror% EQU 1053 (
|
||||
echo:
|
||||
call :dk_color %Blue% "Reboot your machine using the restart option and try again."
|
||||
call :dk_color %Blue% "If it still does not work, go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
@@ -1105,7 +1099,7 @@ if %_unattended%==1 timeout /t 2 & exit /b
|
||||
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
@@ -1307,7 +1301,7 @@ if($false -eq ($installCandidates.Keys -contains $SetEdition)) {
|
||||
Exit 1
|
||||
}
|
||||
|
||||
$xmlPath = $Env:SystemRoot + '\Temp' + '\CbsUpgrade.xml'
|
||||
$xmlPath = $Env:SystemRoot + '\Temp' + "\$([Guid]::NewGuid().Guid)CbsUpgrade.xml"
|
||||
|
||||
Write-UpgradeXml -RemovalCandidates $removalCandidates `
|
||||
-InstallCandidates $installCandidates[$SetEdition] `
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
@echo off
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Check-Activation-Status
|
||||
:: Written by @abbodi1406
|
||||
:: https://gravesoft.dev/cas
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
:: Set Environment variables, it helps if they are misconfigured in the system
|
||||
@@ -23,6 +26,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set "ps=%SysPath%\WindowsPowerShell\v1.0\powershell.exe"
|
||||
set "_psc=%ps% -nop -c"
|
||||
set "_err===== ERROR ===="
|
||||
@@ -39,7 +54,7 @@ goto :E_Exit
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
setlocal EnableDelayedExpansion
|
||||
%_psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':sppmgr\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
%_psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':sppmgr\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
|
||||
:E_Exit
|
||||
echo.
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -31,6 +30,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
@@ -60,9 +71,9 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -81,8 +92,7 @@ cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
>nul findstr /v "$" "%_cmdf%" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
@@ -91,10 +101,8 @@ echo Check this webpage for help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -176,10 +184,9 @@ goto done2
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_batp=%_cmdf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg="""%_cmdf%""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
@@ -188,14 +195,14 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
echo "!_cmdf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
echo You are most likely running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto done2
|
||||
goto dk_done
|
||||
)
|
||||
)
|
||||
|
||||
@@ -217,7 +224,7 @@ goto done2
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -231,7 +238,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto done2
|
||||
@@ -241,7 +247,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto done2
|
||||
@@ -252,7 +257,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto done2
|
||||
@@ -264,7 +268,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto done2
|
||||
@@ -285,7 +288,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto done2
|
||||
@@ -323,11 +325,11 @@ reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% && set resetQE
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f %nul1%
|
||||
|
||||
if defined terminal (
|
||||
start conhost.exe "!_batf!" %_args% -qedit
|
||||
start conhost.exe "!_cmdf!" %_args% -qedit
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
) else if %resetQE% EQU 1 (
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
start cmd.exe /c ""!_cmdf!" %_args% -qedit"
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
)
|
||||
@@ -733,7 +735,7 @@ echo ______________________________________________________________
|
||||
echo:
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
@@ -810,7 +812,7 @@ exit /b
|
||||
|
||||
:export
|
||||
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('!_pdesk!\$OEM$\$$\Setup\Scripts\SetupComplete.cmd',$f[1].Trim(),[System.Text.Encoding]::ASCII);"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('!_pdesk!\$OEM$\$$\Setup\Scripts\SetupComplete.cmd',$f[1].Trim(),[System.Text.Encoding]::ASCII);"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
@set masver=3.8
|
||||
@set masver=3.12
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass()grave(dot)dev
|
||||
:: Email: mas.help@outlook.com
|
||||
:: Homepage: m{}assgrave{dot}dev
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
@@ -31,6 +30,18 @@ set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%Syste
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
cd /d "%SysPath%"
|
||||
|
||||
:: Workaround for https://github.com/microsoft/terminal/issues/15212, when %0 starts with a quote %0 parameter expansion is not specialcased.
|
||||
:: Changing %0 to something that is not quoted bypasses the issue.
|
||||
goto arg_workaround_end
|
||||
:arg_workaround
|
||||
set "_cmdf=%~f0"
|
||||
exit /b
|
||||
:arg_workaround_end
|
||||
|
||||
call :arg_workaround
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
@@ -60,9 +71,9 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/massgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/massg%blank%rave/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
set "mas=ht%blank%tps%blank%://m%blank%ass%blank%grave.dev/"
|
||||
set "github=ht%blank%tps%blank%://github.com/m%blank%assgra%blank%vel/Micro%blank%soft-Acti%blank%vation-Scripts"
|
||||
set "selfgit=ht%blank%tps%blank%://git.acti%blank%vated.win/Micr%blank%osoft-Act%blank%ivation-Scripts"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@@ -81,8 +92,7 @@ cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
>nul findstr /v "$" "%_cmdf%" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
@@ -91,10 +101,8 @@ echo Check this webpage for help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@@ -177,10 +185,9 @@ goto dk_done
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_batp=%_cmdf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg="""%_cmdf%""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
@@ -189,7 +196,7 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
echo "!_cmdf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
@@ -218,7 +225,7 @@ goto dk_done
|
||||
|
||||
::pstst $ExecutionContext.SessionState.LanguageMode :pstst
|
||||
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[System.IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[IO.File]::ReadAllText('!_batp!') -split ':pstst';. ([scriptblock]::Create($f[1]))}" %nul6%') do (set tstresult=%%a)
|
||||
|
||||
if /i not "%tstresult%"=="FullLanguage" (
|
||||
%eline%
|
||||
@@ -232,7 +239,6 @@ REM check LanguageMode
|
||||
echo: !tstresult2! | findstr /i "ConstrainedLanguage RestrictedLanguage NoLanguage" %nul1% && (
|
||||
echo FullLanguage mode not found in PowerShell. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%fix_powershell"
|
||||
goto dk_done
|
||||
@@ -242,7 +248,6 @@ REM check Powershell core version
|
||||
|
||||
cmd /c "%psc% "$PSVersionTable.PSEdition"" | find /i "Core" %nul1% && (
|
||||
echo Windows Powershell is needed for MAS but it seems to be replaced with Powershell core. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -253,7 +258,6 @@ REM check for Mal-ware that may cause issues with Powershell
|
||||
for /r "%ProgramFiles%\" %%f in (secureboot.exe) do if exist "%%f" (
|
||||
echo "%%f"
|
||||
echo Mal%blank%ware found, PowerShell is not working properly.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%remove_mal%w%ware
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%remove_mal%w%ware"
|
||||
goto dk_done
|
||||
@@ -265,7 +269,6 @@ if /i "!tstresult2!"=="FullLanguage" (
|
||||
cmd /c "%psc% ""try {[System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)} catch {Exit 3}""" %nul%
|
||||
if !errorlevel!==3 (
|
||||
echo Windows Powershell failed to load .NET command. Aborting...
|
||||
echo:
|
||||
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||
goto dk_done
|
||||
@@ -286,7 +289,6 @@ echo Installed Antivirus - Microsoft Defender for Endpoint
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))}"""
|
||||
)
|
||||
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
||||
goto dk_done
|
||||
@@ -324,11 +326,11 @@ reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% && set resetQE
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d 0 /f %nul1%
|
||||
|
||||
if defined terminal (
|
||||
start conhost.exe "!_batf!" %_args% -qedit
|
||||
start conhost.exe "!_cmdf!" %_args% -qedit
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
) else if %resetQE% EQU 1 (
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
start cmd.exe /c ""!_cmdf!" %_args% -qedit"
|
||||
start reg add HKCU\Console /v QuickEdit /t REG_DWORD /d %resetQE% /f %nul1%
|
||||
exit /b
|
||||
)
|
||||
@@ -764,7 +766,7 @@ call :_taskclear-cache
|
||||
|
||||
%nul% reg query "HKLM\%SPPk%\%_wApp%" && (
|
||||
echo Removing KMS38 protection...
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':regdel\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':regdel\:.*';. ([scriptblock]::Create($f[1]))"
|
||||
%nul% reg delete "HKLM\%SPPk%\%_wApp%" /f
|
||||
%nul% reg query "HKLM\%SPPk%\%_wApp%" && (
|
||||
call :dk_color %Red% "Failed to remove KMS38 protection."
|
||||
@@ -802,7 +804,7 @@ echo Checking SPP permission related issues...
|
||||
call :checkperms
|
||||
if defined permerror (
|
||||
call :dk_color %Red% "[!permerror!]"
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':fixsppperms\:.*';. ([scriptblock]::Create($f[1]))" %nul%
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':fixsppperms\:.*';. ([scriptblock]::Create($f[1]))" %nul%
|
||||
call :checkperms
|
||||
if defined permerror (
|
||||
call :dk_color %Red% "[!permerror!] [Failed To Fix]"
|
||||
@@ -872,8 +874,8 @@ if defined _vis (
|
||||
|
||||
echo:
|
||||
echo Reinstalling system licenses...
|
||||
%psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if %errorlevel% NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[System.IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
%psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if %errorlevel% NEQ 0 %psc% "$sls = Get-WmiObject SoftwareLicensingService; $f=[IO.File]::ReadAllText('!_batp!') -split ':xrm\:.*';. ([scriptblock]::Create($f[1])); ReinstallLicenses" %nul%
|
||||
if %errorlevel% EQU 0 (
|
||||
echo [Successful]
|
||||
) else (
|
||||
@@ -1166,7 +1168,6 @@ sc query Winmgmt | find /i "STOPPED" %nul% && (
|
||||
echo [Successful]
|
||||
) || (
|
||||
call :dk_color %Red% "[Failed]"
|
||||
echo:
|
||||
call :dk_color %Blue% "Its recommended to select [Restart] option and then apply Fix WMI option again."
|
||||
echo %line%
|
||||
echo:
|
||||
@@ -1577,7 +1578,7 @@ exit /b
|
||||
|
||||
:regownstart
|
||||
|
||||
%psc% "$f=[System.IO.File]::ReadAllText('!_batp!') -split ':regown\:.*';. ([scriptblock]::Create($f[1]));"
|
||||
%psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':regown\:.*';. ([scriptblock]::Create($f[1]));"
|
||||
exit /b
|
||||
|
||||
:: Below code takes ownership of a volatile registry key and deletes it
|
||||
@@ -1670,7 +1671,7 @@ if %_unattended%==1 timeout /t 2 & exit /b
|
||||
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Go Back"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 exit /b
|
||||
if !errorlevel!==1 (start %selfgit% & start %github% & for %%# in (%fixes%) do (start %%#))
|
||||
|
||||
@@ -6,15 +6,14 @@
|
||||
|
||||
<hr>
|
||||
|
||||
## How to Activate Windows / Office / Extended Updates (ESU)?
|
||||
## How to Activate Windows / Office / Extended Security Updates (ESU)?
|
||||
|
||||
### Method 1 - PowerShell ❤️
|
||||
|
||||
1. **Open PowerShell**
|
||||
Click the **Start Menu**, type `PowerShell`, then open it.
|
||||
1. Click the **Start Menu**, type `PowerShell`, and open it.
|
||||
|
||||
2. **Copy and paste the code below, then press enter.**
|
||||
- For **Windows 8, 10, 11**: 📌
|
||||
2. Copy and paste the code below and press **Enter.**
|
||||
- For **Windows 8.1, 10 and 11**:
|
||||
```
|
||||
irm https://get.activated.win | iex
|
||||
```
|
||||
@@ -22,89 +21,64 @@
|
||||
```
|
||||
iex (curl.exe -s --doh-url https://1.1.1.1/dns-query https://get.activated.win | Out-String)
|
||||
```
|
||||
- For **Windows 7** and later:
|
||||
```
|
||||
iex ((New-Object Net.WebClient).DownloadString('https://get.activated.win'))
|
||||
```
|
||||
- **Script not launching❓Use the below-listed Method 2.**
|
||||
- **Script not launching? Use the below-listed Method 2.**
|
||||
|
||||
3. The activation menu will appear. **Choose the green-highlighted options** to activate Windows or Office.
|
||||
|
||||
4. **Done!**
|
||||
3. In the menu that appears, type the number corresponding to one of the **Green** options.
|
||||
|
||||
---
|
||||
|
||||
### Method 2 - Traditional (Windows Vista and later)
|
||||
|
||||
1. Download the script: [**MAS_AIO.cmd**](https://dev.azure.com/massgrave/Microsoft-Activation-Scripts/_apis/git/repositories/Microsoft-Activation-Scripts/items?path=/MAS/All-In-One-Version-KL/MAS_AIO.cmd&download=true) or the [full ZIP](https://dev.azure.com/massgrave/Microsoft-Activation-Scripts/_apis/git/repositories/Microsoft-Activation-Scripts/items?$format=zip).
|
||||
2. Run the file named `MAS_AIO.cmd`.
|
||||
3. You will see the activation options. Follow the on-screen instructions.
|
||||
4. That's all.
|
||||
1. Download the script:
|
||||
* [**MAS_AIO.cmd**](https://dev.azure.com/massgrave/Microsoft-Activation-Scripts/_apis/git/repositories/Microsoft-Activation-Scripts/items?path=/MAS/All-In-One-Version-KL/MAS_AIO.cmd&download=true) (Direct script)
|
||||
* [**MAS_AIO.zip**](https://dev.azure.com/massgrave/Microsoft-Activation-Scripts/_apis/git/repositories/Microsoft-Activation-Scripts/items?$format=zip) (If the direct script is blocked by your browser)
|
||||
2. Run the `MAS_AIO.cmd` file.
|
||||
3. In the menu that appears, type the number corresponding to one of the **Green** options.
|
||||
|
||||
---
|
||||
|
||||
> [!TIP]
|
||||
> - Some ISPs/DNS block access to our domains. You can bypass this by enabling [DNS-over-HTTPS (DoH)](https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/encrypted-dns-browsers/) in your browser.
|
||||
> - **Having trouble**❓Visit our [troubleshooting page](https://massgrave.dev/troubleshoot) or raise an issue on [GitHub](https://github.com/massgravel/Microsoft-Activation-Scripts/issues).
|
||||
|
||||
---
|
||||
|
||||
- To activate additional products such as **Office for macOS, Visual Studio, RDS CALs, and Windows XP**, check [here](https://massgrave.dev/unsupported_products_activation).
|
||||
- To run the scripts in unattended mode, check [here](https://massgrave.dev/command_line_switches).
|
||||
|
||||
---
|
||||
> - Some ISPs/DNS providers block access to our domains. You can bypass this by enabling [DNS-over-HTTPS (DoH)](https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/encrypted-dns-browsers/) in your browser.
|
||||
> - **Having trouble**? Visit our [troubleshooting page](https://massgrave.dev/troubleshoot) or raise an issue on [GitHub](https://github.com/massgravel/Microsoft-Activation-Scripts/issues).
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> - The IRM command in PowerShell downloads a script from a specified URL, and the IEX command executes it.
|
||||
> - Always double-check the URL before executing the command and verify the source if manually downloading files.
|
||||
> - Be cautious, as some spread malware disguised as MAS by using different URLs in the IRM command.
|
||||
> - The `irm` command in PowerShell downloads a script from a specified URL, and the `iex` command executes it.
|
||||
> - Always double-check the URL before executing the command and verify the source is trustworthy when manually downloading files.
|
||||
> - Be cautious of third parties spreading malware disguised as MAS by altering the URL in the PowerShell command.
|
||||
|
||||
---
|
||||
|
||||
```
|
||||
Latest Version: 3.8
|
||||
Release date: 11-Nov-2025
|
||||
```
|
||||
|
||||
### [Troubleshooting / Help](https://massgrave.dev/troubleshoot)
|
||||
### [Download Original Windows & Office](https://massgrave.dev/genuine-installation-media)
|
||||
### Homepage - [https://massgrave.dev/](https://massgrave.dev/)
|
||||
|
||||
<div align="center">
|
||||
|
||||
### Homepage - [https://massgrave.dev/](https://massgrave.dev/)
|
||||
|
||||
[![1.1]][1]
|
||||
[![1.2]][2]
|
||||
[![1.3]][3]
|
||||
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
|
||||
[![1.4]][4]
|
||||
[![1.5]][5]
|
||||
[![1.6]][6]
|
||||
[![1.7]][7]
|
||||
|
||||
</div>
|
||||
[1.1]: https://massgrave.dev/img/logo_discord.png (Chat with us without signup)
|
||||
[1.2]: https://massgrave.dev/img/logo_reddit.png (Reddit)
|
||||
[1.3]: https://massgrave.dev/img/logo_bluesky.png (Bluesky)
|
||||
[1.4]: https://massgrave.dev/img/logo_x.png (Twitter)
|
||||
|
||||
[1.1]: https://massgrave.dev/img/logo_github.png (GitHub)
|
||||
[1.2]: https://massgrave.dev/img/logo_azuredevops.png (AzureDevOps)
|
||||
[1.3]: https://massgrave.dev/img/logo_gitea.png (Self-hosted Git)
|
||||
[1.5]: https://massgrave.dev/img/logo_github.png (GitHub)
|
||||
[1.6]: https://massgrave.dev/img/logo_azuredevops.png (AzureDevOps)
|
||||
[1.7]: https://massgrave.dev/img/logo_gitea.png (Self-hosted Git)
|
||||
|
||||
[1.4]: https://massgrave.dev/img/logo_discord.png (Chat with us without signup)
|
||||
[1.5]: https://massgrave.dev/img/logo_reddit.png (Reddit)
|
||||
[1.6]: https://massgrave.dev/img/logo_bluesky.png (Bluesky)
|
||||
[1.7]: https://massgrave.dev/img/logo_x.png (Twitter)
|
||||
|
||||
[1]: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
[2]: https://dev.azure.com/massgrave/_git/Microsoft-Activation-Scripts
|
||||
[3]: https://git.activated.win/massgrave/Microsoft-Activation-Scripts
|
||||
[4]: https://discord.gg/j2yFsV5ZVC
|
||||
[5]: https://www.reddit.com/r/MAS_Activator
|
||||
[6]: https://bsky.app/profile/massgrave.dev
|
||||
[7]: https://twitter.com/massgravel
|
||||
[1]: https://discord.gg/j2yFsV5ZVC
|
||||
[2]: https://www.reddit.com/r/MAS_Activator
|
||||
[3]: https://bsky.app/profile/massgrave.dev
|
||||
[4]: https://twitter.com/massgravel
|
||||
[5]: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
[6]: https://dev.azure.com/massgrave/_git/Microsoft-Activation-Scripts
|
||||
[7]: https://git.activated.win/Microsoft-Activation-Scripts
|
||||
|
||||
---
|
||||
|
||||
<p align="center">Made with Love ❤️</p>
|
||||
Latest Version: 3.12
|
||||
Release date: 04-Jul-2026
|
||||
|
||||
Reference in New Issue
Block a user