mirror of
https://github.com/massgravel/Microsoft-Activation-Scripts.git
synced 2025-02-21 12:49:58 +00:00
Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
066b135cfd | ||
![]() |
64e006703c | ||
![]() |
8f6377f56b | ||
![]() |
e60f8ea474 | ||
![]() |
8d6ea50235 | ||
![]() |
43fb93c1f4 | ||
![]() |
b3c1efb54a | ||
![]() |
e16354561b | ||
![]() |
068903c63f | ||
![]() |
56ee68903a | ||
![]() |
c96c353464 | ||
![]() |
55cca40d39 | ||
![]() |
ed455ca5fc | ||
![]() |
569681da0e | ||
![]() |
9936a1d3a1 | ||
![]() |
a113087f38 | ||
![]() |
cad5f6f091 | ||
![]() |
bc25de6484 | ||
![]() |
a04c389280 | ||
![]() |
b3d7156f13 | ||
![]() |
51735d8e0f |
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
MAS export-ignore
|
||||
LICENSE export-ignore
|
||||
README.md export-ignore
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,4 @@
|
||||
@set masver=2.5
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
@ -63,7 +64,7 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=mass%blank%grave.dev"
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@ -73,7 +74,7 @@ echo:
|
||||
echo Null service is not running, script may crash...
|
||||
echo:
|
||||
echo:
|
||||
echo Help - https://%mas%/troubleshoot.html
|
||||
echo Help - %mas%troubleshoot.html
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 10
|
||||
@ -97,7 +98,7 @@ popd
|
||||
|
||||
cls
|
||||
color 07
|
||||
title HWID Activation
|
||||
title HWID Activation %masver%
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
@ -194,7 +195,7 @@ set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
@ -218,7 +219,7 @@ goto dk_done
|
||||
%nul1% fltmc || (
|
||||
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require admin privileges.
|
||||
echo This script requires admin privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto dk_done
|
||||
)
|
||||
@ -240,16 +241,57 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check for updates
|
||||
|
||||
set -=
|
||||
set old=
|
||||
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
|
||||
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
|
||||
)
|
||||
|
||||
if defined old (
|
||||
echo ________________________________________________
|
||||
%eline%
|
||||
echo You are running outdated version MAS %masver%
|
||||
echo ________________________________________________
|
||||
echo:
|
||||
if not %_unattended%==1 (
|
||||
echo [1] Get Latest MAS
|
||||
echo [0] Continue Anyway
|
||||
echo:
|
||||
call :dk_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 rem
|
||||
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
mode 108, 34
|
||||
title HWID Activation
|
||||
|
||||
:: Start Windows update service at the beginning and in later checks as well, because in some normal conditions one kick is not enough
|
||||
|
||||
sc start wuauserv %nul%
|
||||
mode 110, 34
|
||||
if exist "%Systemdrive%\Windows\System32\spp\store_test\" mode 134, 34
|
||||
title HWID Activation %masver%
|
||||
|
||||
echo:
|
||||
echo Initializing...
|
||||
|
||||
:: Check PowerShell
|
||||
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode %nul2% | find /i "Full" %nul1% || (
|
||||
%eline%
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode
|
||||
echo:
|
||||
echo PowerShell is not working. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
call :dk_product
|
||||
call :dk_ckeckwmic
|
||||
|
||||
@ -295,34 +337,14 @@ echo Evaluation Editions cannot be activated.
|
||||
echo You need to install full version of %winos%
|
||||
echo:
|
||||
echo Download it from here,
|
||||
echo https://%mas%/genuine-installation-media.html
|
||||
echo %mas%genuine-installation-media.html
|
||||
goto dk_done
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value / Check in multiple places to find Edition change corruption
|
||||
|
||||
set osSKU=
|
||||
set slcSKU=
|
||||
set wmiSKU=
|
||||
set regSKU=
|
||||
|
||||
if %winbuild% GEQ 14393 (set info=Kernel-BrandingInfo) else (set info=Kernel-ProductInfo)
|
||||
set d1=%ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
|
||||
set d1=%d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info%', [ref]$Sku); $Sku
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') do if not errorlevel 1 (set slcSKU=%%s)
|
||||
if "%slcSKU%"=="0" set slcSKU=
|
||||
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU=
|
||||
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn %nul6%') do set "regSKU=%%a"
|
||||
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"
|
||||
|
||||
set osSKU=%slcSKU%
|
||||
if not defined osSKU set osSKU=%wmiSKU%
|
||||
if not defined osSKU set osSKU=%regSKU%
|
||||
call :dk_checksku
|
||||
|
||||
if not defined osSKU (
|
||||
%eline%
|
||||
@ -349,11 +371,11 @@ for /f "delims=[] tokens=2" %%# in ('ping -n 1 %%a') do (if not [%%#]==[] set _i
|
||||
|
||||
if not defined _int (
|
||||
%psc% "If([Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]'{DCB00C01-570F-4A9B-8D69-199FDBA5723B}')).IsConnectedToInternet){Exit 0}Else{Exit 1}"
|
||||
if !errorlevel!==0 set _int=1
|
||||
if !errorlevel!==0 (set _int=1&set ping_f= But Ping Failed)
|
||||
)
|
||||
|
||||
if defined _int (
|
||||
echo Checking Internet Connection [Connected]
|
||||
echo Checking Internet Connection [Connected%ping_f%]
|
||||
) else (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Internet Connection [Not Connected]"
|
||||
@ -378,7 +400,8 @@ echo Enabling Windows Script Host [Successful]
|
||||
|
||||
echo Initiating Diagnostic Tests...
|
||||
|
||||
set "_serv=ClipSVC wlidsvc sppsvc KeyIso LicenseManager Winmgmt wuauserv"
|
||||
set "_serv=ClipSVC wlidsvc sppsvc KeyIso LicenseManager Winmgmt DoSvc UsoSvc CryptSvc BITS TrustedInstaller wuauserv"
|
||||
if %winbuild% GEQ 17134 set "_serv=%_serv% WaaSMedicSvc"
|
||||
|
||||
:: Client License Service (ClipSVC)
|
||||
:: Microsoft Account Sign-in Assistant
|
||||
@ -386,37 +409,32 @@ set "_serv=ClipSVC wlidsvc sppsvc KeyIso LicenseManager Winmgmt wuauserv"
|
||||
:: CNG Key Isolation
|
||||
:: Windows License Manager Service
|
||||
:: Windows Management Instrumentation
|
||||
:: Delivery Optimization
|
||||
:: Update Orchestrator Service
|
||||
:: Cryptographic Services
|
||||
:: Background Intelligent Transfer Service
|
||||
:: Windows Modules Installer
|
||||
:: Windows Update
|
||||
:: Windows Update Medic Service
|
||||
|
||||
call :dk_errorcheck
|
||||
|
||||
:: Check Windows updates and store app blockers
|
||||
|
||||
set updatesblock=
|
||||
echo: %serv_cor% %serv_ste% | findstr /i "wuauserv" %nul% && set updatesblock=1
|
||||
|
||||
sc start UsoSvc %nul%
|
||||
if %errorlevel% NEQ 1056 if %errorlevel% NEQ 0 set updatesblock=1
|
||||
|
||||
if %winbuild% GEQ 17134 (
|
||||
sc start WaaSMedicSvc %nul%
|
||||
if !errorlevel! NEQ 1056 if !errorlevel! NEQ 0 set updatesblock=1
|
||||
)
|
||||
|
||||
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer /v SettingsPageVisibility %nul2% | find /i "windowsupdate" %nul% && set updatesblock=1
|
||||
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdateSysprepInProgress %nul% && set updatesblock=1
|
||||
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /s %nul2% | findstr /i "NoAutoUpdate DisableWindowsUpdateAccess" %nul% && set updatesblock=1
|
||||
|
||||
if defined updatesblock (
|
||||
call :dk_color %Gray% "Checking Windows Update Blockers [Found]"
|
||||
if defined updatesblock call :dk_color %Gray% "Checking Update Blocker In Registry [Found]"
|
||||
|
||||
if defined applist echo: %serv_e% | find /i "wuauserv" %nul% && (
|
||||
call :dk_color %Blue% "Windows Update is not working. Enable it incase if you have disabled it."
|
||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\wuauserv /v WubLock %nul% && call :dk_color %Blue% "Sordum Windows Update Blocker tool has been used to block updates."
|
||||
)
|
||||
)
|
||||
|
||||
reg query "HKLM\SOFTWARE\Policies\Microsoft\WindowsStore" /v DisableStoreApps %nul2% | find /i "0x1" %nul% && (
|
||||
call :dk_color %Gray% "Checking Store App Blocker [Found]"
|
||||
call :dk_color %Gray% "Checking Store Blocker In Registry [Found]"
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
@ -425,6 +443,7 @@ call :dk_color %Gray% "Checking Store App Blocker [Found]"
|
||||
|
||||
set key=
|
||||
set altkey=
|
||||
set skufound=
|
||||
set changekey=
|
||||
set altapplist=
|
||||
set altedition=
|
||||
@ -448,9 +467,13 @@ call :dk_color %Red% "Checking Alternate Edition For HWID [%altedition% Acti
|
||||
if not defined key (
|
||||
%eline%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%]
|
||||
if not defined skufound (
|
||||
echo Unable to find this product in the supported product list.
|
||||
) else (
|
||||
echo Required License files not found in %SystemRoot%\System32\spp\tokens\skus\
|
||||
)
|
||||
echo Make sure you are using updated version of the script.
|
||||
echo https://%mas%
|
||||
echo %mas%
|
||||
echo:
|
||||
goto dk_done
|
||||
)
|
||||
@ -513,6 +536,7 @@ call :dk_color %Red% "Changing Windows Region To USA [Failed]"
|
||||
|
||||
if not exist %SystemRoot%\system32\ClipUp.exe (
|
||||
call :dk_color %Red% "Checking ClipUp.exe File [Not found, aborting the process]"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " %mas%troubleshoot"
|
||||
goto :dl_final
|
||||
)
|
||||
|
||||
@ -539,8 +563,7 @@ echo Generating GenuineTicket.xml [Successful]
|
||||
set "_xmlexist=if exist "%tdir%\GenuineTicket.xml""
|
||||
|
||||
%_xmlexist% (
|
||||
net stop ClipSVC /y %nul%
|
||||
net start ClipSVC /y %nul%
|
||||
%psc% Restart-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
|
||||
@ -625,7 +648,7 @@ if defined resfail (
|
||||
set error=1
|
||||
echo:
|
||||
call :dk_color %Red% "Checking Licensing Servers [Failed To Connect]"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " https://%mas%/licensing-servers-issue"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " %mas%licensing-servers-issue"
|
||||
)
|
||||
)
|
||||
|
||||
@ -645,7 +668,7 @@ echo Deleting a Registry [Successful] [!_ident!]
|
||||
|
||||
REM Refresh some services and license status
|
||||
|
||||
for %%# in (wlidsvc LicenseManager sppsvc) do (net stop %%# /y %nul% & net start %%# /y %nul%)
|
||||
for %%# in (wlidsvc LicenseManager sppsvc) do (%psc% Restart-Service %%# %nul%)
|
||||
call :dk_refresh
|
||||
call :dk_act
|
||||
call :dk_checkperm
|
||||
@ -654,11 +677,11 @@ call :dk_checkperm
|
||||
REM Check Internet related error codes
|
||||
|
||||
if not defined error if not defined _perm (
|
||||
echo "%error_code%" | findstr /i "0x80072e 0x80072f" %nul% && (
|
||||
echo "%error_code%" | findstr /i "0x80072e 0x80072f 0x800704cf" %nul% && (
|
||||
set error=1
|
||||
echo:
|
||||
call :dk_color %Red% "Checking Internet Issues [Found] [%error_code%]"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " https://%mas%/licensing-servers-issue"
|
||||
call :dk_color %Red% "Checking Internet Issues [Found] %error_code%"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " %mas%licensing-servers-issue"
|
||||
)
|
||||
)
|
||||
|
||||
@ -674,7 +697,7 @@ call :dk_color %Blue% "At the time of writing this, HWID Activation was not supp
|
||||
call :dk_color %Blue% "Use KMS38 Activation option."
|
||||
) else (
|
||||
if not defined error call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " https://%mas%/troubleshoot"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " %mas%troubleshoot"
|
||||
)
|
||||
)
|
||||
|
||||
@ -699,6 +722,31 @@ goto :dk_done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
:dk_checksku
|
||||
|
||||
set osSKU=
|
||||
set slcSKU=
|
||||
set wmiSKU=
|
||||
set regSKU=
|
||||
|
||||
if %winbuild% GEQ 14393 (set info=Kernel-BrandingInfo) else (set info=Kernel-ProductInfo)
|
||||
set d1=%ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
|
||||
set d1=%d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info%', [ref]$Sku); $Sku
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') do if not errorlevel 1 (set slcSKU=%%s)
|
||||
if "%slcSKU%"=="0" set slcSKU=
|
||||
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU=
|
||||
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn %nul6%') do set "regSKU=%%a"
|
||||
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"
|
||||
|
||||
set osSKU=%slcSKU%
|
||||
if not defined osSKU set osSKU=%wmiSKU%
|
||||
if not defined osSKU set osSKU=%regSKU%
|
||||
exit /b
|
||||
|
||||
:: Get Windows permanent activation status
|
||||
|
||||
:dk_checkperm
|
||||
@ -756,19 +804,6 @@ $guidsString = $guids -join " "
|
||||
$guidsString
|
||||
:getactivationid:
|
||||
|
||||
:: Get SvcRestartTask info
|
||||
|
||||
:gettaskinfo:
|
||||
$task = Get-ScheduledTask | Where-Object { $_.TaskName -eq 'SvcRestartTask' -and $_.TaskPath -eq '\Microsoft\Windows\SoftwareProtectionPlatform\' }
|
||||
$info = $task | Get-ScheduledTaskInfo
|
||||
if ($info.LastRunTime -match 99) {
|
||||
$task | Start-ScheduledTask
|
||||
Start-Sleep -Seconds 3
|
||||
$info = $task | Get-ScheduledTaskInfo
|
||||
}
|
||||
"$($task.State) $($info.LastTaskResult) $($info.LastRunTime)"
|
||||
:gettaskinfo:
|
||||
|
||||
:: Check wmic.exe
|
||||
|
||||
:dk_ckeckwmic
|
||||
@ -821,7 +856,11 @@ set _corrupt=
|
||||
sc start %%# %nul%
|
||||
if !errorlevel! EQU 1060 set _corrupt=1
|
||||
sc query %%# %nul% || set _corrupt=1
|
||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _corrupt (reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || set _corrupt=1)
|
||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _corrupt (
|
||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || set _corrupt=1
|
||||
if /i %%#==TrustedInstaller if /i %%G==DependOnService set _corrupt=
|
||||
)
|
||||
|
||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#") else (set "serv_cor=%%#"))
|
||||
)
|
||||
|
||||
@ -847,13 +886,18 @@ set serv_cste=
|
||||
|
||||
if defined serv_ste (
|
||||
for %%# in (%serv_ste%) do (
|
||||
if /i %%#==ClipSVC (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "3" /f %nul% & sc config %%# start= demand %nul%)
|
||||
if /i %%#==wlidsvc sc config %%# start= demand %nul%
|
||||
if /i %%#==sppsvc (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "2" /f %nul% & sc config %%# start= delayed-auto %nul%)
|
||||
if /i %%#==KeyIso sc config %%# start= demand %nul%
|
||||
if /i %%#==LicenseManager sc config %%# start= demand %nul%
|
||||
if /i %%#==Winmgmt sc config %%# start= auto %nul%
|
||||
if /i %%#==wuauserv sc config %%# start= demand %nul%
|
||||
if /i %%#==ClipSVC (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "3" /f %nul% & sc config %%# start= demand %nul%)
|
||||
if /i %%#==wlidsvc sc config %%# start= demand %nul%
|
||||
if /i %%#==sppsvc (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "2" /f %nul% & sc config %%# start= delayed-auto %nul%)
|
||||
if /i %%#==KeyIso sc config %%# start= demand %nul%
|
||||
if /i %%#==LicenseManager sc config %%# start= demand %nul%
|
||||
if /i %%#==Winmgmt sc config %%# start= auto %nul%
|
||||
if /i %%#==DoSvc sc config %%# start= delayed-auto %nul%
|
||||
if /i %%#==UsoSvc sc config %%# start= delayed-auto %nul%
|
||||
if /i %%#==CryptSvc sc config %%# start= auto %nul%
|
||||
if /i %%#==BITS sc config %%# start= delayed-auto %nul%
|
||||
if /i %%#==wuauserv sc config %%# start= demand %nul%
|
||||
if /i %%#==WaaSMedicSvc sc config %%# start= demand %nul%
|
||||
if !errorlevel!==0 (
|
||||
if defined serv_csts (set "serv_csts=!serv_csts! %%#") else (set "serv_csts=%%#")
|
||||
) else (
|
||||
@ -878,9 +922,12 @@ set serv_e=
|
||||
for %%# in (%_serv%) do (
|
||||
set errorcode=
|
||||
set checkerror=
|
||||
net start %%# /y %nul%
|
||||
|
||||
sc query %%# | find /i "RUNNING" %nul% || (
|
||||
%psc% Start-Service %%# %nul%
|
||||
set errorcode=!errorlevel!
|
||||
sc query %%# | find /i "RUNNING" %nul% || set checkerror=1
|
||||
)
|
||||
|
||||
sc start %%# %nul%
|
||||
if !errorlevel! NEQ 1056 if !errorlevel! NEQ 0 (set errorcode=!errorlevel!&set checkerror=1)
|
||||
@ -891,7 +938,7 @@ if defined serv_e (
|
||||
set error=1
|
||||
call :dk_color %Red% "Starting Services [Failed] [%serv_e%]"
|
||||
echo %serv_e% | findstr /i "ClipSVC-1058 sppsvc-1058" %nul% && (
|
||||
call :dk_color %Blue% "Restart the system to fix disabled service error 1058."
|
||||
call :dk_color %Blue% "Restart the system to fix this error."
|
||||
set showfix=1
|
||||
)
|
||||
)
|
||||
@ -903,48 +950,80 @@ set showfix=1
|
||||
if defined safeboot_option (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[System is running in safe mode. Run in normal mode.]"
|
||||
call :dk_color2 %Red% "Checking Boot Mode [%safeboot_option%] " %Blue% "[Safe mode found. Run in normal mode.]"
|
||||
)
|
||||
|
||||
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State" %nul2% | find /i "IMAGE_STATE_COMPLETE" %nul1% || (
|
||||
for /f "skip=2 tokens=2*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State" /v ImageState') do (set imagestate=%%B)
|
||||
if /i not "%imagestate%"=="IMAGE_STATE_COMPLETE" (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Windows Setup State [%imagestate%]"
|
||||
echo "%imagestate%" | find /i "RESEAL" %nul% && (
|
||||
set showfix=1
|
||||
call :dk_color2 %Red% "Checking Audit Mode " %Blue% "[IMAGE_STATE_COMPLETE status not found. Run in normal mode.]"
|
||||
call :dk_color %Blue% "You need to run it in normal mode in case you are running it in Audit Mode."
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color2 %Red% "Checking WinPE " %Blue% "[System is running in WinPE mode. Run in normal mode.]"
|
||||
call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE mode found. Run in normal mode.]"
|
||||
)
|
||||
|
||||
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode %nul2% | find /i "Full" %nul1% || (
|
||||
set wpainfo=
|
||||
set wpaerror=
|
||||
for /f "delims=" %%a in ('%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':wpatest\:.*';iex ($f[1]);" %nul6%') do (set wpainfo=%%a)
|
||||
echo "%wpainfo%" | find /i "Error Found" %nul% && (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Powershell [Not Responding]"
|
||||
set wpaerror=1
|
||||
call :dk_color %Red% "Checking WPA Registry Error [%wpainfo%]"
|
||||
) || (
|
||||
echo Checking WPA Registry Count [%wpainfo%]
|
||||
)
|
||||
|
||||
|
||||
DISM /English /Online /Get-CurrentEdition %nul%
|
||||
set dism_error=%errorlevel%
|
||||
cmd /c exit /b %dism_error%
|
||||
if %dism_error% NEQ 0 set "dism_error=[0x%=ExitCode%]"
|
||||
if %dism_error% NEQ 0 set "dism_error=0x%=ExitCode%"
|
||||
if %dism_error% NEQ 0 (
|
||||
call :dk_color %Red% "Checking DISM [Not Responding] %dism_error%"
|
||||
call :dk_color %Red% "Checking DISM [Not Responding] [%dism_error%]"
|
||||
)
|
||||
|
||||
|
||||
if not defined officeact if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color %Red% "Checking Eval Packages [Non-Eval Licenses are installed in Eval Windows]"
|
||||
if /i %dism_error%==[0x800F0805] (
|
||||
for %%# in (4 125 126 188 191 205) do if "%osSKU%"=="%%#" (
|
||||
call :dk_color %Blue% "Evaluation Windows can not be activated and different License install may lead to errors."
|
||||
call :dk_color %Blue% "It is recommended to install full version of %winos%."
|
||||
call :dk_color %Blue% "You can download it from https://%mas%/genuine-installation-media.html"
|
||||
set showfix=1
|
||||
call :dk_color %Blue% "You can download it from %mas%genuine-installation-media.html"
|
||||
)
|
||||
|
||||
|
||||
set osedition=
|
||||
for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul6%') do set "osedition=%%a"
|
||||
|
||||
:: Workaround for an issue in builds between 1607 and 1709 where ProfessionalEducation is shown as Professional
|
||||
|
||||
if "%osSKU%"=="164" set osedition=ProfessionalEducation
|
||||
if "%osSKU%"=="165" set osedition=ProfessionalEducationN
|
||||
|
||||
if not defined officeact (
|
||||
if not defined osedition (
|
||||
call :dk_color %Red% "Checking Edition Name [Not Found In Registry]"
|
||||
) else (
|
||||
|
||||
if not exist "%SystemRoot%\System32\spp\tokens\skus\%osedition%\%osedition%*.xrm-ms" (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking License Files [Not Found] [%osedition%]"
|
||||
)
|
||||
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*-%osedition%-*.mum" (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Package File [Not Found] [%osedition%]"
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -1003,15 +1082,14 @@ call :dk_color2 %Red% "Checking ClipSVC " %Blue% "[System
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "SkipRearm" %nul6%') do if /i %%b NEQ 0x0 (
|
||||
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "SkipRearm" /t REG_DWORD /d "0" /f %nul%
|
||||
call :dk_color %Red% "Checking SkipRearm [Default 0 Value Not Found. Changing To 0]"
|
||||
net stop sppsvc /y %nul%
|
||||
net start sppsvc /y %nul%
|
||||
%psc% Restart-Service sppsvc %nul%
|
||||
set error=1
|
||||
)
|
||||
|
||||
|
||||
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]"
|
||||
call :dk_color %Blue% "Possibly Caused By Gaming Spoofers. Help: https://%mas%/troubleshoot"
|
||||
call :dk_color %Blue% "Possibly Caused By Gaming Spoofers. Help: %mas%troubleshoot"
|
||||
set error=1
|
||||
set showfix=1
|
||||
)
|
||||
@ -1034,7 +1112,7 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found. Creat
|
||||
|
||||
call :dk_actids
|
||||
if not defined applist (
|
||||
net stop sppsvc /y %nul%
|
||||
%psc% Stop-Service sppsvc %nul%
|
||||
cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul%
|
||||
if !errorlevel! NEQ 0 cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul%
|
||||
call :dk_refresh
|
||||
@ -1059,38 +1137,9 @@ call :dk_color %Red% "Checking sppsvc.exe File [Not Found]"
|
||||
)
|
||||
|
||||
|
||||
set task=
|
||||
set taskerror=
|
||||
if not defined wmifailed if not defined officeact (
|
||||
for /f "delims=" %%a in ('%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':gettaskinfo\:.*';iex ($f[1]);"') do (set task=%%a)
|
||||
echo "!task!" | find /i "Ready 0 " %nul% || set taskerror=1
|
||||
echo "!task!" | find "99" %nul% && set taskerror=1
|
||||
if defined taskerror (
|
||||
call :dk_color %Gray% "Checking SvcRestartTask Last Run [Issues Found, !task!]"
|
||||
call :dk_color %Gray% "Windows may face issues in keeping activation. Help: https://%mas%/troubleshoot"
|
||||
)
|
||||
)
|
||||
:: This code checks if NT SERVICE\sppsvc has permission access to tokens folder and required registry keys. It's often caused by gaming spoofers.
|
||||
|
||||
|
||||
:: Below checks are performed if required services are not disabled or corrupted + if there is any error + slmgr /dlv errorlevel is not Zero + no fix was shown before
|
||||
|
||||
set wpaerror=
|
||||
set permerror=
|
||||
if not defined serv_cor if not defined serv_cste if defined error if /i not %error_code%==0 if not defined showfix (
|
||||
|
||||
REM This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems.
|
||||
|
||||
if %winbuild% GEQ 14393 (
|
||||
set /a count=0
|
||||
for /f %%a in ('reg query "HKLM\SYSTEM\WPA" %nul6%') do set /a count+=1
|
||||
for /L %%# in (1,1,!count!) do (
|
||||
reg query "HKLM\SYSTEM\WPA\8DEC0AF1-0341-4b93-85CD-72606C2DF94C-7P-%%#" /ve /t REG_BINARY %nul% || set wpaerror=1
|
||||
)
|
||||
if defined wpaerror call :dk_color %Red% "Checking WPA Registry Keys [Error Found] [Registry Count - !count!]"
|
||||
)
|
||||
|
||||
REM This code checks if NT SERVICE\sppsvc has permission access to tokens folder and required registry keys. It's often caused by gaming spoofers.
|
||||
|
||||
if not exist "%tokenstore%\" set permerror=1
|
||||
|
||||
for %%# in (
|
||||
@ -1101,15 +1150,65 @@ for %%# in (
|
||||
%psc% "$acl = Get-Acl '%%#'; if ($acl.Access.Where{ $_.IdentityReference -eq 'NT SERVICE\sppsvc' -and $_.AccessControlType -eq 'Deny' -or $acl.Access.IdentityReference -notcontains 'NT SERVICE\sppsvc'}) {Exit 2}" %nul%
|
||||
if !errorlevel!==2 set permerror=1
|
||||
)
|
||||
if defined permerror call :dk_color %Red% "Checking SPP Permissions [Error Found]"
|
||||
if defined permerror (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color %Red% "Checking SPP Permissions [Error Found]"
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
)
|
||||
|
||||
|
||||
:: If required services are not disabled or corrupted + if there is any error + slmgr /dlv errorlevel is not Zero + no fix was shown before
|
||||
|
||||
if not defined serv_cor if not defined serv_cste if defined error if /i not %error_code%==0 if not defined showfix (
|
||||
set showfix=1
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
if not defined permerror call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
)
|
||||
|
||||
if not defined showfix if defined wpaerror (
|
||||
set showfix=1
|
||||
call :dk_color %Blue% "If activation fails then go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
|
||||
exit /b
|
||||
|
||||
:: This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems
|
||||
|
||||
:wpatest:
|
||||
$wpaKey = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Registry64').OpenSubKey("SYSTEM\\WPA")
|
||||
$count = $wpaKey.SubKeyCount
|
||||
|
||||
$osVersion = [System.Environment]::OSVersion.Version
|
||||
$minBuildNumber = 14393
|
||||
|
||||
if ($osVersion.Build -ge $minBuildNumber) {
|
||||
$subkeyHashTable = @{}
|
||||
foreach ($subkeyName in $wpaKey.GetSubKeyNames()) {
|
||||
$keyNumber = $subkeyName -replace '.*-', ''
|
||||
$subkeyHashTable[$keyNumber] = $true
|
||||
}
|
||||
for ($i=1; $i -le $count; $i++) {
|
||||
if (-not $subkeyHashTable.ContainsKey("$i")) {
|
||||
Write-Host "Total Keys $count. Error Found- $i key does not exist"
|
||||
$wpaKey.Close()
|
||||
exit
|
||||
}
|
||||
}
|
||||
}
|
||||
$wpaKey.GetSubKeyNames() | ForEach-Object {
|
||||
$subkey = $wpaKey.OpenSubKey($_)
|
||||
$p = $subkey.GetValueNames()
|
||||
if (($p | Where-Object { $subkey.GetValueKind($_) -eq [Microsoft.Win32.RegistryValueKind]::Binary }).Count -eq 0) {
|
||||
Write-Host "Total Keys $count. Error Found- Binary Data is corrupt"
|
||||
$wpaKey.Close()
|
||||
exit
|
||||
}
|
||||
}
|
||||
$count
|
||||
$wpaKey.Close()
|
||||
:wpatest:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_color
|
||||
@ -1158,47 +1257,49 @@ exit /b
|
||||
|
||||
set f=
|
||||
for %%# in (
|
||||
8b351c9c-f398-4515-9900-09df49427262_XGV%f%PP-NM%f%H47-7TT%f%HJ-W3%f%FW7-8H%f%V2C___4_X19-99683_X9J5T0gPQprYpz2euPvoJGlkurIO9h6N8ypE0KWYVpy0nbCKYnqSUCD7u8ReXAmc085jX2uM5PKurSee9Yq/PxesgiysQHDBsOhr98MXZZiIgy4ssnz2gZF70KB8tO3X7kk9LHwxXfz3rlquYPod9swe90nqvVaJMWCpQK0InUw_0_OEM:NONSLP_Enterprise
|
||||
c83cef07-6b72-4bbc-a28f-a00386872839_3V6%f%Q6-NQ%f%XCX-V8Y%f%XR-9Q%f%CYV-QP%f%FCT__27_X19-98746_WFZBjlVtHQumoaVE28/NHsRvv1lgkkfav6NPHqr6OC2u4vxkjjJkkl9OTF6DpHJu0IFrrQv+HYcdZ/WC5EzhOMqMxcujTBSAN7xLIVEbs72Db0Bi5iDAbOltJpk8QKKe18otQJ6vajW5WOPXjbgSJfDFaZQfiwvIJ1ICXt+stog_0_Volume:MAK_EnterpriseN
|
||||
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7%f%JG-NP%f%HTM-C97%f%JM-9M%f%PGT-3V%f%66T__48_X19-98841_K3qev/5gQpX1RK1F9M9beEWWv/di1GsRF7OUcEMGTGDTYnaRenRcJaO8zOHQQvKDc57fon/v77ZpHQHT/jWWhWnLm7Ssory+s8tOs72fPjivVBDwpSPIEC1v+8Vpb4a3XCZet2e/Z5wmpCq9XDkowys3IcxYM0mHWBaNPu8gIe4_0_____Retail_Professional
|
||||
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B8%f%7N-8K%f%FHP-DKV%f%6R-Y2%f%C8J-PK%f%CKT__49_X19-98859_WcAcor6kQgxgkTRzcoxnb8UIoo5/ueYeaOKqy9/xAzlruHAKxhatXeGtSI58lXcCK5hxXkDmcyrRFwWSwdvg0txwTi7VusYcTNCLdmNWU/62iDrBhzMrCYtuhW9EV/g4+TlbjSm4PBJ0HMlI4YzAEnyJiBgKPDgBQ8Gj9LRbEgU_0_____Retail_ProfessionalN
|
||||
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4CP%f%RK-NM%f%3K3-X6X%f%XQ-RX%f%X86-WX%f%CHW__98_X19-98877_MBDSEqlayxtVVEgIeAl8milgjS/BVHow6+MmpCyh9nweuctlT1+LbEHmDlnqDeLr9FQrN2FpEJtNr26rE0niMdvcAP51MfJsREyhWOEbrWwWyMH0KwDAci2WxWZTJp/SEZnq5HYYT1pPPLMWAkKRHJksJJFtg4zBtoyHvLjc35c_0_____Retail_CoreN
|
||||
1d1bac85-7365-4fea-949a-96978ec91ae0_N24%f%34-X9%f%D7W-8PF%f%6X-8D%f%V9T-8T%f%YMD__99_X19-99652_mpjCoh6soA/rwJutsjekZpA9vDUD8znR20V/c8FwSjuCcSbPhmP6bpJR9rfptAZqpagliMxA/OUZsx0Knt0n/hgOy2mv8pr24gI9uYXK8EfhG74bVdsyvZz1tyA6CaVR02ZahQvbKYzCmXUvsI+Wge3bHbKbVpn9Mvl+itn2a4g_0_____Retail_CoreCountrySpecific
|
||||
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT7%f%9Q-G7%f%N6G-PGB%f%YW-4Y%f%WX6-6F%f%4BT_100_X19-99661_KaUs6KwvtthPOsxd3x0tU/baKSv1DWSFOqbq7PbU/uYEY95p0Skzv3y4aXq+xVmfwSt8STL/4vSfFIAlsaRh7Vnq6Y/Ael8joeqI8hBN461fykoHxSELRMJ+eed50T0cJUS79ol6OTBOCCVeHgmtGVbHuL88TMWW69fGNdIMM3U_0_____Retail_CoreSingleLanguage
|
||||
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YTM%f%G3-N6%f%DKC-DKB%f%77-7M%f%9GH-8H%f%VX7_101_X19-98868_NpHxrAtA+GL6kawAP5Z2UdfUVcKFvf9UzEe6FIV/HztZqxpMBDFv2hdxCjD9+T8PKcW8j3n04McelOAgr3lD37Fu+wrvJIGX0dG3xEtU/MG9L9X5baBS8H6AmC6rq2+w5NUY8EchK9W2oatBflFb8IcfCSeAyOfsJei6bdu4mp8_0_____Retail_Core
|
||||
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XKC%f%NC-J2%f%6Q9-KFH%f%D2-FK%f%THY-KD%f%72Y_119_X19-99606_gtywgqIP3j+bliKdunuseeZWtsOzWhj+DmSBq7nqeNarHutgbWEwvcRiGo+nwxONt9Ak/VyuO76ZWH/db3iRVTk1y61vFv15gVlOy1ovLjVHBvmPVdQXIne2N+pIMb0eBhZWHRX63mYdkZRZ0wg/+bj4xsjJv+qLpWhVCzNMge4_0_OEM:NONSLP_PPIPro
|
||||
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YNM%f%GQ-8R%f%YV3-4PG%f%Q3-C8%f%XTP-7C%f%FBY_121_X19-98886_VuBmoSUdF63Cvwm9wNlc2yhD2tP9B72iVVWFNcbAwDGXF6o06oNMsIJ0VqGJDdBzZjVGw2wHokMabxZNDyIl90CO7trwgV8S0lLJVLymxyUaE3ThvN3YUsi9Q3H+5Kr0RpsojCWb+UQd/GY4bSXfyStXFylj6im7yv0db/ZWGbw_0_____Retail_Education
|
||||
c5198a66-e435-4432-89cf-ec777c9d0352_84N%f%GF-MH%f%BT6-FXB%f%X8-QW%f%JK7-DR%f%R8H_122_X19-98892_jQ6S2bbNoVrp/zvi8BEUwCf7fge1nAdspcjXyTeTySUiR+hXPiKQEWgyLqAdZ5Or+X2JGT/LZN1/eZ9P+REmzG/WQotZ+fyyPguoSsES+d312RkfmQoI5gVanEkGjZSU4YohREM/Vyf9MOO7dbH9MMEpFm2mje6OnhyJo2gux0g_0_____Retail_EducationN
|
||||
f6e29426-a256-4316-88bf-cc5b0f95ec0c_PJB%f%47-8P%f%N2T-MCG%f%DY-JT%f%Y3D-CB%f%CPV_125_X23-50331_Txrh+25Ej9T5ZZXUNxSh/t9ZV18K112m3pOtVVwAeXk4rqjovoYEKcR4DZxUrQ85tNnqSJ+mLlCfnHa9ghb7OTLCaba+d+LA8HBrFfG0g1Ya1gBBL3ZsACHBRPdDiXOGl8uil+5EkOx2sKX941S5fnNK/278XBFRm2NKwfJ7hhI_1_Volume:MAK_EnterpriseS_Ge
|
||||
cce9d2de-98ee-4ce2-8113-222620c64a27_KCN%f%VH-YK%f%WX8-GJJ%f%B9-H9%f%FDT-6F%f%7W2_125_X22-66075_wJ/BPDFz+13PVJtBqBo+E4LCm3LoMVALCQUun9kXGBULr7V8FQ5nKUudUGHDLNNVIIicdw9Uh26BKAt0/hnE7BpBkzwdi4qAdZgKXQ1t06Ek4+zXmoT225NvpaHsuhDkE687TtCB1ZWvAulA8G9ehE3HTJSoNm4wCFOQyIQQtqQ_1_Volume:MAK_EnterpriseS_VB
|
||||
d06934ee-5448-4fd1-964a-cd077618aa06_43T%f%BQ-NH%f%92J-XKT%f%M7-KT%f%3KK-P3%f%9PB_125_X21-83233_V+y0SFmAnGwRwgNz+0sO0mj+XxSjbdRDpom1Iqx2BJcsf96Q5ittJOcMhKiNswyKuq5suM5vy60tA/AUdb1mrnnrnXfmz7nFam/BIOOfa18GA7vd1aNFufhpmCiMWxoGSewH/T1pnCZrsvGYIj//qC7aiQVKYBngO7UYWGaytgc_0_OEM:NONSLP_EnterpriseS_RS5
|
||||
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK9%f%6Y-D9%f%CD8-W44%f%CQ-R8%f%YTK-DY%f%JWX_125_X21-05035_U2DIv+LAhSGz0rNbTiMQYaP3M41+0+ZioF7vh0COeeJSIruDFCZ3Li7ZM3dSleg6QTCxG04uZ3i3r1bCZv0+WAfU9rG+3BqLAwKlJS/31rETeRWvrxB1UK4mTMHwAJc9txDAc15ureqF+2b9pIIpwLljmFer6fI7z0iI6I/ZuTU_0_OEM:NONSLP_EnterpriseS_RS1
|
||||
faa57748-75c8-40a2-b851-71ce92aa8b45_FWN%f%7H-PF%f%93Q-4GG%f%P8-M8%f%RF3-MD%f%WWW_125_X19-99617_0frpwr4N/wBVRA/nOvAMqkxmRj6Vv9mA+jVNtnurAL1TjkPN/y+6YVUd5MP/Y4As4kddHoHiZXI+2siKHJsaV95ppXoHKR8d7FRVitr1F+82TbB7OVvdCclGrRZymnq25HvtSC3BROHt7ZXTgSCWMyB7MlbLiqHiTymOj5OMX1g_0_OEM:NONSLP_EnterpriseS_TH
|
||||
837766ff-61c5-427d-87c3-a2acbd44767a_XFC%f%77-XN%f%RXM-2Q3%f%6W-FC%f%M9T-YH%f%DJ9_126_X23-50304_fIijy15jUocqsDIBLyz5/6FKqkNU1uoYYTqqnbBnk5bPUHKzjIbMGldJEjNgd7lKnHG9qhIjl0q1OHyTna4eY0ydD/b9MfLtD2hmfVvG7gJL8PNaZDa0MuGorxbQilR3nczXmeL/5gsvw5Q/uCfSY5p4UuPnjasKV8eITIPfu1k_1_Volume:MAK_EnterpriseSN_Ge
|
||||
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQF%f%NW-9T%f%PM3-JQ7%f%3T-QV%f%4VQ-DV%f%9PT_126_X22-66108_UeA6O2iIW6zFMJzLMCQjVA7gUHOGRTiFB6LPrgjhgfJEXSZnDjxw8wsR+tp+JQWeaQDsVt06c2byH3z7Ft2wNk8n3gcXUknIjlcCckNjw05WDI64/wCqz+gtf1RajMEoV/mODpBx7rdLtCg03FyV7Z9LOib4/WLSmnxjDPKMG7s_1_Volume:MAK_EnterpriseSN_VB
|
||||
e8f74caa-03fb-4839-8bcc-2e442b317e53_M33%f%WV-NH%f%Y3C-R7F%f%PM-BQ%f%GPT-23%f%9PG_126_X21-83264_NtP6sMWmOTCdABAbgIZfxZzRs8zaqzfaabLeFXQJvfJvQPLQPk2UxMliASJG+7YwwbTD8pyhUoQqUYrlCzJZ6jDSDyUTJkXgo9akR4fBOg6Z5wn5fW8NGAMDcLND5d9XxHl0gWH/HZNIs/GZaPJsCVVqPr7X8bk/y0DeIofxICU_1_Volume:MAK_EnterpriseSN_RS5
|
||||
3d1022d8-969f-4222-b54b-327f5a5af4c9_2DB%f%W3-N2%f%PJG-MVH%f%W3-G7%f%TDK-9H%f%KR4_126_X21-04921_WeNSkuiC3iyNT9tDqlj6KvM17UYMsYjEelyyMEyPEXSAbYA08lYtYJjCzxSE9T30p9dxqPIuj370OwHhAxG8a51/HoLNWR0grj08HmdOXUA8Ap4clEivxKM0zRvwPR6L2M2HQP0nN54c9It7ikzweJ0X2HHOb58oEw9LbMeUM/Y_0_Volume:MAK_EnterpriseSN_RS1
|
||||
60c243e1-f90b-4a1b-ba89-387294948fb6_NTX%f%6B-BR%f%YC2-K67%f%86-F6%f%MVQ-M7%f%V2X_126_X19-98770_QLG40WW/TtUqtir9K6FJCQXU1mfn27uutdOunHJ3gXk6v0Mbxaqu9GKqpg5xFzdFiOPb/8Bmk/ylwceXgoaUx1nKcBGb/Bg+jICiNMEYIbGyMuYiHb0iJeVbjbBLLfWuAAuUPftfnKPH3dAu1YvhaS5nv7a5wICrXdJWeVNpBxk_0_Volume:MAK_EnterpriseSN_TH
|
||||
01eb852c-424d-4060-94b8-c10d799d7364_3XP%f%6D-CR%f%ND4-DRY%f%M2-GM%f%84D-4G%f%G8Y_139_X23-37869_bpWJRMPuEeHIx4X+imsfTHaUXtdSGX9/+kuFDpkJ0rIQXKBf+pprkICUG/FJVciv60VXAMaQPBgn4zGfpfVTvJ0DTPxdRcS4WltLnz5L3fG6jXPjI5lArAFWlx7m93ch1zINoxbroU3inMo5JjsJaMZt01Gae6Of4k9DrgYC8U0_1_____Retail_ProfessionalCountrySpecific_Zn
|
||||
eb6d346f-1c60-4643-b960-40ec31596c45_DXG%f%7C-N3%f%6C4-C4H%f%TG-X4%f%T3X-2Y%f%V77_161_X21-43626_vHO/5UEtrsDzGC30A2Ya5DYXlNMs7hVYiLvM7X31xkaFMxogbiy3ZDxBbjRku3VXyW+TYsFX/D/wdJgFmMrhsNrObkxqzYMMRjx+BpwOx2PspKpS2RyzovyRl8v93SvHB5IyoO2/3pm2YqJDK1hXLhms6+DDPuiofQt36q47reQ_0_____Retail_ProfessionalWorkstation
|
||||
89e87510-ba92-45f6-8329-3afa905e3e83_WYP%f%NQ-8C%f%467-V2W%f%6J-TX%f%4WX-WT%f%2RQ_162_X21-43644_phlxNLr+sk8cCCmAVU3k3XrtD6sFDeoaODc+21soKqePbVQbzPHgokS73ccok6/gDfu/u5UKc7omL8pm2IhIhf70oC+8M/FFp0zRFeC/ZFXdF2tL23oKWI9kZbvcaoZBiqaDGc1bNYi5KAZYaJU8wwqw16ZnohQJZ7QR9cgUfFQ_0_____Retail_ProfessionalWorkstationN
|
||||
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8PT%f%T6-RN%f%W4C-6V7%f%J2-C2%f%D3X-MH%f%BPB_164_X21-04955_Px7QWdfy0esrMzQoydKlmIcGdfV0pQvbnumyrh4evDNF9gpENm8OIfZfljIynury0qZAkw4AG3uGyp+5IxZGIh6U3dz41uNVfEcA9NZ34OEBXMtjEOU1ZbJ8wp8JecQKwlORclvsri9OOi0GbGc0TYRanlci2jJL/3x/gSuWXCs_0_____Retail_ProfessionalEducation
|
||||
13a38698-4a49-4b9e-8e83-98fe51110953_GJT%f%YN-HD%f%MQY-FRR%f%76-HV%f%GC7-QP%f%F8P_165_X21-04956_GRSYno4+yqU/JMxHLDKdvdFWRz1uT90n5JkTvSqztDvXMf/mBhSV/OpppJWGo6UL0FwqYcu9oXl+Vx336pLAE5/EDzQHh+QCwOCDJiTKnd3hW/zrGMe6Sb0OAIkNNML9gcOBbr1IHFWhN99r8ZWl5JjpzMs2nPjejB1Ec8NCcpE_0_____Retail_ProfessionalEducationN
|
||||
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJC%f%F7-PW%f%8QT-332%f%4D-68%f%8JX-2Y%f%V66_175_X21-41295_kkJyX1AwYgDYcGK1eIRdocybkbAfEtQkDxhRUhY89X2i2PSD9jcsGQgHWyD3KUKWb3bzR8QkDS3MTeieOw3EzD0RyAQhHc6lRR+rk18lh5UOVCgrZ6byxn29Ur+jAh0LJXImggC9JMGb2cTYaZckxzm3ICoAKwrmI9JnrzBTVmY_0_____Retail_ServerRdsh
|
||||
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3W%f%VW-N2%f%PV2-CGW%f%C3-34%f%QGF-VM%f%J2C_178_X21-32983_YIMgXu2dZ9x1r1NLs3egTc/8EYc1RndYDvoX7QquQQLnhnhbSNBw3hmlqrQ0zNsTLut3EKpGZK2CwPspJJWE60lecdxI4211K748P6vkuqHPL4uFqXyKxTG3qRrtDIra5nnMn4GqG2fWuguzTXaumu8cJU3H1uTOsR1E/DQnJJ0_0_____Retail_Cloud
|
||||
af5c9381-9240-417d-8d35-eb40cd03e484_NH9%f%J3-68%f%WK7-6FB%f%93-4K%f%3DF-DJ%f%4F6_179_X21-32987_H0qrFdf+FQxcSRJDtEwd8OfwC4iH/25Q01jz3QuB9yhEqB0W1i83u0WDpVK04pvU1EDCCRRI/DhXynbkWpLC0chdTOW4k5jIy+aa0cD3fccz9ChSjVHMzyTg3abEVFAvy9rttUyxcFIOKcINXHTxTRp5cZPwOa393tlJyBiliAo_0_____Retail_CloudN
|
||||
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQQ%f%YW-NF%f%FMW-XJP%f%BH-K8%f%732-CK%f%FFD_188_X21-99378_Bwx3E7qmE6M8UR6+KPqLnnavI6ThNHHUO717RJY9di2YI9rzC3O0LceXOHjshSKwfwxosqFsD/p/inrJmabed1yA/ZWwISyGtAIGTtRgpuSE4TAfW6KEW0v7rcr2wwwDq7DHSuz4QN4odEGe9bvtx4zIZKufQzzN4TN2rd/BJkE_0_____OEM:DM_IoTEnterprise
|
||||
ed655016-a9e8-4434-95d9-4345352c2552_QPM%f%6N-7J%f%2WJ-P88%f%HH-P3%f%YRH-YY%f%74H_191_X21-99682_lE8qL1p4m68mv9wcxU2sdKZPIccybtOjr+aMAdV+sLHs9wzE26oz5GiSZ3UzpU7yoYrNMqwGkKX6mrCEGRLh+XR2Ricp7ELA1PkzaGm0FLUqaK2GNVQ00i+s6KcA2XRr/gWOhhGTqSCjpSi9cMiqMbftf9Bo/BJVK3ib9xU4OQw_0_OEM:NONSLP_IoTEnterpriseS_VB
|
||||
6c4de1b8-24bb-4c17-9a77-7b939414c298_CGK%f%42-GY%f%N6Y-VD2%f%2B-BX%f%98W-J8%f%JXD_191_X23-12617_QEqj4TJNDYZnR8WdPp2TYu5UyiJtUmKER75/DuR5L5SZ1Qg/LUff0Nse+iT+cDVld/YA8RS1CxeMF1W/SLuPHqZvEzkPmYxGVy2U1iCbztfonAA2FZ3v76gbroMOr6bqMmeKNkhsUMG5sEz5uYXW0+K7Ke2z5GSMiEQHQN2yDA4_0_OEM:NONSLP_IoTEnterpriseS_Ge
|
||||
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9V%f%KN-3B%f%GWV-Y62%f%4W-MC%f%RMQ-BH%f%DCD_202_X22-53884_hPcIn0dF9Dq6zlXd3RxBqVDPDnf5sTasTjUqhD6lGc9IkTc8476NHd1PV1Ds++VO34/dw2H2PWk33LT5Es6PnUi32Ypva4POy4QJo5W3qyduiJiHUOM5GS9yAkKfdHFgUXaUVwopYKq+EwmgxFmEvHYdWgREHgIMyNoKAZQK0Ok_0_____Retail_CloudEditionN
|
||||
92fb8726-92a8-4ffc-94ce-f82e07444653_KY7%f%PN-VR%f%6RX-83W%f%6Y-6D%f%DYQ-T6%f%R4W_203_X22-53847_DCP6QzPj+BD1EEmlBelBt7x9AmvQOfd7kdkUB0b0x6/TNHRnZtdyix3pNX2IDQtJbLnNLc2ZlMmupbZQrtyxe3xl8+xlCnHByXZpzFty9sGzq3MozHHA9u9WsJEf5R7tnFDplNM1UitlTVTAyuCGk83brY4zjmz/52pUQyQHzjI_0_____Retail_CloudEdition
|
||||
d4f9b41f-205c-405e-8e08-3d16e88e02be_J7N%f%JW-V6%f%KBM-CC8%f%RW-Y2%f%9Y4-HQ%f%2MJ_205_X23-15027_U9eyfIBXrs++lyP6OjHHaF/wjieAxQeSKwzSkGBeTTpyCDcenq8t4cKvqDHnauSZzaVPWNoVcASkMCdlJi3EkR29KSgvx9/K2OB8LVH2PPpqvwjm1ZZdrvLMGhW83A/KRrtN9AOx7bnPC8MNLErnzbRRS9/aOrmp4Uzo8EIVagI_0_OEM:NONSLP_IoTEnterpriseSK
|
||||
8b351c9c-f398-4515-9900-09df49427262_XG%f%VPP-NMH%f%47-7T%f%THJ-W3F%f%W7-8H%f%V2C___4_X19-99683_HGNKjkKcKQHO6n8srMUrDh/MElffBZarLqCMD9rWtgFKf3YzYOLDPEMGhuO/auNMKCeiU7ebFbQALS/MyZ7TvidMQ2dvzXeXXKzPBjfwQx549WJUU7qAQ9Txg9cR9SAT8b12Pry2iBk+nZWD9VtHK3kOnEYkvp5WTCTsrSi6Re4_0_OEM:NONSLP_Enterprise
|
||||
c83cef07-6b72-4bbc-a28f-a00386872839_3V%f%6Q6-NQX%f%CX-V8%f%YXR-9QC%f%YV-QP%f%FCT__27_X19-98746_NHn2n0N1UfVf00CfaI5LCDMDsKdVAWpD/HAfUrcTAKsw9d2Sks4h5MhyH/WUx+B6dFi8ol7D3AHorR8y9dqVS1Bd2FdZNJl/tTR1PGwYn6KL88NS19aHmFNdX8s4438vaa+Ty8Qk8EDcwm/wscC8lQmi3/RgUKYdyGFvpbGSVlk_0_Volume:MAK_EnterpriseN
|
||||
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK%f%7JG-NPH%f%TM-C9%f%7JM-9MP%f%GT-3V%f%66T__48_X19-98841_Yl/jNfxJ1SnaIZCIZ4m6Pf3ySNoQXifNeqfltNaNctx+onwiivOx7qcSn8dFtURzgMzSOFnsRQzb5IrvuqHoxWWl1S3JIQn56FvKsvSx7aFXIX3+2Q98G1amPV/WEQ0uHA5d7Ya6An+g0Z0zRP7evGoomTs4YuweaWiZQjQzSpA_0_____Retail_Professional
|
||||
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B%f%87N-8KF%f%HP-DK%f%V6R-Y2C%f%8J-PK%f%CKT__49_X19-98859_Ge0mRQbW8ALk7T09V+1k1yg66qoS0lhkgPIROOIOgxKmWPAvsiLAYPKDqM4+neFCA/qf1dHFmdh0VUrwFBPYsK251UeWuElj4bZFVISL6gUt1eZwbGfv5eurQ0i+qZiFv+CcQOEFsd5DD4Up6xPLLQS3nAXODL5rSrn2sHRoCVY_0_____Retail_ProfessionalN
|
||||
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4C%f%PRK-NM3%f%K3-X6%f%XXQ-RXX%f%86-WX%f%CHW__98_X19-98877_vel4ytVtnE8FhvN87Cflz9sbh5QwHD1YGOeej9QP7hF3vlBR4EX2/S/09gRneeXVbQnjDOCd2KFMKRUWHLM7ZhFBk8AtlG+kvUawPZ+CIrwrD3mhi7NMv8UX/xkLK3HnBupMEuEwsMJgCUD8Pn6om1mEiQebHBAqu4cT7GN9Y0g_0_____Retail_CoreN
|
||||
1d1bac85-7365-4fea-949a-96978ec91ae0_N2%f%434-X9D%f%7W-8P%f%F6X-8DV%f%9T-8T%f%YMD__99_X19-99652_Nv17eUTrr1TmUX6frlI7V69VR6yWb7alppCFJPcdjfI+xX4/Cf2np3zm7jmC+zxFb9nELUs477/ydw2KCCXFfM53bKpBQZKHE5+MdGJGxebOCcOtJ3hrkDJtwlVxTQmUgk5xnlmpk8PHg82M2uM5B7UsGLxGKK4d3hi0voSyKeI_0_____Retail_CoreCountrySpecific
|
||||
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT%f%79Q-G7N%f%6G-PG%f%BYW-4YW%f%X6-6F%f%4BT_100_X19-99661_FV2Eao/R5v8sGrfQeOjQ4daokVlNOlqRCDZXuaC45bQd5PsNU3t1b4AwWeYM8TAwbHauzr4tPG0UlsUqUikCZHy0poROx35bBBMBym6Zbm9wDBVyi7nCzBtwS86eOonQ3cU6WfZxhZRze0POdR33G3QTNPrnVIM2gf6nZJYqDOA_0_____Retail_CoreSingleLanguage
|
||||
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YT%f%MG3-N6D%f%KC-DK%f%B77-7M9%f%GH-8H%f%VX7_101_X19-98868_GH/jwFxIcdQhNxJIlFka8c1H48PF0y7TgJwaryAUzqSKXynONLw7MVciDJFVXTkCjbXSdxLSWpPIC50/xyy1rAf8aC7WuN/9cRNAvtFPC1IVAJaMeq1vf4mCqRrrxJQP6ZEcuAeHFzLe/LLovGWCd8rrs6BbBwJXCvAqXImvycQ_0_____Retail_Core
|
||||
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XK%f%CNC-J26%f%Q9-KF%f%HD2-FKT%f%HY-KD%f%72Y_119_X19-99606_hci78IRWDLBtdbnAIKLDgV9whYgtHc1uYyp9y6FszE9wZBD5Nc8CUD2pI2s2RRd3M04C4O7M3tisB3Ov/XVjpAbxlX3MWfUR5w4MH0AphbuQX0p5MuHEDYyfqlRgBBRzOKePF06qfYvPQMuEfDpKCKFwNojQxBV8O0Arf5zmrIw_0_OEM:NONSLP_PPIPro
|
||||
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YN%f%MGQ-8RY%f%V3-4P%f%GQ3-C8X%f%TP-7C%f%FBY_121_X19-98886_x9tPFDZmjZMf29zFeHV5SHbXj8Wd8YAcCn/0hbpLcId4D7OWqkQKXxXHIegRlwcWjtII0sZ6WYB0HQV2KH3LvYRnWKpJ5SxeOgdzBIJ6fhegYGGyiXsBv9sEb3/zidPU6ZK9LugVGAcRZ6HQOiXyOw+Yf5H35iM+2oDZXSpjvJw_0_____Retail_Education
|
||||
c5198a66-e435-4432-89cf-ec777c9d0352_84%f%NGF-MHB%f%T6-FX%f%BX8-QWJ%f%K7-DR%f%R8H_122_X19-98892_jkL4YZkmBCJtvL1fT30ZPBcjmzshBSxjwrE0Q00AZ1hYnhrH+npzo1MPCT6ZRHw19ZLTz7wzyBb0qqcBVbtEjZW0Xs2MYLxgriyoONkhnPE6KSUJBw7C0enFVLHEqnVu/nkaOFfockN3bc+Eouw6W2lmHjklPHc9c6Clo04jul0_0_____Retail_EducationN
|
||||
f6e29426-a256-4316-88bf-cc5b0f95ec0c_PJ%f%B47-8PN%f%2T-MC%f%GDY-JTY%f%3D-CB%f%CPV_125_X23-50331_OPGhsyx+Ctw7w/KLMRNrY+fNBmKPjUG0R9RqkWk4e8ez+ExSJxSLLex5WhO5QSNgXLmEra+cCsN6C638aLjIdH2/L7D+8z/C6EDgRvbHMmidHg1lX3/O8lv0JudHkGtHJYewjorn/xXGY++vOCTQdZNk6qzEgmYSvPehKfdg8js_1_Volume:MAK_EnterpriseS_Ge
|
||||
cce9d2de-98ee-4ce2-8113-222620c64a27_KC%f%NVH-YKW%f%X8-GJ%f%JB9-H9F%f%DT-6F%f%7W2_125_X22-66075_GCqWmJOsTVun9z4QkE9n2XqBvt3ZWSPl9QmIh9Q2mXMG/QVt2IE7S+ES/NWlyTSNjLVySr1D2sGjxgEzy9kLwn7VENQVJ736h1iOdMj/3rdqLMSpTa813+nPSQgKpqJ3uMuvIvRP0FdB7Y4qt8qf9kNKK25A1QknioD/6YubL/4_1_Volume:MAK_EnterpriseS_VB
|
||||
d06934ee-5448-4fd1-964a-cd077618aa06_43%f%TBQ-NH9%f%2J-XK%f%TM7-KT3%f%KK-P3%f%9PB_125_X21-83233_EpB6qOCo8pRgO5kL4vxEHck2J1vxyd9OqvxUenDnYO9AkcGWat/D74ZcFg5SFlIya1U8l5zv+tsvZ4wAvQ1IaFW1PwOKJLOaGgejqZ41TIMdFGGw+G+s1RHsEnrWr3UOakTodby1aIMUMoqf3NdaM5aWFo8fOmqWC5/LnCoighs_0_OEM:NONSLP_EnterpriseS_RS5
|
||||
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK%f%96Y-D9C%f%D8-W4%f%4CQ-R8Y%f%TK-DY%f%JWX_125_X21-05035_ntcKmazIvLpZOryft28gWBHu1nHSbR+Gp143f/BiVe+BD2UjHBZfSR1q405xmQZsygz6VRK6+zm8FPR++71pkmArgCLhodCQJ5I4m7rAJNw/YX99pILphi1yCRcvHsOTGa825GUVXgf530tHT6hr0HQ1lGeGgG1hPekpqqBbTlg_0_OEM:NONSLP_EnterpriseS_RS1
|
||||
faa57748-75c8-40a2-b851-71ce92aa8b45_FW%f%N7H-PF9%f%3Q-4G%f%GP8-M8R%f%F3-MD%f%WWW_125_X19-99617_Fe9CDClilrAmwwT7Yhfx67GafWRQEpwyj8R+a4eaTqbpPcAt7d1hv1rx8Sa9AzopEGxIrb7IhiPoDZs0XaT1HN0/olJJ/MnD73CfBP4sdQdLTsSJE3dKMWYTQHpnjqRaS/pNBYRr8l9Mv8yfcP8uS2MjIQ1cRTqRmC7WMpShyCg_0_OEM:NONSLP_EnterpriseS_TH
|
||||
837766ff-61c5-427d-87c3-a2acbd44767a_XF%f%C77-XNR%f%XM-2Q%f%36W-FCM%f%9T-YH%f%DJ9_126_X23-50304_h6V6Q4DL/hlvcD3GyVxrVfP1BEL4a5TdyNCMlbq/OZnky/HowuRAcHMpN59fwqLS98+7WEDooWCrxriXcATwo0fwOGs/fEfP/Pa5SKP+Xnng1eoPm1PkjuZaqA8p2dPQv32wJ0u3QW7VMQM9BzzpyqtNAsqNS/wl7vfN7tyLbDo_1_Volume:MAK_EnterpriseSN_Ge
|
||||
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQ%f%FNW-9TP%f%M3-JQ%f%73T-QV4%f%VQ-DV%f%9PT_126_X22-66108_w/HFPDNCz4EogszDYZ8xUJh8aylfpgh6gzm9k8JSteprY5UumLc5n6KUwiSE3/5NaiI9gZ3xmTJq+g1OSPsdGwhuA+8LA2pQhA+wU8VO/ZaYxe1T4WF6oip/c0n6xA1sx/mWYNwd/WBDJpslTw5NRNLc5wWh0FV5RtxCaXE07lM_1_Volume:MAK_EnterpriseSN_VB
|
||||
e8f74caa-03fb-4839-8bcc-2e442b317e53_M3%f%3WV-NHY%f%3C-R7%f%FPM-BQG%f%PT-23%f%9PG_126_X21-83264_Fl7tjifybEI9hArxMVFKqIqmI6mrCZy4EtJyVjpo2eSfeMTBli55+E0i2AaPfE2FJknUig7HuiNC1Pu2IWZcj5ShVFQEKPY6K//RucX8oPQfh0zK5r1aNJNvV4gMlqvOyGD8sXttLBZv8wg1w/++cNk/z38DE2shiDf7LYnK4w0_1_Volume:MAK_EnterpriseSN_RS5
|
||||
3d1022d8-969f-4222-b54b-327f5a5af4c9_2D%f%BW3-N2P%f%JG-MV%f%HW3-G7T%f%DK-9H%f%KR4_126_X21-04921_zLPNvcl1iqOefy0VLg+WZgNtRNhuGpn8+BFKjMqjaNOSKiuDcR6GNDS5FF1Aqk6/e6shJ+ohKzuwrnmYq3iNQ3I2MBlYjM5kuNfKs8Vl9dCjSpQr//GBGps6HtF2xrG/2g/yhtYC7FbtGDIE16uOeNKFcVg+XMb0qHE/5Etyfd8_0_Volume:MAK_EnterpriseSN_RS1
|
||||
60c243e1-f90b-4a1b-ba89-387294948fb6_NT%f%X6B-BRY%f%C2-K6%f%786-F6M%f%VQ-M7%f%V2X_126_X19-98770_kbXfe0z9Vi1S0yfxMWzI5+UtWsJKzxs7wLGUDLjrckFDn1bDQb4MvvuCK1w+Qrq33lemiGpNDspa+ehXiYEeSPFcCvUBpoMlGBFfzurNCHWiv3o1k3jBoawJr/VoDoVZfxhkps0fVoubf9oy6C6AgrkZ7PjCaS58edMcaUWvYYg_0_Volume:MAK_EnterpriseSN_TH
|
||||
01eb852c-424d-4060-94b8-c10d799d7364_3X%f%P6D-CRN%f%D4-DR%f%YM2-GM8%f%4D-4G%f%G8Y_139_X23-37869_PVW0XnRJnsWYjTqxb6StCi2tge/uUwegjdiFaFUiZpwdJ620RK+MIAsSq5S+egXXzIWNntoy2fB6BO8F1wBFmxP/mm/3rn5C33jtF5QrbNqY7X9HMbqSiC7zhs4v4u2Xa4oZQx8JQkwr8Q2c/NgHrOJKKRASsSckhunxZ+WVEuM_1_____Retail_ProfessionalCountrySpecific_Zn
|
||||
eb6d346f-1c60-4643-b960-40ec31596c45_DX%f%G7C-N36%f%C4-C4%f%HTG-X4T%f%3X-2Y%f%V77_161_X21-43626_MaVqTkRrGnOqYizl15whCOKWzx01+BZTVAalvEuHXM+WV55jnIfhWmd/u1GqCd5OplqXdU959zmipK2Iwgu2nw/g91nW//sQiN/cUcvg1Lxo6pC3gAo1AjTpHmGIIf9XlZMYlD+Vl6gXsi/Auwh3yrSSFh5s7gOczZoDTqQwHXA_0_____Retail_ProfessionalWorkstation
|
||||
89e87510-ba92-45f6-8329-3afa905e3e83_WY%f%PNQ-8C4%f%67-V2%f%W6J-TX4%f%WX-WT%f%2RQ_162_X21-43644_JVGQowLiCcPtGY9ndbBDV+rTu/q5ljmQTwQWZgBIQsrAeQjLD8jLEk/qse7riZ7tMT6PKFVNXeWqF7PhLAmACbE8O3Lvp65XMd/Oml9Daynj5/4n7unsffFHIHH8TGyO5j7xb4dkFNqC5TX3P8/1gQEkTIdZEOTQQXFu0L2SP5c_0_____Retail_ProfessionalWorkstationN
|
||||
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8P%f%TT6-RNW%f%4C-6V%f%7J2-C2D%f%3X-MH%f%BPB_164_X21-04955_CEDgxI8f/fxMBiwmeXw5Of55DG32sbGALzHihXkdbYTDaE3pY37oAA4zwGHALzAFN/t254QImGPYR6hATgl+Cp804f7serJqiLeXY965Zy67I4CKIMBm49lzHLFJeDnVTjDB0wVyN29pvgO3+HLhZ22KYCpkRHFFMy2OKxS68Yc_0_____Retail_ProfessionalEducation
|
||||
13a38698-4a49-4b9e-8e83-98fe51110953_GJ%f%TYN-HDM%f%QY-FR%f%R76-HVG%f%C7-QP%f%F8P_165_X21-04956_r35zp9OfxKSBcTxKWon3zFtbOiCufAPo6xRGY5DJqCRFKdB0jgZalNQitvjmaZ/Rlez2vjRJnEart4LrvyW4d9rrukAjR3+c3UkeTKwoD3qBl9AdRJbXCa2BdsoXJs1WVS4w4LuVzpB/SZDuggZt0F2DlMB427F5aflook/n1pY_0_____Retail_ProfessionalEducationN
|
||||
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJ%f%CF7-PW8%f%QT-33%f%24D-688%f%JX-2Y%f%V66_175_X21-41295_rVpetYUmiRB48YJfCvJHiaZapJ0bO8gQDRoql+rq5IobiSRu//efV1VXqVpBkwILQRKgKIVONSTUF5y2TSxlDLbDSPKp7UHfbz17g6vRKLwOameYEz0ZcK3NTbApN/cMljHvvF/mBag1+sHjWu+eoFzk8H89k9nw8LMeVOPJRDc_0_____Retail_ServerRdsh
|
||||
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3%f%WVW-N2P%f%V2-CG%f%WC3-34Q%f%GF-VM%f%J2C_178_X21-32983_Xzme9hDZR6H0Yx0deURVdE6LiTOkVqWng5W/OTbkxRc0rq+mSYpo/f/yqhtwYlrkBPWx16Yok5Bvcb34vbKHvEAtxfYp4te20uexLzVOtBcoeEozARv4W/6MhYfl+llZtR5efsktj4N4/G4sVbuGvZ9nzNfQO9TwV6NGgGEj2Ec_0_____Retail_Cloud
|
||||
af5c9381-9240-417d-8d35-eb40cd03e484_NH%f%9J3-68W%f%K7-6F%f%B93-4K3%f%DF-DJ%f%4F6_179_X21-32987_QGRDZOU/VZhYLOSdp2xDnFs8HInNZctcQlWCIrORVnxTQr55IJwN4vK3PJHjkfRLQ/bgUrcEIhyFbANqZFUq8yD1YNubb2bjNORgI/m8u85O9V7nDGtxzO/viEBSWyEHnrzLKKWYqkRQKbbSW3ungaZR0Ti5O2mAUI4HzAFej50_0_____Retail_CloudN
|
||||
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQ%f%QYW-NFF%f%MW-XJ%f%PBH-K87%f%32-CK%f%FFD_188_X21-99378_djy0od0uuKd2rrIl+V1/2+MeRltNgW7FEeTNQsPMkVSL75NBphgoso4uS0JPv2D7Y1iEEvmVq6G842Kyt52QOwXgFWmP/IQ6Sq1dr+fHK/4Et7bEPrrGBEZoCfWqk0kdcZRPBij2KN6qCRWhrk1hX2g+U40smx/EYCLGh9HCi24_0_____OEM:DM_IoTEnterprise
|
||||
ed655016-a9e8-4434-95d9-4345352c2552_QP%f%M6N-7J2%f%WJ-P8%f%8HH-P3Y%f%RH-YY%f%74H_191_X21-99682_qHs/PzfhYWdtSys2edzcz4h+Qs8aDqb8BIiQ/mJ/+0uyoJh1fitbRCIgiFh2WAGZXjdgB8hZeheNwHibd8ChXaXg4u+0XlOdFlaDTgTXblji8fjETzDBk9aGkeMCvyVXRuUYhTSdp83IqGHz7XuLwN2p/6AUArx9JZCoLGV8j3w_0_OEM:NONSLP_IoTEnterpriseS_VB
|
||||
6c4de1b8-24bb-4c17-9a77-7b939414c298_CG%f%K42-GYN%f%6Y-VD%f%22B-BX9%f%8W-J8%f%JXD_191_X23-12617_J/fpIRynsVQXbp4qZNKp6RvOgZ/P2klILUKQguMlcwrBZybwNkHg/kM5LNOF/aDzEktbPnLnX40GEvKkYT6/qP4cMhn/SOY0/hYOkIdR34ilzNlVNq5xP7CMjCjaUYJe+6ydHPK6FpOuEoWOYYP5BZENKNGyBy4w4shkMAw19mA_0_OEM:NONSLP_IoTEnterpriseS_Ge
|
||||
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9%f%VKN-3BG%f%WV-Y6%f%24W-MCR%f%MQ-BH%f%DCD_202_X22-53884_kyoNx2s93U6OUSklB1xn+GXcwCJO1QTEtACYnChi8aXSoxGQ6H2xHfUdHVCwUA1OR0UeNcRrMmOzZBOEUBtdoGWSYPg9AMjvxlxq9JOzYAH+G6lT0UbCWgMSGGrqdcIfmshyEak3aUmsZK6l+uIAFCCZZ/HbbCRkkHC5rWKstMI_0_____Retail_CloudEditionN
|
||||
92fb8726-92a8-4ffc-94ce-f82e07444653_KY%f%7PN-VR6%f%RX-83%f%W6Y-6DD%f%YQ-T6%f%R4W_203_X22-53847_gD6HnT4jP4rcNu9u83gvDiQq1xs7QSujcDbo60Di5iSVa9/ihZ7nlhnA0eDEZfnoDXriRiPPqc09T6AhSnFxLYitAkOuPJqL5UMobIrab9dwTKlowqFolxoHhLOO4V92Hsvn/9JLy7rEzoiAWHhX/0cpMr3FCzVYPeUW1OyLT1A_0_____Retail_CloudEdition
|
||||
5a85300a-bfce-474f-ac07-a30983e3fb90_N9%f%79K-XWD%f%77-YW%f%3GB-HBG%f%H6-D3%f%2MH_205_X23-15042_blZopkUuayCTgZKH4bOFiisH9GTAHG5/js6UX/qcMWWc3sWNxKSX1OLp1k3h8Xx1cFuvfG/fNAw/I83ssEtPY+A0Gx1JF4QpRqsGOqJ5ruQ2tGW56CJcCVHkB+i46nJAD759gYmy3pEYMQbmpWbhLx3MJ6kvwxKfU+0VCio8k50_0_____OEM:DM_IoTEnterpriseSK
|
||||
80083eae-7031-4394-9e88-4901973d56fe_P8%f%Q7T-WNK%f%7X-PM%f%FXY-VXH%f%BG-RR%f%K69_206_X23-62084_habUJ0hhAG0P8iIKaRQ74/wZQHyAdFlwHmrejNjOSRG08JeqilJlTM6V8G9UERLJ92/uMDVHIVOPXfN8Zdh8JuYO8oflPnqymIRmff/pU+Gpb871jV2JDA4Cft5gmn+ictKoN4VoSfEZRR+R5hzF2FsoCExDNNw6gLdjtiX94uA_0_____OEM:DM_IoTEnterpriseK
|
||||
) do (
|
||||
for /f "tokens=1-9 delims=_" %%A in ("%%#") do (
|
||||
|
||||
REM Detect key
|
||||
|
||||
if %1==key if %osSKU%==%%C if not defined key (
|
||||
set skufound=1
|
||||
echo "!applist! !altapplist!" | find /i "%%A" %nul1% && (
|
||||
if %%F==1 set notworking=1
|
||||
set key=%%B
|
||||
@ -1208,7 +1309,7 @@ set key=%%B
|
||||
REM Generate ticket
|
||||
|
||||
if %1==ticket if "%key%"=="%%B" (
|
||||
set "string=OSMajorVersion=5;OSMinorVersion=1;OSPlatformId=2;PP=0;Pfn=Microsoft.Windows.%%C.%%D_8wekyb3d8bbwe;DownlevelGenuineState=1;$([char]0)"
|
||||
set "string=OSMajorVersion=5;OSMinorVersion=1;OSPlatformId=2;PP=0;Pfn=Microsoft.Windows.%%C.%%D_8wekyb3d8bbwe;PKeyIID=465145217131314304264339481117862266242033457260311819664735280;$([char]0)"
|
||||
for /f "tokens=* delims=" %%i in ('%psc% [conv%f%ert]::ToBas%f%e64String([Text.En%f%coding]::Uni%f%code.GetBytes("""!string!"""^)^)') do set "encoded=%%i"
|
||||
echo "!encoded!" | find "AAAA" %nul1% || exit /b
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
@set masver=2.5
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
@ -66,7 +67,7 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=mass%blank%grave.dev"
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@ -76,7 +77,7 @@ echo:
|
||||
echo Null service is not running, script may crash...
|
||||
echo:
|
||||
echo:
|
||||
echo Help - https://%mas%/troubleshoot.html
|
||||
echo Help - %mas%troubleshoot.html
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 10
|
||||
@ -100,7 +101,7 @@ popd
|
||||
|
||||
cls
|
||||
color 07
|
||||
title KMS38 Activation
|
||||
title KMS38 Activation %masver%
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
@ -193,7 +194,7 @@ set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
@ -217,7 +218,7 @@ goto dk_done
|
||||
%nul1% fltmc || (
|
||||
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require admin privileges.
|
||||
echo This script requires admin privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto dk_done
|
||||
)
|
||||
@ -239,6 +240,35 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check for updates
|
||||
|
||||
set -=
|
||||
set old=
|
||||
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
|
||||
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
|
||||
)
|
||||
|
||||
if defined old (
|
||||
echo ________________________________________________
|
||||
%eline%
|
||||
echo You are running outdated version MAS %masver%
|
||||
echo ________________________________________________
|
||||
echo:
|
||||
if not %_unattended%==1 (
|
||||
echo [1] Get Latest MAS
|
||||
echo [0] Continue Anyway
|
||||
echo:
|
||||
call :dk_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 rem
|
||||
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
|
||||
)
|
||||
)
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %_rem%==1 goto :k_uninstall
|
||||
|
||||
:k_menu
|
||||
@ -246,7 +276,7 @@ if %_rem%==1 goto :k_uninstall
|
||||
if %_unattended%==0 (
|
||||
cls
|
||||
mode 76, 25
|
||||
title KMS38 Activation
|
||||
title KMS38 Activation %masver%
|
||||
|
||||
echo:
|
||||
echo:
|
||||
@ -276,11 +306,28 @@ goto :k_menu
|
||||
:k_menu2
|
||||
|
||||
cls
|
||||
mode 108, 34
|
||||
title KMS38 Activation
|
||||
mode 110, 34
|
||||
if exist "%Systemdrive%\Windows\System32\spp\store_test\" mode 134, 34
|
||||
title KMS38 Activation %masver%
|
||||
|
||||
echo:
|
||||
echo Initializing...
|
||||
|
||||
:: Check PowerShell
|
||||
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode %nul2% | find /i "Full" %nul1% || (
|
||||
%eline%
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode
|
||||
echo:
|
||||
echo PowerShell is not working. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
call :dk_product
|
||||
call :dk_ckeckwmic
|
||||
|
||||
@ -337,7 +384,7 @@ echo Evaluation Editions cannot be activated.
|
||||
echo You need to install full version of %winos%
|
||||
echo:
|
||||
echo Download it from here,
|
||||
echo https://%mas%/genuine-installation-media.html
|
||||
echo %mas%genuine-installation-media.html
|
||||
)
|
||||
goto dk_done
|
||||
)
|
||||
@ -356,34 +403,14 @@ if not exist "!_work!\clipup.exe" (
|
||||
echo clipup.exe doesn't exist in Server Cor/Acor [No GUI] version.
|
||||
echo It's required for KMS38 Activation.
|
||||
echo Check below page on how to activate it.
|
||||
echo https://%mas%/kms38.html
|
||||
echo %mas%kms38.html
|
||||
goto dk_done
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value / Check in multiple places to find Edition change corruption
|
||||
|
||||
set osSKU=
|
||||
set slcSKU=
|
||||
set wmiSKU=
|
||||
set regSKU=
|
||||
|
||||
if %winbuild% GEQ 14393 (set info=Kernel-BrandingInfo) else (set info=Kernel-ProductInfo)
|
||||
set d1=%ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
|
||||
set d1=%d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info%', [ref]$Sku); $Sku
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') do if not errorlevel 1 (set slcSKU=%%s)
|
||||
if "%slcSKU%"=="0" set slcSKU=
|
||||
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU=
|
||||
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn %nul6%') do set "regSKU=%%a"
|
||||
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"
|
||||
|
||||
set osSKU=%slcSKU%
|
||||
if not defined osSKU set osSKU=%wmiSKU%
|
||||
if not defined osSKU set osSKU=%regSKU%
|
||||
call :dk_checksku
|
||||
|
||||
if not defined osSKU (
|
||||
%eline%
|
||||
@ -442,11 +469,11 @@ if /i "Volume:GVLK"=="%_channel%" set _gvlk=1
|
||||
set key=
|
||||
set pkey=
|
||||
set altkey=
|
||||
set skufound=
|
||||
set changekey=
|
||||
set altedition=
|
||||
|
||||
if defined applist call :kms38data getkey
|
||||
|
||||
call :kms38data getkey
|
||||
if not defined key call :dk_gvlk %nul%
|
||||
if defined applist if not defined key call :kms38fallback
|
||||
|
||||
@ -467,9 +494,13 @@ call :dk_color %Red% "Checking Alternate Edition For KMS38 [%altedition% Acti
|
||||
if not defined key if not defined _gvlk (
|
||||
%eline%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%]
|
||||
if not defined skufound (
|
||||
echo Unable to find this product in the supported product list.
|
||||
) else (
|
||||
echo Required License files not installed.
|
||||
)
|
||||
echo Make sure you are using updated version of the script.
|
||||
echo https://%mas%
|
||||
echo %mas%
|
||||
echo:
|
||||
goto dk_done
|
||||
)
|
||||
@ -523,6 +554,7 @@ if %_wmic% EQU 0 for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELE
|
||||
|
||||
if not defined app (
|
||||
call :dk_color %Red% "Checking Installed GVLK Activation ID [Not Found] Aborting..."
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " %mas%troubleshoot"
|
||||
goto :dk_done
|
||||
)
|
||||
|
||||
@ -577,6 +609,7 @@ goto :k_final
|
||||
|
||||
if not exist %SystemRoot%\system32\ClipUp.exe (
|
||||
call :dk_color %Red% "Checking ClipUp.exe File [Not found, aborting the process]"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " %mas%troubleshoot"
|
||||
goto :k_final
|
||||
)
|
||||
|
||||
@ -609,9 +642,7 @@ set "_xmlexist=if exist "%tdir%\GenuineTicket.xml""
|
||||
|
||||
:: Stop sppsvc
|
||||
|
||||
net stop sppsvc /y %nul%
|
||||
net stop sppsvc /y %nul%
|
||||
net stop sppsvc /y %nul%
|
||||
%psc% Stop-Service sppsvc %nul%
|
||||
|
||||
sc query sppsvc | find /i "STOPPED" %nul% && (
|
||||
echo Stopping sppsvc Service [Successful]
|
||||
@ -620,8 +651,7 @@ call :dk_color %Gray% "Stopping sppsvc Service [Failed]"
|
||||
)
|
||||
|
||||
%_xmlexist% (
|
||||
net stop ClipSVC /y %nul%
|
||||
net start ClipSVC /y %nul%
|
||||
%psc% Restart-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
|
||||
@ -697,7 +727,7 @@ goto :k_final
|
||||
|
||||
call :dk_color %Red% "Activation Failed"
|
||||
if not defined error call :dk_color %Blue% "%_fixmsg%"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " https://%mas%/troubleshoot"
|
||||
call :dk_color2 %Blue% "Check this page for help" %_Yellow% " %mas%troubleshoot"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@ -722,7 +752,7 @@ if defined _k38 (
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':regdel\:.*';& ([ScriptBlock]::Create($f[1])) -protect;"
|
||||
%nul% reg delete "HKLM\%specific_kms%" /f
|
||||
%nul% reg query "HKLM\%specific_kms%" && (
|
||||
call :dk_color %Blue% "Protect KMS38 From KMS [Successful] [Locked A Registry Key]"
|
||||
echo Protect KMS38 From KMS [Successful] [Locked A Registry Key]
|
||||
) || (
|
||||
call :dk_color %Red% "Protect KMS38 From KMS [Failed To Lock A Registry Key]"
|
||||
)
|
||||
@ -752,7 +782,7 @@ goto :dk_done
|
||||
|
||||
cls
|
||||
mode 99, 28
|
||||
title Remove KMS38 Protection
|
||||
title Remove KMS38 Protection %masver%
|
||||
|
||||
%nul% reg delete "HKLM\%specific_kms%" /f
|
||||
%nul% reg delete "HKU\S-1-5-20\%specific_kms%" /f
|
||||
@ -803,6 +833,31 @@ $key.SetAccessControl($acl)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
:dk_checksku
|
||||
|
||||
set osSKU=
|
||||
set slcSKU=
|
||||
set wmiSKU=
|
||||
set regSKU=
|
||||
|
||||
if %winbuild% GEQ 14393 (set info=Kernel-BrandingInfo) else (set info=Kernel-ProductInfo)
|
||||
set d1=%ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
|
||||
set d1=%d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info%', [ref]$Sku); $Sku
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') do if not errorlevel 1 (set slcSKU=%%s)
|
||||
if "%slcSKU%"=="0" set slcSKU=
|
||||
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU=
|
||||
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn %nul6%') do set "regSKU=%%a"
|
||||
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"
|
||||
|
||||
set osSKU=%slcSKU%
|
||||
if not defined osSKU set osSKU=%wmiSKU%
|
||||
if not defined osSKU set osSKU=%regSKU%
|
||||
exit /b
|
||||
|
||||
:: Check KMS activation status
|
||||
|
||||
:k_actinfo
|
||||
@ -856,19 +911,6 @@ if %_wmic% EQU 0 set "chkapp=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISE
|
||||
%chkapp% do (if defined applist (call set "applist=!applist! %%a") else (call set "applist=%%a"))
|
||||
exit /b
|
||||
|
||||
:: Get SvcRestartTask info
|
||||
|
||||
:gettaskinfo:
|
||||
$task = Get-ScheduledTask | Where-Object { $_.TaskName -eq 'SvcRestartTask' -and $_.TaskPath -eq '\Microsoft\Windows\SoftwareProtectionPlatform\' }
|
||||
$info = $task | Get-ScheduledTaskInfo
|
||||
if ($info.LastRunTime -match 99) {
|
||||
$task | Start-ScheduledTask
|
||||
Start-Sleep -Seconds 3
|
||||
$info = $task | Get-ScheduledTaskInfo
|
||||
}
|
||||
"$($task.State) $($info.LastTaskResult) $($info.LastRunTime)"
|
||||
:gettaskinfo:
|
||||
|
||||
:: Check wmic.exe
|
||||
|
||||
:dk_ckeckwmic
|
||||
@ -966,7 +1008,11 @@ set _corrupt=
|
||||
sc start %%# %nul%
|
||||
if !errorlevel! EQU 1060 set _corrupt=1
|
||||
sc query %%# %nul% || set _corrupt=1
|
||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _corrupt (reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || set _corrupt=1)
|
||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _corrupt (
|
||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || set _corrupt=1
|
||||
if /i %%#==TrustedInstaller if /i %%G==DependOnService set _corrupt=
|
||||
)
|
||||
|
||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#") else (set "serv_cor=%%#"))
|
||||
)
|
||||
|
||||
@ -992,13 +1038,18 @@ set serv_cste=
|
||||
|
||||
if defined serv_ste (
|
||||
for %%# in (%serv_ste%) do (
|
||||
if /i %%#==ClipSVC (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "3" /f %nul% & sc config %%# start= demand %nul%)
|
||||
if /i %%#==wlidsvc sc config %%# start= demand %nul%
|
||||
if /i %%#==sppsvc (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "2" /f %nul% & sc config %%# start= delayed-auto %nul%)
|
||||
if /i %%#==KeyIso sc config %%# start= demand %nul%
|
||||
if /i %%#==LicenseManager sc config %%# start= demand %nul%
|
||||
if /i %%#==Winmgmt sc config %%# start= auto %nul%
|
||||
if /i %%#==wuauserv sc config %%# start= demand %nul%
|
||||
if /i %%#==ClipSVC (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "3" /f %nul% & sc config %%# start= demand %nul%)
|
||||
if /i %%#==wlidsvc sc config %%# start= demand %nul%
|
||||
if /i %%#==sppsvc (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "2" /f %nul% & sc config %%# start= delayed-auto %nul%)
|
||||
if /i %%#==KeyIso sc config %%# start= demand %nul%
|
||||
if /i %%#==LicenseManager sc config %%# start= demand %nul%
|
||||
if /i %%#==Winmgmt sc config %%# start= auto %nul%
|
||||
if /i %%#==DoSvc sc config %%# start= delayed-auto %nul%
|
||||
if /i %%#==UsoSvc sc config %%# start= delayed-auto %nul%
|
||||
if /i %%#==CryptSvc sc config %%# start= auto %nul%
|
||||
if /i %%#==BITS sc config %%# start= delayed-auto %nul%
|
||||
if /i %%#==wuauserv sc config %%# start= demand %nul%
|
||||
if /i %%#==WaaSMedicSvc sc config %%# start= demand %nul%
|
||||
if !errorlevel!==0 (
|
||||
if defined serv_csts (set "serv_csts=!serv_csts! %%#") else (set "serv_csts=%%#")
|
||||
) else (
|
||||
@ -1023,9 +1074,12 @@ set serv_e=
|
||||
for %%# in (%_serv%) do (
|
||||
set errorcode=
|
||||
set checkerror=
|
||||
net start %%# /y %nul%
|
||||
|
||||
sc query %%# | find /i "RUNNING" %nul% || (
|
||||
%psc% Start-Service %%# %nul%
|
||||
set errorcode=!errorlevel!
|
||||
sc query %%# | find /i "RUNNING" %nul% || set checkerror=1
|
||||
)
|
||||
|
||||
sc start %%# %nul%
|
||||
if !errorlevel! NEQ 1056 if !errorlevel! NEQ 0 (set errorcode=!errorlevel!&set checkerror=1)
|
||||
@ -1036,7 +1090,7 @@ if defined serv_e (
|
||||
set error=1
|
||||
call :dk_color %Red% "Starting Services [Failed] [%serv_e%]"
|
||||
echo %serv_e% | findstr /i "ClipSVC-1058 sppsvc-1058" %nul% && (
|
||||
call :dk_color %Blue% "Restart the system to fix disabled service error 1058."
|
||||
call :dk_color %Blue% "Restart the system to fix this error."
|
||||
set showfix=1
|
||||
)
|
||||
)
|
||||
@ -1048,48 +1102,80 @@ set showfix=1
|
||||
if defined safeboot_option (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color2 %Red% "Checking Boot Mode " %Blue% "[System is running in safe mode. Run in normal mode.]"
|
||||
call :dk_color2 %Red% "Checking Boot Mode [%safeboot_option%] " %Blue% "[Safe mode found. Run in normal mode.]"
|
||||
)
|
||||
|
||||
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State" %nul2% | find /i "IMAGE_STATE_COMPLETE" %nul1% || (
|
||||
for /f "skip=2 tokens=2*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State" /v ImageState') do (set imagestate=%%B)
|
||||
if /i not "%imagestate%"=="IMAGE_STATE_COMPLETE" (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Windows Setup State [%imagestate%]"
|
||||
echo "%imagestate%" | find /i "RESEAL" %nul% && (
|
||||
set showfix=1
|
||||
call :dk_color2 %Red% "Checking Audit Mode " %Blue% "[IMAGE_STATE_COMPLETE status not found. Run in normal mode.]"
|
||||
call :dk_color %Blue% "You need to run it in normal mode in case you are running it in Audit Mode."
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE" /v InstRoot %nul% && (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color2 %Red% "Checking WinPE " %Blue% "[System is running in WinPE mode. Run in normal mode.]"
|
||||
call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE mode found. Run in normal mode.]"
|
||||
)
|
||||
|
||||
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode %nul2% | find /i "Full" %nul1% || (
|
||||
set wpainfo=
|
||||
set wpaerror=
|
||||
for /f "delims=" %%a in ('%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':wpatest\:.*';iex ($f[1]);" %nul6%') do (set wpainfo=%%a)
|
||||
echo "%wpainfo%" | find /i "Error Found" %nul% && (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Powershell [Not Responding]"
|
||||
set wpaerror=1
|
||||
call :dk_color %Red% "Checking WPA Registry Error [%wpainfo%]"
|
||||
) || (
|
||||
echo Checking WPA Registry Count [%wpainfo%]
|
||||
)
|
||||
|
||||
|
||||
DISM /English /Online /Get-CurrentEdition %nul%
|
||||
set dism_error=%errorlevel%
|
||||
cmd /c exit /b %dism_error%
|
||||
if %dism_error% NEQ 0 set "dism_error=[0x%=ExitCode%]"
|
||||
if %dism_error% NEQ 0 set "dism_error=0x%=ExitCode%"
|
||||
if %dism_error% NEQ 0 (
|
||||
call :dk_color %Red% "Checking DISM [Not Responding] %dism_error%"
|
||||
call :dk_color %Red% "Checking DISM [Not Responding] [%dism_error%]"
|
||||
)
|
||||
|
||||
|
||||
if not defined officeact if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color %Red% "Checking Eval Packages [Non-Eval Licenses are installed in Eval Windows]"
|
||||
if /i %dism_error%==[0x800F0805] (
|
||||
for %%# in (4 125 126 188 191 205) do if "%osSKU%"=="%%#" (
|
||||
call :dk_color %Blue% "Evaluation Windows can not be activated and different License install may lead to errors."
|
||||
call :dk_color %Blue% "It is recommended to install full version of %winos%."
|
||||
call :dk_color %Blue% "You can download it from https://%mas%/genuine-installation-media.html"
|
||||
set showfix=1
|
||||
call :dk_color %Blue% "You can download it from %mas%genuine-installation-media.html"
|
||||
)
|
||||
|
||||
|
||||
set osedition=
|
||||
for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul6%') do set "osedition=%%a"
|
||||
|
||||
:: Workaround for an issue in builds between 1607 and 1709 where ProfessionalEducation is shown as Professional
|
||||
|
||||
if "%osSKU%"=="164" set osedition=ProfessionalEducation
|
||||
if "%osSKU%"=="165" set osedition=ProfessionalEducationN
|
||||
|
||||
if not defined officeact (
|
||||
if not defined osedition (
|
||||
call :dk_color %Red% "Checking Edition Name [Not Found In Registry]"
|
||||
) else (
|
||||
|
||||
if not exist "%SystemRoot%\System32\spp\tokens\skus\%osedition%\%osedition%*.xrm-ms" (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking License Files [Not Found] [%osedition%]"
|
||||
)
|
||||
|
||||
if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*-%osedition%-*.mum" (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Package File [Not Found] [%osedition%]"
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -1148,15 +1234,14 @@ call :dk_color2 %Red% "Checking ClipSVC " %Blue% "[System
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "SkipRearm" %nul6%') do if /i %%b NEQ 0x0 (
|
||||
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "SkipRearm" /t REG_DWORD /d "0" /f %nul%
|
||||
call :dk_color %Red% "Checking SkipRearm [Default 0 Value Not Found. Changing To 0]"
|
||||
net stop sppsvc /y %nul%
|
||||
net start sppsvc /y %nul%
|
||||
%psc% Restart-Service sppsvc %nul%
|
||||
set error=1
|
||||
)
|
||||
|
||||
|
||||
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]"
|
||||
call :dk_color %Blue% "Possibly Caused By Gaming Spoofers. Help: https://%mas%/troubleshoot"
|
||||
call :dk_color %Blue% "Possibly Caused By Gaming Spoofers. Help: %mas%troubleshoot"
|
||||
set error=1
|
||||
set showfix=1
|
||||
)
|
||||
@ -1179,7 +1264,7 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found. Creat
|
||||
|
||||
call :dk_actids
|
||||
if not defined applist (
|
||||
net stop sppsvc /y %nul%
|
||||
%psc% Stop-Service sppsvc %nul%
|
||||
cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul%
|
||||
if !errorlevel! NEQ 0 cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul%
|
||||
call :dk_refresh
|
||||
@ -1204,38 +1289,9 @@ call :dk_color %Red% "Checking sppsvc.exe File [Not Found]"
|
||||
)
|
||||
|
||||
|
||||
set task=
|
||||
set taskerror=
|
||||
if not defined wmifailed if not defined officeact (
|
||||
for /f "delims=" %%a in ('%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':gettaskinfo\:.*';iex ($f[1]);"') do (set task=%%a)
|
||||
echo "!task!" | find /i "Ready 0 " %nul% || set taskerror=1
|
||||
echo "!task!" | find "99" %nul% && set taskerror=1
|
||||
if defined taskerror (
|
||||
call :dk_color %Gray% "Checking SvcRestartTask Last Run [Issues Found, !task!]"
|
||||
call :dk_color %Gray% "Windows may face issues in keeping activation. Help: https://%mas%/troubleshoot"
|
||||
)
|
||||
)
|
||||
:: This code checks if NT SERVICE\sppsvc has permission access to tokens folder and required registry keys. It's often caused by gaming spoofers.
|
||||
|
||||
|
||||
:: Below checks are performed if required services are not disabled or corrupted + if there is any error + slmgr /dlv errorlevel is not Zero + no fix was shown before
|
||||
|
||||
set wpaerror=
|
||||
set permerror=
|
||||
if not defined serv_cor if not defined serv_cste if defined error if /i not %error_code%==0 if not defined showfix (
|
||||
|
||||
REM This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems.
|
||||
|
||||
if %winbuild% GEQ 14393 (
|
||||
set /a count=0
|
||||
for /f %%a in ('reg query "HKLM\SYSTEM\WPA" %nul6%') do set /a count+=1
|
||||
for /L %%# in (1,1,!count!) do (
|
||||
reg query "HKLM\SYSTEM\WPA\8DEC0AF1-0341-4b93-85CD-72606C2DF94C-7P-%%#" /ve /t REG_BINARY %nul% || set wpaerror=1
|
||||
)
|
||||
if defined wpaerror call :dk_color %Red% "Checking WPA Registry Keys [Error Found] [Registry Count - !count!]"
|
||||
)
|
||||
|
||||
REM This code checks if NT SERVICE\sppsvc has permission access to tokens folder and required registry keys. It's often caused by gaming spoofers.
|
||||
|
||||
if not exist "%tokenstore%\" set permerror=1
|
||||
|
||||
for %%# in (
|
||||
@ -1246,15 +1302,65 @@ for %%# in (
|
||||
%psc% "$acl = Get-Acl '%%#'; if ($acl.Access.Where{ $_.IdentityReference -eq 'NT SERVICE\sppsvc' -and $_.AccessControlType -eq 'Deny' -or $acl.Access.IdentityReference -notcontains 'NT SERVICE\sppsvc'}) {Exit 2}" %nul%
|
||||
if !errorlevel!==2 set permerror=1
|
||||
)
|
||||
if defined permerror call :dk_color %Red% "Checking SPP Permissions [Error Found]"
|
||||
if defined permerror (
|
||||
set error=1
|
||||
set showfix=1
|
||||
call :dk_color %Red% "Checking SPP Permissions [Error Found]"
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
)
|
||||
|
||||
|
||||
:: If required services are not disabled or corrupted + if there is any error + slmgr /dlv errorlevel is not Zero + no fix was shown before
|
||||
|
||||
if not defined serv_cor if not defined serv_cste if defined error if /i not %error_code%==0 if not defined showfix (
|
||||
set showfix=1
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
if not defined permerror call :dk_color %Blue% "If activation still fails then run Fix WPA Registry option."
|
||||
)
|
||||
|
||||
if not defined showfix if defined wpaerror (
|
||||
set showfix=1
|
||||
call :dk_color %Blue% "If activation fails then go back to Main Menu, select Troubleshoot and run Fix WPA Registry option."
|
||||
)
|
||||
|
||||
exit /b
|
||||
|
||||
:: This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems
|
||||
|
||||
:wpatest:
|
||||
$wpaKey = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Registry64').OpenSubKey("SYSTEM\\WPA")
|
||||
$count = $wpaKey.SubKeyCount
|
||||
|
||||
$osVersion = [System.Environment]::OSVersion.Version
|
||||
$minBuildNumber = 14393
|
||||
|
||||
if ($osVersion.Build -ge $minBuildNumber) {
|
||||
$subkeyHashTable = @{}
|
||||
foreach ($subkeyName in $wpaKey.GetSubKeyNames()) {
|
||||
$keyNumber = $subkeyName -replace '.*-', ''
|
||||
$subkeyHashTable[$keyNumber] = $true
|
||||
}
|
||||
for ($i=1; $i -le $count; $i++) {
|
||||
if (-not $subkeyHashTable.ContainsKey("$i")) {
|
||||
Write-Host "Total Keys $count. Error Found- $i key does not exist"
|
||||
$wpaKey.Close()
|
||||
exit
|
||||
}
|
||||
}
|
||||
}
|
||||
$wpaKey.GetSubKeyNames() | ForEach-Object {
|
||||
$subkey = $wpaKey.OpenSubKey($_)
|
||||
$p = $subkey.GetValueNames()
|
||||
if (($p | Where-Object { $subkey.GetValueKind($_) -eq [Microsoft.Win32.RegistryValueKind]::Binary }).Count -eq 0) {
|
||||
Write-Host "Total Keys $count. Error Found- Binary Data is corrupt"
|
||||
$wpaKey.Close()
|
||||
exit
|
||||
}
|
||||
}
|
||||
$count
|
||||
$wpaKey.Close()
|
||||
:wpatest:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_color
|
||||
@ -1298,57 +1404,62 @@ exit /b
|
||||
|
||||
set f=
|
||||
for %%# in (
|
||||
73111121-5638-40f6-bc11-f1d7b0d64300_NPP%f%R9-FW%f%DCX-D2C%f%8J-H8%f%72K-2Y%f%T43___4_Enterprise
|
||||
9bd77860-9b31-4b7b-96ad-2564017315bf_VDY%f%BN-27%f%WPP-V4H%f%QT-9V%f%MD4-VM%f%K7H___7_ServerStandard_FE
|
||||
de32eafd-aaee-4662-9444-c1befb41bde2_N69%f%G4-B8%f%9J2-4G8%f%F4-WW%f%YCC-J4%f%64C___7_ServerStandard_RS5
|
||||
8c1c5410-9f39-4805-8c9d-63a07706358f_WC2%f%BQ-8N%f%RM3-FDD%f%YY-2B%f%FGV-KH%f%KQY___7_ServerStandard_RS1
|
||||
ef6cfc9f-8c5d-44ac-9aad-de6a2ea0ae03_WX4%f%NM-KY%f%WYW-QJJ%f%R4-XV%f%3QB-6V%f%M33___8_ServerDatacenter_FE
|
||||
34e1ae55-27f8-4950-8877-7a03be5fb181_WMD%f%GN-G9%f%PQG-XVV%f%XX-R3%f%X43-63%f%DFG___8_ServerDatacenter_RS5
|
||||
21c56779-b449-4d20-adfc-eece0e1ad74b_CB7%f%KF-BW%f%N84-R7R%f%2Y-79%f%3K2-8X%f%DDG___8_ServerDatacenter_RS1
|
||||
e272e3e2-732f-4c65-a8f0-484747d0d947_DPH%f%2V-TT%f%NVB-4X9%f%Q3-TJ%f%R4H-KH%f%JW4__27_EnterpriseN
|
||||
2de67392-b7a7-462a-b1ca-108dd189f588_W26%f%9N-WF%f%GWX-YVC%f%9B-4J%f%6C9-T8%f%3GX__48_Professional
|
||||
a80b5abf-76ad-428b-b05d-a47d2dffeebf_MH3%f%7W-N4%f%7XK-V7X%f%M9-C7%f%227-GC%f%QG9__49_ProfessionalN
|
||||
034d3cbb-5d4b-4245-b3f8-f84571314078_WVD%f%HN-86%f%M7X-466%f%P6-VH%f%XV7-YY%f%726__50_ServerSolution_RS5
|
||||
2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283_JCK%f%RF-N3%f%7P4-C2D%f%82-9Y%f%XRT-4M%f%63B__50_ServerSolution_RS1
|
||||
7b9e1751-a8da-4f75-9560-5fadfe3d8e38_3KH%f%Y7-WN%f%T83-DGQ%f%KR-F7%f%HPR-84%f%4BM__98_CoreN
|
||||
a9107544-f4a0-4053-a96a-1479abdef912_PVM%f%JN-6D%f%FY6-9CC%f%P6-7B%f%KTT-D3%f%WVR__99_CoreCountrySpecific
|
||||
cd918a57-a41b-4c82-8dce-1a538e221a83_7HN%f%RX-D7%f%KGG-3K4%f%RQ-4W%f%PJ4-YT%f%DFH_100_CoreSingleLanguage
|
||||
58e97c99-f377-4ef1-81d5-4ad5522b5fd8_TX9%f%XD-98%f%N7V-6WM%f%Q6-BX%f%7FG-H8%f%Q99_101_Core
|
||||
7b4433f4-b1e7-4788-895a-c45378d38253_QN4%f%C6-GB%f%JD2-FB4%f%22-GH%f%WJK-GJ%f%G2R_110_ServerCloudStorage
|
||||
8de8eb62-bbe0-40ac-ac17-f75595071ea3_GRF%f%BW-QN%f%DC4-6QB%f%HG-CC%f%K3B-2P%f%R88_120_ServerARM64_RS5
|
||||
43d9af6e-5e86-4be8-a797-d072a046896c_K9F%f%YF-G6%f%NCK-73M%f%32-XM%f%VPY-F9%f%DRR_120_ServerARM64_RS4
|
||||
e0c42288-980c-4788-a014-c080d2e1926e_NW6%f%C2-QM%f%PVW-D7K%f%KK-3G%f%KT6-VC%f%FB2_121_Education
|
||||
3c102355-d027-42c6-ad23-2e7ef8a02585_2WH%f%4N-8Q%f%GBV-H22%f%JP-CT%f%43Q-MD%f%WWJ_122_EducationN
|
||||
32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee_M7X%f%TQ-FN%f%8P6-TTK%f%YV-9D%f%4CC-J4%f%62D_125_EnterpriseS_RS5,VB,Ge
|
||||
2d5a5a60-3040-48bf-beb0-fcd770c20ce0_DCP%f%HK-NF%f%MTC-H88%f%MJ-PF%f%HPY-QJ%f%4BJ_125_EnterpriseS_RS1
|
||||
7b51a46c-0c04-4e8f-9af4-8496cca90d5e_WNM%f%TR-4C%f%88C-JK8%f%YV-HQ%f%7T2-76%f%DF9_125_EnterpriseS_TH1
|
||||
7103a333-b8c8-49cc-93ce-d37c09687f92_92N%f%FX-8D%f%JQP-P6B%f%BQ-TH%f%F9C-7C%f%G2H_126_EnterpriseSN_RS5,VB,Ge
|
||||
9f776d83-7156-45b2-8a5c-359b9c9f22a3_QFF%f%DN-GR%f%T3P-VKW%f%WX-X7%f%T3R-8B%f%639_126_EnterpriseSN_RS1
|
||||
87b838b7-41b6-4590-8318-5797951d8529_2F7%f%7B-TN%f%FGY-69Q%f%QF-B8%f%YKP-D6%f%9TJ_126_EnterpriseSN_TH1
|
||||
39e69c41-42b4-4a0a-abad-8e3c10a797cc_QFN%f%D9-D3%f%Y9C-J3K%f%KY-6R%f%PVP-2D%f%PYV_145_ServerDatacenterACor_FE
|
||||
90c362e5-0da1-4bfd-b53b-b87d309ade43_6NM%f%RW-2C%f%8FM-D24%f%W7-TQ%f%WMY-CW%f%H2D_145_ServerDatacenterACor_RS5
|
||||
e49c08e7-da82-42f8-bde2-b570fbcae76c_2HX%f%DN-KR%f%XHB-GPY%f%C7-YC%f%KFJ-7F%f%VDG_145_ServerDatacenterACor_RS3
|
||||
f5e9429c-f50b-4b98-b15c-ef92eb5cff39_67K%f%N8-4F%f%YJW-248%f%7Q-MQ%f%2J7-4C%f%4RG_146_ServerStandardACor_FE
|
||||
73e3957c-fc0c-400d-9184-5f7b6f2eb409_N2K%f%JX-J9%f%4YW-TQV%f%FB-DG%f%9YT-72%f%4CC_146_ServerStandardACor_RS5
|
||||
61c5ef22-f14f-4553-a824-c4b31e84b100_PTX%f%N8-JF%f%HJM-4WC%f%78-MP%f%CBR-9W%f%4KR_146_ServerStandardACor_RS3
|
||||
82bbc092-bc50-4e16-8e18-b74fc486aec3_NRG%f%8B-VK%f%K3Q-CXV%f%CJ-9G%f%2XF-6Q%f%84J_161_ProfessionalWorkstation
|
||||
4b1571d3-bafb-4b40-8087-a961be2caf65_9FN%f%HH-K3%f%HBT-3W4%f%TD-63%f%83H-6X%f%YWF_162_ProfessionalWorkstationN
|
||||
3f1afc82-f8ac-4f6c-8005-1d233e606eee_6TP%f%4R-GN%f%PTD-KYY%f%HQ-7B%f%7DP-J4%f%47Y_164_ProfessionalEducation
|
||||
5300b18c-2e33-4dc2-8291-47ffcec746dd_YVW%f%GF-BX%f%NMC-HTQ%f%YQ-CP%f%Q99-66%f%QFC_165_ProfessionalEducationN
|
||||
8c8f0ad3-9a43-4e05-b840-93b8d1475cbc_6N3%f%79-GG%f%TMK-23C%f%6M-XV%f%VTC-CK%f%FRQ_168_ServerAzureCor_FE
|
||||
a99cc1f0-7719-4306-9645-294102fbff95_FDN%f%H6-VW%f%9RW-BXP%f%J7-4X%f%TYG-23%f%9TB_168_ServerAzureCor_RS5
|
||||
3dbf341b-5f6c-4fa7-b936-699dce9e263f_VP3%f%4G-4N%f%PPG-79J%f%TQ-86%f%4T4-R3%f%MQX_168_ServerAzureCor_RS1
|
||||
e0b2d383-d112-413f-8a80-97f373a5820c_YYV%f%X9-NT%f%FWV-6MD%f%M3-9P%f%T4T-4M%f%68B_171_EnterpriseG
|
||||
e38454fb-41a4-4f59-a5dc-25080e354730_44R%f%PN-FT%f%Y23-9VT%f%TB-MP%f%9BX-T8%f%4FV_172_EnterpriseGN
|
||||
ec868e65-fadf-4759-b23e-93fe37f2cc29_CPW%f%HC-NT%f%2C7-VYW%f%78-DH%f%DB2-PG%f%3GK_175_ServerRdsh_RS5
|
||||
e4db50ea-bda1-4566-b047-0ca50abc6f07_7NB%f%T4-WG%f%BQX-MP4%f%H7-QX%f%FF8-YP%f%3KX_175_ServerRdsh_RS3
|
||||
0df4f814-3f57-4b8b-9a9d-fddadcd69fac_NBT%f%WJ-3D%f%R69-3C4%f%V8-C2%f%6MC-GQ%f%9M6_183_CloudE
|
||||
59eb965c-9150-42b7-a0ec-22151b9897c5_KBN%f%8V-HF%f%GQ4-MGX%f%VD-34%f%7P6-PD%f%QGT_191_IoTEnterpriseS_VB,NI
|
||||
d30136fc-cb4b-416e-a23d-87207abc44a9_6XN%f%7V-PC%f%BDC-BDB%f%RH-8D%f%QY7-G6%f%R44_202_CloudEditionN
|
||||
ca7df2e3-5ea0-47b8-9ac1-b1be4d8edd69_37D%f%7F-N4%f%9CB-WQR%f%8W-TB%f%J73-FM%f%8RX_203_CloudEdition
|
||||
19b5e0fb-4431-46bc-bac1-2f1873e4ae73_NTB%f%V8-9K%f%7Q8-V27%f%C6-M2%f%BTV-KH%f%MXV_407_ServerTurbine
|
||||
73111121-5638-40f6-bc11-f1d7b0d64300_NP%f%PR9-FWD%f%CX-D2%f%C8J-H872%f%K-2Y%f%T43___4_Enterprise
|
||||
7dc26449-db21-4e09-ba37-28f2958506a6_DP%f%NXD-67Y%f%Y9-WW%f%FJJ-RYH9%f%9-RM%f%832___7_ServerStandard_Ge
|
||||
9bd77860-9b31-4b7b-96ad-2564017315bf_VD%f%YBN-27W%f%PP-V4%f%HQT-9VMD%f%4-VM%f%K7H___7_ServerStandard_FE
|
||||
de32eafd-aaee-4662-9444-c1befb41bde2_N6%f%9G4-B89%f%J2-4G%f%8F4-WWYC%f%C-J4%f%64C___7_ServerStandard_RS5
|
||||
8c1c5410-9f39-4805-8c9d-63a07706358f_WC%f%2BQ-8NR%f%M3-FD%f%DYY-2BFG%f%V-KH%f%KQY___7_ServerStandard_RS1
|
||||
c052f164-cdf6-409a-a0cb-853ba0f0f55a_CN%f%FDQ-2BW%f%8H-9V%f%4WM-TKCP%f%D-MD%f%2QF___8_ServerDatacenter_Ge
|
||||
ef6cfc9f-8c5d-44ac-9aad-de6a2ea0ae03_WX%f%4NM-KYW%f%YW-QJ%f%JR4-XV3Q%f%B-6V%f%M33___8_ServerDatacenter_FE
|
||||
34e1ae55-27f8-4950-8877-7a03be5fb181_WM%f%DGN-G9P%f%QG-XV%f%VXX-R3X4%f%3-63%f%DFG___8_ServerDatacenter_RS5
|
||||
21c56779-b449-4d20-adfc-eece0e1ad74b_CB%f%7KF-BWN%f%84-R7%f%R2Y-793K%f%2-8X%f%DDG___8_ServerDatacenter_RS1
|
||||
e272e3e2-732f-4c65-a8f0-484747d0d947_DP%f%H2V-TTN%f%VB-4X%f%9Q3-TJR4%f%H-KH%f%JW4__27_EnterpriseN
|
||||
2de67392-b7a7-462a-b1ca-108dd189f588_W2%f%69N-WFG%f%WX-YV%f%C9B-4J6C%f%9-T8%f%3GX__48_Professional
|
||||
a80b5abf-76ad-428b-b05d-a47d2dffeebf_MH%f%37W-N47%f%XK-V7%f%XM9-C722%f%7-GC%f%QG9__49_ProfessionalN
|
||||
034d3cbb-5d4b-4245-b3f8-f84571314078_WV%f%DHN-86M%f%7X-46%f%6P6-VHXV%f%7-YY%f%726__50_ServerSolution_RS5
|
||||
2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283_JC%f%KRF-N37%f%P4-C2%f%D82-9YXR%f%T-4M%f%63B__50_ServerSolution_RS1
|
||||
7b9e1751-a8da-4f75-9560-5fadfe3d8e38_3K%f%HY7-WNT%f%83-DG%f%QKR-F7HP%f%R-84%f%4BM__98_CoreN
|
||||
a9107544-f4a0-4053-a96a-1479abdef912_PV%f%MJN-6DF%f%Y6-9C%f%CP6-7BKT%f%T-D3%f%WVR__99_CoreCountrySpecific
|
||||
cd918a57-a41b-4c82-8dce-1a538e221a83_7H%f%NRX-D7K%f%GG-3K%f%4RQ-4WPJ%f%4-YT%f%DFH_100_CoreSingleLanguage
|
||||
58e97c99-f377-4ef1-81d5-4ad5522b5fd8_TX%f%9XD-98N%f%7V-6W%f%MQ6-BX7F%f%G-H8%f%Q99_101_Core
|
||||
7b4433f4-b1e7-4788-895a-c45378d38253_QN%f%4C6-GBJ%f%D2-FB%f%422-GHWJ%f%K-GJ%f%G2R_110_ServerCloudStorage
|
||||
8de8eb62-bbe0-40ac-ac17-f75595071ea3_GR%f%FBW-QND%f%C4-6Q%f%BHG-CCK3%f%B-2P%f%R88_120_ServerARM64_RS5
|
||||
43d9af6e-5e86-4be8-a797-d072a046896c_K9%f%FYF-G6N%f%CK-73%f%M32-XMVP%f%Y-F9%f%DRR_120_ServerARM64_RS4
|
||||
e0c42288-980c-4788-a014-c080d2e1926e_NW%f%6C2-QMP%f%VW-D7%f%KKK-3GKT%f%6-VC%f%FB2_121_Education
|
||||
3c102355-d027-42c6-ad23-2e7ef8a02585_2W%f%H4N-8QG%f%BV-H2%f%2JP-CT43%f%Q-MD%f%WWJ_122_EducationN
|
||||
32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee_M7%f%XTQ-FN8%f%P6-TT%f%KYV-9D4C%f%C-J4%f%62D_125_EnterpriseS_RS5,VB,Ge
|
||||
2d5a5a60-3040-48bf-beb0-fcd770c20ce0_DC%f%PHK-NFM%f%TC-H8%f%8MJ-PFHP%f%Y-QJ%f%4BJ_125_EnterpriseS_RS1
|
||||
7b51a46c-0c04-4e8f-9af4-8496cca90d5e_WN%f%MTR-4C8%f%8C-JK%f%8YV-HQ7T%f%2-76%f%DF9_125_EnterpriseS_TH1
|
||||
7103a333-b8c8-49cc-93ce-d37c09687f92_92%f%NFX-8DJ%f%QP-P6%f%BBQ-THF9%f%C-7C%f%G2H_126_EnterpriseSN_RS5,VB,Ge
|
||||
9f776d83-7156-45b2-8a5c-359b9c9f22a3_QF%f%FDN-GRT%f%3P-VK%f%WWX-X7T3%f%R-8B%f%639_126_EnterpriseSN_RS1
|
||||
87b838b7-41b6-4590-8318-5797951d8529_2F%f%77B-TNF%f%GY-69%f%QQF-B8YK%f%P-D6%f%9TJ_126_EnterpriseSN_TH1
|
||||
39e69c41-42b4-4a0a-abad-8e3c10a797cc_QF%f%ND9-D3Y%f%9C-J3%f%KKY-6RPV%f%P-2D%f%PYV_145_ServerDatacenterACor_FE
|
||||
90c362e5-0da1-4bfd-b53b-b87d309ade43_6N%f%MRW-2C8%f%FM-D2%f%4W7-TQWM%f%Y-CW%f%H2D_145_ServerDatacenterACor_RS5
|
||||
e49c08e7-da82-42f8-bde2-b570fbcae76c_2H%f%XDN-KRX%f%HB-GP%f%YC7-YCKF%f%J-7F%f%VDG_145_ServerDatacenterACor_RS3
|
||||
f5e9429c-f50b-4b98-b15c-ef92eb5cff39_67%f%KN8-4FY%f%JW-24%f%87Q-MQ2J%f%7-4C%f%4RG_146_ServerStandardACor_FE
|
||||
73e3957c-fc0c-400d-9184-5f7b6f2eb409_N2%f%KJX-J94%f%YW-TQ%f%VFB-DG9Y%f%T-72%f%4CC_146_ServerStandardACor_RS5
|
||||
61c5ef22-f14f-4553-a824-c4b31e84b100_PT%f%XN8-JFH%f%JM-4W%f%C78-MPCB%f%R-9W%f%4KR_146_ServerStandardACor_RS3
|
||||
82bbc092-bc50-4e16-8e18-b74fc486aec3_NR%f%G8B-VKK%f%3Q-CX%f%VCJ-9G2X%f%F-6Q%f%84J_161_ProfessionalWorkstation
|
||||
4b1571d3-bafb-4b40-8087-a961be2caf65_9F%f%NHH-K3H%f%BT-3W%f%4TD-6383%f%H-6X%f%YWF_162_ProfessionalWorkstationN
|
||||
3f1afc82-f8ac-4f6c-8005-1d233e606eee_6T%f%P4R-GNP%f%TD-KY%f%YHQ-7B7D%f%P-J4%f%47Y_164_ProfessionalEducation
|
||||
5300b18c-2e33-4dc2-8291-47ffcec746dd_YV%f%WGF-BXN%f%MC-HT%f%QYQ-CPQ9%f%9-66%f%QFC_165_ProfessionalEducationN
|
||||
45b5aff2-60a0-42f2-bc4b-ec6e5f7b527e_QN%f%7G3-4RM%f%92-MT%f%6QR-PR96%f%6-FV%f%YV7_168_ServerAzureCor_Ge
|
||||
8c8f0ad3-9a43-4e05-b840-93b8d1475cbc_6N%f%379-GGT%f%MK-23%f%C6M-XVVT%f%C-CK%f%FRQ_168_ServerAzureCor_FE
|
||||
a99cc1f0-7719-4306-9645-294102fbff95_FD%f%NH6-VW9%f%RW-BX%f%PJ7-4XTY%f%G-23%f%9TB_168_ServerAzureCor_RS5
|
||||
3dbf341b-5f6c-4fa7-b936-699dce9e263f_VP%f%34G-4NP%f%PG-79%f%JTQ-864T%f%4-R3%f%MQX_168_ServerAzureCor_RS1
|
||||
e0b2d383-d112-413f-8a80-97f373a5820c_YY%f%VX9-NTF%f%WV-6M%f%DM3-9PT4%f%T-4M%f%68B_171_EnterpriseG
|
||||
e38454fb-41a4-4f59-a5dc-25080e354730_44%f%RPN-FTY%f%23-9V%f%TTB-MP9B%f%X-T8%f%4FV_172_EnterpriseGN
|
||||
ec868e65-fadf-4759-b23e-93fe37f2cc29_CP%f%WHC-NT2%f%C7-VY%f%W78-DHDB%f%2-PG%f%3GK_175_ServerRdsh_RS5
|
||||
e4db50ea-bda1-4566-b047-0ca50abc6f07_7N%f%BT4-WGB%f%QX-MP%f%4H7-QXFF%f%8-YP%f%3KX_175_ServerRdsh_RS3
|
||||
0df4f814-3f57-4b8b-9a9d-fddadcd69fac_NB%f%TWJ-3DR%f%69-3C%f%4V8-C26M%f%C-GQ%f%9M6_183_CloudE
|
||||
59eb965c-9150-42b7-a0ec-22151b9897c5_KB%f%N8V-HFG%f%Q4-MG%f%XVD-347P%f%6-PD%f%QGT_191_IoTEnterpriseS_VB,NI
|
||||
d30136fc-cb4b-416e-a23d-87207abc44a9_6X%f%N7V-PCB%f%DC-BD%f%BRH-8DQY%f%7-G6%f%R44_202_CloudEditionN
|
||||
ca7df2e3-5ea0-47b8-9ac1-b1be4d8edd69_37%f%D7F-N49%f%CB-WQ%f%R8W-TBJ7%f%3-FM%f%8RX_203_CloudEdition
|
||||
c2e946d1-cfa2-4523-8c87-30bc696ee584_NQ%f%8HH-FTD%f%TM-6V%f%GY7-TQ3D%f%V-XF%f%BV2_407_ServerTurbine_Ge
|
||||
19b5e0fb-4431-46bc-bac1-2f1873e4ae73_NT%f%BV8-9K7%f%Q8-V2%f%7C6-M2BT%f%V-KH%f%MXV_407_ServerTurbine_RS5
|
||||
) do (
|
||||
for /f "tokens=1-5 delims=_" %%A in ("%%#") do if %osSKU%==%%C (
|
||||
set skufound=1
|
||||
if %1==getkey if not defined key echo "!applist!" | find /i "%%A" %nul1% && set key=%%B
|
||||
)
|
||||
)
|
||||
@ -1374,6 +1485,7 @@ if %_NoEditionChange%==1 exit /b
|
||||
|
||||
for %%# in (
|
||||
188_IoTEnterprise__________________8ab9bdd1-1f67-4997-82d9-8878520837d9_73111121-5638-40f6-bc11-f1d7b0d64300_NPP%f%R9-FWD%f%CX-D2%f%C8J-H872%f%K-2Y%f%T43_Enterprise
|
||||
206_IoTEnterpriseK_________________80083eae-7031-4394-9e88-4901973d56fe_73111121-5638-40f6-bc11-f1d7b0d64300_NPP%f%R9-FWD%f%CX-D2%f%C8J-H872%f%K-2Y%f%T43_Enterprise
|
||||
191_IoTEnterpriseS-2021____________ed655016-a9e8-4434-95d9-4345352c2552_32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee_M7X%f%TQ-FN8%f%P6-TT%f%KYV-9D4C%f%C-J4%f%62D_EnterpriseS-2021
|
||||
205_IoTEnterpriseSK________________d4f9b41f-205c-405e-8e08-3d16e88e02be_59eb965c-9150-42b7-a0ec-22151b9897c5_KBN%f%8V-HFG%f%Q4-MG%f%XVD-347P%f%6-PD%f%QGT_IoTEnterpriseS
|
||||
138_ProfessionalSingleLanguage_____a48938aa-62fa-4966-9d44-9f04da3f72f2_2de67392-b7a7-462a-b1ca-108dd189f588_W26%f%9N-WFG%f%WX-YV%f%C9B-4J6C%f%9-T8%f%3GX_Professional
|
||||
|
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://massgrave.dev/ohook.html#Custom_sppcdll_Info">
|
||||
</html>
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,4 @@
|
||||
@set masver=2.5
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
@ -59,7 +60,7 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=mass%blank%grave.dev"
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@ -69,7 +70,7 @@ echo:
|
||||
echo Null service is not running, script may crash...
|
||||
echo:
|
||||
echo:
|
||||
echo Help - https://%mas%/troubleshoot.html
|
||||
echo Help - %mas%troubleshoot.html
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 10
|
||||
@ -93,7 +94,7 @@ popd
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Online KMS Activation
|
||||
title Online KMS Activation %masver%
|
||||
|
||||
:: You are not supposed to edit anything below this.
|
||||
|
||||
@ -137,14 +138,18 @@ if /i "%%A"=="-el" (set _elev=1
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "nul1=1>nul"
|
||||
set "nul2=2>nul"
|
||||
set "nul6=2^>nul"
|
||||
set "nul=>nul 2>&1"
|
||||
|
||||
set psc=powershell.exe
|
||||
set winbuild=1
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 %nul2% | find /i "0x0" %nul1% && (set _NCS=0)
|
||||
|
||||
call :_colorprep
|
||||
set "_buf={$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
|
||||
@ -180,14 +185,14 @@ set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
set "_Local=%LocalAppData%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%nceline%
|
||||
echo Script is launched from the temp folder,
|
||||
@ -202,10 +207,10 @@ goto Done
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
>nul fltmc || (
|
||||
%nul1% fltmc || (
|
||||
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%nceline%
|
||||
echo This script require admin privileges.
|
||||
echo This script requires admin privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto Done
|
||||
)
|
||||
@ -218,8 +223,8 @@ goto Done
|
||||
if defined _unattended set quedit=1
|
||||
for %%# in (%_args%) do (if /i "%%#"=="-qedit" set quedit=1)
|
||||
|
||||
reg query HKCU\Console /v QuickEdit 2>nul | find /i "0x0" %nul% || if not defined quedit (
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d "0" /f %nul%
|
||||
reg query HKCU\Console /v QuickEdit %nul2% | find /i "0x0" %nul1% || if not defined quedit (
|
||||
reg add HKCU\Console /v QuickEdit /t REG_DWORD /d "0" /f %nul1%
|
||||
start cmd.exe /c ""!_batf!" %_args% -qedit"
|
||||
rem quickedit reset code is added at the starting of the script instead of here because it takes time to reflect in some cases
|
||||
exit /b
|
||||
@ -227,6 +232,35 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check for updates
|
||||
|
||||
set -=
|
||||
set old=
|
||||
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
|
||||
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
|
||||
)
|
||||
|
||||
if defined old (
|
||||
echo ________________________________________________
|
||||
%eline%
|
||||
echo You are running outdated version MAS %masver%
|
||||
echo ________________________________________________
|
||||
echo:
|
||||
if not defined _unattended (
|
||||
echo [1] Get Latest MAS
|
||||
echo [0] Continue Anyway
|
||||
echo:
|
||||
call :_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 rem
|
||||
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
|
||||
)
|
||||
)
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %~z0 GEQ 300000 (set "_exitmsg=Go back") else (set "_exitmsg=Exit")
|
||||
|
||||
:: Check not x86 Windows
|
||||
@ -274,7 +308,7 @@ if defined _unattended if not defined _unattendedact goto Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "_title=Online KMS Activation"
|
||||
set "_title=Online KMS Activation %masver%"
|
||||
set _gui=
|
||||
|
||||
:_KMS_Menu
|
||||
@ -483,7 +517,7 @@ mode con cols=98 lines=31
|
||||
%psc% "&%_buf%"
|
||||
title %_title%
|
||||
) else (
|
||||
title Online KMS Activation
|
||||
title Online KMS Activation %masver%
|
||||
)
|
||||
|
||||
if defined _gui if %_Debug%==1 mode con cols=98 lines=30
|
||||
@ -3277,7 +3311,7 @@ goto :eof
|
||||
|
||||
cls
|
||||
mode con: cols=91 lines=30
|
||||
title Online KMS Complete Uninstall
|
||||
title Online KMS Complete Uninstall %masver%
|
||||
|
||||
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
|
||||
|
||||
@ -3388,7 +3422,7 @@ exit /b
|
||||
|
||||
cls
|
||||
mode con cols=91 lines=30
|
||||
title Install Activation Auto-Renewal
|
||||
title Install Activation Auto-Renewal %masver%
|
||||
|
||||
set error_=
|
||||
set "_dest=%ProgramFiles%\Activation-Renewal"
|
||||
@ -3417,7 +3451,7 @@ if exist "%_temp%\.*" rmdir /s /q "%_temp%\" %nul%
|
||||
|
||||
call :createInfo.txt
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":_extracttask\:.*`r`n\"; [io.file]::WriteAllText('%_dest%\Activation_task.cmd', '@REM Dummy ' + '%random%' + [Environment]::NewLine + $f[1].Trim(), [System.Text.Encoding]::ASCII);"
|
||||
title Install Activation Auto-Renewal
|
||||
title Install Activation Auto-Renewal %masver%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
|
12
MAS/Separate-Files-Version/Activators/ReadMe.txt
Normal file
12
MAS/Separate-Files-Version/Activators/ReadMe.txt
Normal file
@ -0,0 +1,12 @@
|
||||
--------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
HWID - Windows 10-11 - Permanent
|
||||
Ohook - Office - Permanent
|
||||
KMS38 - Windows 10-11-Server - Till the Year 2038
|
||||
Online KMS - Windows / Office - 180 Days. Lifetime With Renewal Task
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
For more details, use the respective docs section here https://massgrave.dev/
|
@ -1,3 +1,4 @@
|
||||
@set masver=2.5
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
@ -58,7 +59,7 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=mass%blank%grave.dev"
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@ -68,7 +69,7 @@ echo:
|
||||
echo Null service is not running, script may crash...
|
||||
echo:
|
||||
echo:
|
||||
echo Help - https://%mas%/troubleshoot.html
|
||||
echo Help - %mas%troubleshoot.html
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 10
|
||||
@ -92,7 +93,7 @@ popd
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Change Windows Edition
|
||||
title Change Windows Edition %masver%
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
@ -169,7 +170,7 @@ set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
@ -193,7 +194,7 @@ goto ced_done
|
||||
%nul1% fltmc || (
|
||||
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require admin privileges.
|
||||
echo This script requires admin privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto ced_done
|
||||
)
|
||||
@ -214,6 +215,32 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check for updates
|
||||
|
||||
set -=
|
||||
set old=
|
||||
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
|
||||
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
|
||||
)
|
||||
|
||||
if defined old (
|
||||
echo ________________________________________________
|
||||
%eline%
|
||||
echo You are running outdated version MAS %masver%
|
||||
echo ________________________________________________
|
||||
echo:
|
||||
echo [1] Get Latest MAS
|
||||
echo [0] Continue Anyway
|
||||
echo:
|
||||
call :dk_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 rem
|
||||
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
|
||||
@ -248,31 +275,14 @@ if not defined applist (
|
||||
%eline%
|
||||
echo Activation IDs not found. Aborting...
|
||||
echo:
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
goto ced_done
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set osSKU=
|
||||
set slcSKU=
|
||||
set wmiSKU=
|
||||
|
||||
if %winbuild% GEQ 14393 (set info=Kernel-BrandingInfo) else (set info=Kernel-ProductInfo)
|
||||
set d1=%ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
|
||||
set d1=%d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info%', [ref]$Sku); $Sku
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') do if not errorlevel 1 (set slcSKU=%%s)
|
||||
if "%slcSKU%"=="0" set slcSKU=
|
||||
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU=
|
||||
|
||||
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"
|
||||
|
||||
set osSKU=%slcSKU%
|
||||
if not defined osSKU set osSKU=%wmiSKU%
|
||||
call :dk_checksku
|
||||
|
||||
if not defined osSKU (
|
||||
%eline%
|
||||
@ -297,7 +307,7 @@ if not defined osedition (
|
||||
for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul6%') do set "osedition=%%a"
|
||||
)
|
||||
|
||||
:: Workaround for a Windows bug in builds between 1607 and 1709 where ProfessionalEducation is shown as Professional
|
||||
:: Workaround for an issue in builds between 1607 and 1709 where ProfessionalEducation is shown as Professional
|
||||
|
||||
if %osSKU%==164 set osedition=ProfessionalEducation
|
||||
if %osSKU%==165 set osedition=ProfessionalEducationN
|
||||
@ -314,7 +324,7 @@ cmd /c exit /b !errorlevel!
|
||||
echo DISM command failed [Error Code - 0x!=ExitCode!]
|
||||
echo OS Edition was not detected properly. Aborting...
|
||||
echo:
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
@ -327,9 +337,12 @@ for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT
|
||||
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode %nul2% | find /i "Full" %nul1% || (
|
||||
%eline%
|
||||
echo PowerShell is not responding properly. Aborting...
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode
|
||||
echo:
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo PowerShell is not working. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
@ -370,7 +383,7 @@ echo "!_target!" | find /i " %%# " %nul1% || set "_target= !_target! %%# "
|
||||
|
||||
if defined _target (
|
||||
for %%# in (%_target%) do (
|
||||
echo %%# | findstr /i "CountrySpecific CloudEdition" %nul% || (set "_ntarget=!_ntarget! %%#")
|
||||
echo %%# | findstr /i "CountrySpecific CloudEdition ServerRdsh" %nul% || (set "_ntarget=!_ntarget! %%#")
|
||||
)
|
||||
)
|
||||
|
||||
@ -453,7 +466,7 @@ if not defined key (
|
||||
echo [%targetedition% ^| %winbuild%]
|
||||
echo Unable to get product key from pkeyhelper.dll
|
||||
echo:
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
@ -462,18 +475,31 @@ goto ced_done
|
||||
:: Changing from Core to Non-Core & Changing editions in Windows build older than 17134 requires "changepk /productkey" or DISM Api method and restart
|
||||
:: In other cases, editions can be changed instantly with "slmgr /ipk"
|
||||
|
||||
if %_dismapi%==1 (
|
||||
mode con cols=105 lines=40
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
|
||||
%eline%
|
||||
echo Pending Reboot flags found.
|
||||
echo:
|
||||
echo Restart the system and try again.
|
||||
goto ced_done
|
||||
)
|
||||
)
|
||||
|
||||
cls
|
||||
%line%
|
||||
echo:
|
||||
if defined dismnotworking call :dk_color %_Yellow% "DISM.exe is not responding."
|
||||
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
|
||||
echo:
|
||||
|
||||
if %_dismapi%==1 (
|
||||
call :dk_color %Blue% "Notes-"
|
||||
call :dk_color %Green% "Notes-"
|
||||
echo:
|
||||
echo - Save your work before continue, system will auto restart.
|
||||
echo:
|
||||
echo - You will need to activate with HWID option once the edition is changed.
|
||||
%line%
|
||||
echo:
|
||||
choice /C:21 /N /M "[1] Continue [2] %_exitmsg% : "
|
||||
if !errorlevel!==1 exit /b
|
||||
@ -499,19 +525,19 @@ echo:
|
||||
call :dk_color %Gray% "Reboot is required to properly change the Edition."
|
||||
) else (
|
||||
call :dk_color %Red% "[Unsuccessful] [Error Code: 0x!=ExitCode!]"
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
)
|
||||
)
|
||||
|
||||
if %_dismapi%==1 (
|
||||
echo:
|
||||
echo Applying the DISM API method with %_chan% Key %key%
|
||||
echo Applying the DISM API method with %_chan% Key %key%. Please wait...
|
||||
echo:
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':dismapi\:.*';& ([ScriptBlock]::Create($f[1])) %targetedition% %key%;"
|
||||
timeout /t 3 %nul1%
|
||||
echo:
|
||||
call :dk_color %Blue% "Incase of errors, you must restart your system before trying again."
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
)
|
||||
%line%
|
||||
|
||||
@ -525,7 +551,16 @@ cls
|
||||
mode con cols=105 lines=32
|
||||
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
|
||||
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
|
||||
%eline%
|
||||
echo Pending reboot flags found.
|
||||
echo:
|
||||
echo Restart the system and try again.
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
echo:
|
||||
if defined dismnotworking call :dk_color %_Yellow% "Note - DISM.exe is not responding."
|
||||
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
|
||||
echo:
|
||||
call :dk_color %Blue% "Important - Save your work before continue, system will auto reboot."
|
||||
@ -541,7 +576,7 @@ if %_stg%==0 (set stage=) else (set stage=-StageCurrent)
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':cbsxml\:.*';& ([ScriptBlock]::Create($f[1])) -SetEdition %targetedition% %stage%;"
|
||||
echo:
|
||||
call :dk_color %Blue% "Incase of errors, you must restart your system before trying again."
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
%line%
|
||||
|
||||
goto ced_done
|
||||
@ -568,14 +603,23 @@ if not defined key (
|
||||
echo [%targetedition% ^| %winbuild%]
|
||||
echo Unable to get product key from pkeyhelper.dll
|
||||
echo:
|
||||
echo Check this page for help. https://%mas%/troubleshoot
|
||||
echo Check this page for help. %mas%troubleshoot
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':checkrebootflag\:.*';iex ($f[1]);" | find /i "True" %nul% && (
|
||||
%eline%
|
||||
echo Pending reboot flags found.
|
||||
echo:
|
||||
echo Restart the system and try again.
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
cls
|
||||
echo:
|
||||
if defined dismnotworking call :dk_color %_Yellow% "Note - DISM.exe is not responding."
|
||||
echo Changing the Current Edition [%osedition%] %winbuild% to [%targetedition%]
|
||||
echo:
|
||||
echo Applying the command with %_chan% Key
|
||||
@ -583,7 +627,7 @@ echo DISM /online /Set-Edition:%targetedition% /ProductKey:%key% /AcceptEula
|
||||
DISM /online /Set-Edition:%targetedition% /ProductKey:%key% /AcceptEula
|
||||
|
||||
call :dk_color %Blue% "You must restart the system at this stage."
|
||||
echo Help: https://%mas%/troubleshoot
|
||||
echo Help: %mas%troubleshoot
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@ -596,6 +640,31 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
:dk_checksku
|
||||
|
||||
set osSKU=
|
||||
set slcSKU=
|
||||
set wmiSKU=
|
||||
set regSKU=
|
||||
|
||||
if %winbuild% GEQ 14393 (set info=Kernel-BrandingInfo) else (set info=Kernel-ProductInfo)
|
||||
set d1=%ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
|
||||
set d1=%d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info%', [ref]$Sku); $Sku
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') do if not errorlevel 1 (set slcSKU=%%s)
|
||||
if "%slcSKU%"=="0" set slcSKU=
|
||||
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU=
|
||||
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn %nul6%') do set "regSKU=%%a"
|
||||
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"
|
||||
|
||||
set osSKU=%slcSKU%
|
||||
if not defined osSKU set osSKU=%wmiSKU%
|
||||
if not defined osSKU set osSKU=%regSKU%
|
||||
exit /b
|
||||
|
||||
:: Refresh license status
|
||||
|
||||
:dk_refresh
|
||||
@ -620,7 +689,11 @@ exit /b
|
||||
|
||||
if %_wmic% EQU 1 set "chkedi=for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f') get LicenseFamily /VALUE" %nul6%')"
|
||||
if %_wmic% EQU 0 set "chkedi=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELECT LicenseFamily FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f''').Get()).LicenseFamily ^| %% {echo ('LicenseFamily='+$_)}" %nul6%')"
|
||||
%chkedi% do (call set "_wtarget= !_wtarget! %%a ")
|
||||
%chkedi% do (
|
||||
call if exist %Systemdrive%\Windows\System32\spp\tokens\skus\%%a (
|
||||
call set "_wtarget= !_wtarget! %%a "
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:: Check wmic.exe
|
||||
@ -663,6 +736,29 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check pending reboot flags
|
||||
|
||||
:checkrebootflag:
|
||||
function Test-PendingReboot
|
||||
{
|
||||
if (Test-Path -Path "$env:windir\WinSxS\pending.xml") { return $true }
|
||||
if (Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -EA Ignore) { return $true }
|
||||
if (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -EA Ignore) { return $true }
|
||||
try {
|
||||
$util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities"
|
||||
$status = $util.DetermineIfRebootPending()
|
||||
if(($status -ne $null) -and $status.RebootPending){
|
||||
return $true
|
||||
}
|
||||
}catch{}
|
||||
|
||||
return $false
|
||||
}
|
||||
Test-PendingReboot
|
||||
:checkrebootflag:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Get Product Key from pkeyhelper.dll for future new editions
|
||||
:: It works on Windows 10 1803 (17134) and later builds.
|
||||
|
||||
|
@ -49,6 +49,21 @@ exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
set ohook=
|
||||
for %%# in (15 16) do (
|
||||
for %%A in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do (
|
||||
if exist "%%~A\Microsoft Office\Office%%#\sppc*dll" set ohook=1
|
||||
)
|
||||
)
|
||||
|
||||
for %%# in (System SystemX86) do (
|
||||
for %%G in ("Office 15" "Office") do (
|
||||
for %%A in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do (
|
||||
if exist "%%~A\Microsoft %%~G\root\vfs\%%#\sppc*dll" set ohook=1
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
set "_bit=64"
|
||||
set "_wow=1"
|
||||
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "_wow=0"&set "_bit=32"
|
||||
@ -77,6 +92,17 @@ del /f /q slmgr.vbs >nul 2>&1
|
||||
popd
|
||||
echo %line3%
|
||||
|
||||
if defined ohook (
|
||||
echo.
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office Ohook Activation Status ***
|
||||
echo %line2%
|
||||
echo.
|
||||
powershell "write-host -back 'Black' -fore 'Yellow' 'Ohook for permanent Office activation is installed.'; write-host -back 'Black' -fore 'Yellow' 'You can ignore below Office activation status.'"
|
||||
echo.
|
||||
)
|
||||
|
||||
:casVo16
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\16.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
|
@ -1,10 +1,9 @@
|
||||
<!-- : Begin batch script
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
:: Check-Activation-Status-wmi.cmd
|
||||
:: Check-Activation-Status
|
||||
:: Written by @abbodi1406
|
||||
:: forums.mydigitallife.net/posts/838808
|
||||
|
||||
@ -77,6 +76,21 @@ exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
set ohook=
|
||||
for %%# in (15 16) do (
|
||||
for %%A in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do (
|
||||
if exist "%%~A\Microsoft Office\Office%%#\sppc*dll" set ohook=1
|
||||
)
|
||||
)
|
||||
|
||||
for %%# in (System SystemX86) do (
|
||||
for %%G in ("Office 15" "Office") do (
|
||||
for %%A in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do (
|
||||
if exist "%%~A\Microsoft %%~G\root\vfs\%%#\sppc*dll" set ohook=1
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
set _cwmi=0
|
||||
for %%# in (wmic.exe) do @if not "%%~$PATH:#"=="" (
|
||||
wmic path Win32_ComputerSystem get CreationClassName /value 2>nul | find /i "ComputerSystem" 1>nul && set _cwmi=1
|
||||
@ -154,6 +168,17 @@ for /f "tokens=2 delims==" %%# in ('%_qr%') do (
|
||||
echo.
|
||||
)
|
||||
|
||||
if defined ohook (
|
||||
echo.
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office Ohook Activation Status ***
|
||||
echo %line2%
|
||||
echo.
|
||||
powershell "write-host -back 'Black' -fore 'Yellow' 'Ohook for permanent Office activation is installed.'; write-host -back 'Black' -fore 'Yellow' 'You can ignore below Office activation status.'"
|
||||
echo.
|
||||
)
|
||||
|
||||
:casWcon
|
||||
set winID=0
|
||||
set verbose=1
|
||||
@ -337,7 +362,7 @@ if defined DiscoveredKeyManagementServiceMachineIpAddress echo. KMS machine I
|
||||
echo. KMS machine extended PID: %KeyManagementServiceProductKeyID%
|
||||
echo. Activation interval: %VLActivationInterval% minutes
|
||||
echo. Renewal interval: %VLRenewalInterval% minutes
|
||||
echo. KMS host caching: %KeyManagementServiceHostCaching%
|
||||
echo. K.M.S host caching: %KeyManagementServiceHostCaching%
|
||||
if defined KeyManagementServiceLookupDomain echo. KMS SRV record lookup domain: %KeyManagementServiceLookupDomain%
|
||||
if defined ExpireMsg echo.&echo. %ExpireMsg%
|
||||
exit /b
|
||||
|
@ -1,3 +1,4 @@
|
||||
@set masver=2.5
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
@ -53,7 +54,7 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=mass%blank%grave.dev"
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@ -63,7 +64,7 @@ echo:
|
||||
echo Null service is not running, script may crash...
|
||||
echo:
|
||||
echo:
|
||||
echo Help - https://%mas%/troubleshoot.html
|
||||
echo Help - %mas%troubleshoot.html
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 10
|
||||
@ -87,7 +88,7 @@ popd
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Extract $OEM$ Folder
|
||||
title Extract $OEM$ Folder %masver%
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
@ -161,7 +162,7 @@ set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set "_ttemp=%temp%"
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
@ -185,7 +186,7 @@ goto done2
|
||||
%nul1% fltmc || (
|
||||
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require admin privileges.
|
||||
echo This script requires admin privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto done2
|
||||
)
|
||||
@ -206,6 +207,33 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check for updates
|
||||
|
||||
set -=
|
||||
set old=
|
||||
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
|
||||
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
|
||||
)
|
||||
|
||||
if defined old (
|
||||
echo ________________________________________________
|
||||
%eline%
|
||||
echo You are running outdated version MAS %masver%
|
||||
echo ________________________________________________
|
||||
echo:
|
||||
echo [1] Get Latest MAS
|
||||
echo [0] Continue Anyway
|
||||
echo:
|
||||
call :ex_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 rem
|
||||
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
|
||||
)
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
setlocal DisableDelayedExpansion
|
||||
|
||||
:: Check desktop location
|
||||
@ -240,9 +268,7 @@ goto done2
|
||||
set HWID_Activation.cmd=Activators\HWID_Activation.cmd
|
||||
set KMS38_Activation.cmd=Activators\KMS38_Activation.cmd
|
||||
set Online_KMS_Activation.cmd=Activators\Online_KMS_Activation.cmd
|
||||
set Ohook_Activation.cmd=Activators\Ohook_Activation\Ohook_Activation.cmd
|
||||
set sppc32.dll=Activators\Ohook_Activation\BIN\sppc32.dll
|
||||
set sppc64.dll=Activators\Ohook_Activation\BIN\sppc64.dll
|
||||
set Ohook_Activation_AIO.cmd=Activators\Ohook_Activation_AIO.cmd
|
||||
pushd "!_work!"
|
||||
|
||||
set _nofile=
|
||||
@ -250,9 +276,7 @@ for %%# in (
|
||||
%HWID_Activation.cmd%
|
||||
%KMS38_Activation.cmd%
|
||||
%Online_KMS_Activation.cmd%
|
||||
%Ohook_Activation.cmd%
|
||||
%sppc32.dll%
|
||||
%sppc64.dll%
|
||||
%Ohook_Activation_AIO.cmd%
|
||||
) do (
|
||||
if not exist "%%#" set _nofile=1
|
||||
)
|
||||
@ -300,7 +324,7 @@ choice /C:123456789R0 /N
|
||||
set _erl=%errorlevel%
|
||||
|
||||
if %_erl%==11 exit /b
|
||||
if %_erl%==10 start https://%mas%/oem-folder.html &goto :Menu
|
||||
if %_erl%==10 start %mas%oem-folder.html &goto :Menu
|
||||
if %_erl%==9 goto:kms_ohook
|
||||
if %_erl%==8 goto:kms38_kms
|
||||
if %_erl%==7 goto:kms38_ohook
|
||||
@ -336,7 +360,7 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID
|
||||
call "%~dp0HWID_Activation.cmd" /HWID
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -347,18 +371,14 @@ cd \
|
||||
:ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul%
|
||||
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
|
||||
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
|
||||
copy /y /b %Ohook_Activation_AIO.cmd% "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\Ohook_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc32.dll" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc64.dll" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
@ -370,7 +390,7 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -400,7 +420,7 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
call "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -430,7 +450,7 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-WindowsOffice
|
||||
call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-WindowsOffice
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -441,20 +461,16 @@ cd \
|
||||
:hwid_ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul%
|
||||
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
|
||||
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
|
||||
copy /y /b "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export hwid_ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc32.dll" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc64.dll" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
@ -466,9 +482,13 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID
|
||||
setlocal
|
||||
call "%~dp0HWID_Activation.cmd" /HWID
|
||||
endlocal
|
||||
|
||||
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook
|
||||
setlocal
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -500,9 +520,13 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID
|
||||
setlocal
|
||||
call "%~dp0HWID_Activation.cmd" /HWID
|
||||
endlocal
|
||||
|
||||
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office
|
||||
setlocal
|
||||
call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -513,20 +537,16 @@ cd \
|
||||
:kms38_ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul%
|
||||
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
|
||||
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
|
||||
copy /y /b "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export kms38_ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc32.dll" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc64.dll" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
@ -538,9 +558,13 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
setlocal
|
||||
call "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
endlocal
|
||||
|
||||
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook
|
||||
setlocal
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -572,9 +596,13 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
setlocal
|
||||
call "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
endlocal
|
||||
|
||||
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office
|
||||
setlocal
|
||||
call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Office
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -585,20 +613,16 @@ cd \
|
||||
:kms_ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
copy /y /b "%Ohook_Activation.cmd%" "!_dir!\Ohook_Activation.cmd" %nul%
|
||||
copy /y /b "%sppc32.dll%" "!_dir!\BIN\sppc32.dll" %nul%
|
||||
copy /y /b "%sppc64.dll%" "!_dir!\BIN\sppc64.dll" %nul%
|
||||
copy /y /b "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export kms_ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc32.dll" set _error=1
|
||||
if not exist "!_dir!\BIN\sppc64.dll" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
@ -610,9 +634,13 @@ goto done
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Windows
|
||||
setlocal
|
||||
call "%~dp0Online_KMS_Activation.cmd" /KMS-ActAndRenewalTask /KMS-Windows
|
||||
endlocal
|
||||
|
||||
start /b /wait cmd /c "%~dp0Ohook_Activation.cmd" /Ohook
|
||||
setlocal
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
@ -635,7 +663,7 @@ call :ex_color %Green% "$OEM$ folder is successfully created on the Desktop."
|
||||
echo "%oem%" | find /i "38" %nul% && (
|
||||
echo:
|
||||
echo To KMS38 activate Server Cor/Acor editions ^(No GUI Versions^),
|
||||
echo Check this page https://%mas%/oem-folder
|
||||
echo Check this page %mas%oem-folder
|
||||
)
|
||||
echo ______________________________________________________________
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
@set masver=2.5
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
@ -53,7 +54,7 @@ exit /b
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=mass%blank%grave.dev"
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
@ -63,7 +64,7 @@ echo:
|
||||
echo Null service is not running, script may crash...
|
||||
echo:
|
||||
echo:
|
||||
echo Help - https://%mas%/troubleshoot.html
|
||||
echo Help - %mas%troubleshoot.html
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 10
|
||||
@ -87,7 +88,7 @@ popd
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Troubleshoot
|
||||
title Troubleshoot %masver%
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
@ -147,7 +148,7 @@ set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
@ -171,7 +172,7 @@ goto at_done
|
||||
%nul1% fltmc || (
|
||||
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%nceline%
|
||||
echo This script require admin privileges.
|
||||
echo This script requires admin privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto at_done
|
||||
)
|
||||
@ -192,6 +193,33 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check for updates
|
||||
|
||||
set -=
|
||||
set old=
|
||||
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
|
||||
if not [%%#]==[] (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
|
||||
)
|
||||
|
||||
if defined old (
|
||||
echo ________________________________________________
|
||||
%eline%
|
||||
echo You are running outdated version MAS %masver%
|
||||
echo ________________________________________________
|
||||
echo:
|
||||
echo [1] Get Latest MAS
|
||||
echo [0] Continue Anyway
|
||||
echo:
|
||||
call :_color %_Green% "Enter a menu option in the Keyboard [1,0] :"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 rem
|
||||
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
|
||||
)
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
setlocal DisableDelayedExpansion
|
||||
|
||||
:: Check desktop location
|
||||
@ -214,7 +242,7 @@ setlocal EnableDelayedExpansion
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Troubleshoot
|
||||
title Troubleshoot %masver%
|
||||
mode con cols=77 lines=30
|
||||
|
||||
echo:
|
||||
@ -242,12 +270,12 @@ choice /C:1234560 /N
|
||||
set _erl=%errorlevel%
|
||||
|
||||
if %_erl%==7 exit /b
|
||||
if %_erl%==6 start https://%mas%/fix-wpa-registry.html &goto at_menu
|
||||
if %_erl%==6 start %mas%fix-wpa-registry.html &goto at_menu
|
||||
if %_erl%==5 goto:retokens
|
||||
if %_erl%==4 goto:fixwmi
|
||||
if %_erl%==3 goto:sfcscan
|
||||
if %_erl%==2 goto:dism_rest
|
||||
if %_erl%==1 start https://%mas%/troubleshoot.html &goto at_menu
|
||||
if %_erl%==1 start %mas%troubleshoot.html &goto at_menu
|
||||
goto :at_menu
|
||||
|
||||
::========================================================================================================================================
|
||||
@ -295,7 +323,7 @@ if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
mode 110, 30
|
||||
call :_stopservice TrustedInstaller
|
||||
%psc% Stop-Service TrustedInstaller -force %nul%
|
||||
|
||||
set _time=
|
||||
for /f %%a in ('%psc% "Get-Date -format HH_mm_ss"') do set _time=%%a
|
||||
@ -304,7 +332,7 @@ echo Applying the command,
|
||||
echo dism /english /online /cleanup-image /restorehealth
|
||||
dism /english /online /cleanup-image /restorehealth
|
||||
|
||||
call :_stopservice TrustedInstaller
|
||||
%psc% Stop-Service TrustedInstaller -force %nul%
|
||||
|
||||
if not exist "!desktop!\AT_Logs\" md "!desktop!\AT_Logs\" %nul%
|
||||
|
||||
@ -347,7 +375,7 @@ choice /C:09 /N /M "> [9] Continue [0] Go back : "
|
||||
if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
call :_stopservice TrustedInstaller
|
||||
%psc% Stop-Service TrustedInstaller -force %nul%
|
||||
|
||||
set _time=
|
||||
for /f %%a in ('%psc% "Get-Date -format HH_mm_ss"') do set _time=%%a
|
||||
@ -356,7 +384,7 @@ echo Applying the command,
|
||||
echo sfc /scannow
|
||||
sfc /scannow
|
||||
|
||||
call :_stopservice TrustedInstaller
|
||||
%psc% Stop-Service TrustedInstaller -force %nul%
|
||||
|
||||
if not exist "!desktop!\AT_Logs\" md "!desktop!\AT_Logs\" %nul%
|
||||
|
||||
@ -375,7 +403,7 @@ goto :at_back
|
||||
:retokens
|
||||
|
||||
cls
|
||||
mode con cols=115 lines=32
|
||||
mode con cols=125 lines=32
|
||||
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}"
|
||||
title Fix Licensing ^(ClipSVC ^+ Office vNext ^+ SPP ^+ OSPP^)
|
||||
|
||||
@ -388,6 +416,8 @@ echo - It helps in troubleshooting activation issues.
|
||||
echo:
|
||||
echo - This option will,
|
||||
echo - Deactivate Windows and Office, you may need to reactivate
|
||||
echo If Windows is activated with motherboard / OEM / Digital license then don't worry
|
||||
echo:
|
||||
echo - Clear ClipSVC, Office vNext, SPP and OSPP licenses
|
||||
echo - Fix SPP permissions of tokens folder and registries
|
||||
echo - Trigger the repair option for Office.
|
||||
@ -425,7 +455,7 @@ goto :cleanvnext
|
||||
)
|
||||
|
||||
echo Stopping ClipSVC service...
|
||||
call :_stopservice ClipSVC
|
||||
%psc% Stop-Service ClipSVC -force %nul%
|
||||
timeout /t 2 %nul%
|
||||
|
||||
echo:
|
||||
@ -475,7 +505,7 @@ call :_color %Red% "[Failed]"
|
||||
echo [Successful]
|
||||
)
|
||||
|
||||
call :_stopservice ClipSVC
|
||||
%psc% Stop-Service ClipSVC -force %nul%
|
||||
|
||||
:: Rebuild ClipSVC folder to fix permission issues
|
||||
|
||||
@ -492,7 +522,7 @@ echo [Successful]
|
||||
|
||||
echo:
|
||||
echo Rebuilding Folder %ProgramData%\Microsoft\Windows\ClipSVC\
|
||||
net start ClipSVC /y %nul%
|
||||
%psc% Start-Service ClipSVC %nul%
|
||||
timeout /t 3 %nul%
|
||||
if not exist "%ProgramData%\Microsoft\Windows\ClipSVC\" timeout /t 5 %nul%
|
||||
if not exist "%ProgramData%\Microsoft\Windows\ClipSVC\" (
|
||||
@ -504,11 +534,12 @@ echo [Successful]
|
||||
|
||||
echo:
|
||||
echo Restarting [wlidsvc LicenseManager] services...
|
||||
for %%# in (wlidsvc LicenseManager) do (net stop %%# /y %nul% & net start %%# /y %nul%)
|
||||
for %%# in (wlidsvc LicenseManager) do (%psc% Restart-Service %%# %nul%)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear Office vNext License
|
||||
:: Find remnants of Office vNext license block and remove it because it stops non vNext licenses from appearing
|
||||
:: https://learn.microsoft.com/en-us/office/troubleshoot/activation/reset-office-365-proplus-activation-state
|
||||
|
||||
:cleanvnext
|
||||
|
||||
@ -547,21 +578,28 @@ echo Deleted Folder - !_Local!\Microsoft\Office\Licenses\
|
||||
echo Not Found - !_Local!\Microsoft\Office\Licenses\
|
||||
)
|
||||
|
||||
|
||||
echo:
|
||||
for %%# in (
|
||||
HKCU\Software\Microsoft\Office\16.0\Common\Licensing
|
||||
HKCU\Software\Microsoft\Office\16.0\Registration
|
||||
for /f "tokens=* delims=" %%a in ('%psc% "Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | ForEach-Object { Split-Path -Path $_.PSPath -Leaf }" %nul6%') do (if defined _sid (set "_sid=!_sid! HKU\%%a") else (set "_sid=HKU\%%a"))
|
||||
|
||||
set regfound=
|
||||
for %%# in (HKCU !_sid!) do (
|
||||
for %%A in (
|
||||
%%#\Software\Microsoft\Office\16.0\Common\Licensing
|
||||
%%#\Software\Microsoft\Office\16.0\Common\Identity
|
||||
%%#\Software\Microsoft\Office\16.0\Registration
|
||||
) do (
|
||||
reg query %%# %nul% && (
|
||||
reg delete %%# /f %nul% && (
|
||||
echo Deleted Registry - %%#
|
||||
reg query %%A %nul% && (
|
||||
set regfound=1
|
||||
reg delete %%A /f %nul% && (
|
||||
echo Deleted Registry - %%A
|
||||
) || (
|
||||
echo Failed to Delete - %%#
|
||||
)
|
||||
) || (
|
||||
echo Not Found Registry - %%#
|
||||
echo Failed to Delete - %%A
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
if not defined regfound echo Not Found - Office vNext Registry Keys
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
@ -581,19 +619,13 @@ call :_color %Red% "tokens.dat file not found."
|
||||
echo tokens.dat file: [%token%]
|
||||
)
|
||||
|
||||
if %winbuild% GEQ 14393 (
|
||||
set wpaerror=
|
||||
set /a count=0
|
||||
for /f %%a in ('reg query "HKLM\SYSTEM\WPA" %nul6%') do set /a count+=1
|
||||
for /L %%# in (1,1,!count!) do (
|
||||
reg query "HKLM\SYSTEM\WPA\8DEC0AF1-0341-4b93-85CD-72606C2DF94C-7P-%%#" /ve /t REG_BINARY %nul% || set wpaerror=1
|
||||
)
|
||||
|
||||
if defined wpaerror (
|
||||
echo:
|
||||
echo Checking WPA Registry Keys...
|
||||
call :_color %Red% "[Error Found] [Registry Count - !count!]"
|
||||
)
|
||||
set wpainfo=
|
||||
for /f "delims=" %%a in ('%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':wpatest\:.*';iex ($f[1]);" %nul6%') do (set wpainfo=%%a)
|
||||
echo "%wpainfo%" | find /i "Error Found" %nul% && (
|
||||
call :_color %Red% "WPA Registry Error: %wpainfo%"
|
||||
) || (
|
||||
echo WPA Registry Count: %wpainfo%
|
||||
)
|
||||
|
||||
set tokenstore=
|
||||
@ -641,7 +673,7 @@ echo [No Error Found]
|
||||
|
||||
echo:
|
||||
echo Stopping sppsvc service...
|
||||
call :_stopservice sppsvc
|
||||
%psc% Stop-Service sppsvc -force %nul%
|
||||
|
||||
echo:
|
||||
call :scandat delete
|
||||
@ -698,7 +730,7 @@ echo tokens.dat file: [%token%]
|
||||
|
||||
echo:
|
||||
echo Stopping osppsvc service...
|
||||
call :_stopservice osppsvc
|
||||
%psc% Stop-Service osppsvc -force %nul%
|
||||
|
||||
echo:
|
||||
call :scandatospp delete
|
||||
@ -712,11 +744,11 @@ echo:
|
||||
|
||||
echo:
|
||||
echo Starting osppsvc service to generate tokens.dat
|
||||
call :_startservice osppsvc
|
||||
%psc% Start-Service osppsvc %nul%
|
||||
call :scandatospp check
|
||||
if not defined token (
|
||||
call :_stopservice osppsvc
|
||||
call :_startservice osppsvc
|
||||
%psc% Stop-Service osppsvc -force %nul%
|
||||
%psc% Start-Service osppsvc %nul%
|
||||
timeout /t 3 %nul%
|
||||
)
|
||||
|
||||
@ -763,18 +795,20 @@ for %%A in (msi14 msi15 msi16 c2r14 c2r15 c2r16) do (set %%A_%%#=&set %%Arepair%
|
||||
set _68=HKLM\SOFTWARE\Microsoft\Office
|
||||
set _86=HKLM\SOFTWARE\Wow6432Node\Microsoft\Office
|
||||
|
||||
%nul% reg query %_68%\14.0\Common\InstallRoot /v Path && (set "msi14_68=Office 14.0 MSI x86/x64" & set "msi14repair68=%systemdrive%\Program Files\Common Files\microsoft shared\OFFICE14\Office Setup Controller\Setup.exe")
|
||||
%nul% reg query %_86%\14.0\Common\InstallRoot /v Path && (set "msi14_86=Office 14.0 MSI x86" & set "msi14repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\Office Setup Controller\Setup.exe")
|
||||
%nul% reg query %_68%\15.0\Common\InstallRoot /v Path && (set "msi15_68=Office 15.0 MSI x86/x64" & set "msi15repair68=%systemdrive%\Program Files\Common Files\microsoft shared\OFFICE15\Office Setup Controller\Setup.exe")
|
||||
%nul% reg query %_86%\15.0\Common\InstallRoot /v Path && (set "msi15_86=Office 15.0 MSI x86" & set "msi15repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe")
|
||||
%nul% reg query %_68%\16.0\Common\InstallRoot /v Path && (set "msi16_68=Office 16.0 MSI x86/x64" & set "msi16repair68=%systemdrive%\Program Files\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\Setup.exe")
|
||||
%nul% reg query %_86%\16.0\Common\InstallRoot /v Path && (set "msi16_86=Office 16.0 MSI x86" & set "msi16repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\Setup.exe")
|
||||
%nul% reg query %_68%\14.0\CVH /f Click2run /k && (set "c2r14_68=Office 14.0 C2R x86/x64" & set "c2r14repair68=")
|
||||
%nul% reg query %_86%\14.0\CVH /f Click2run /k && (set "c2r14_86=Office 14.0 C2R x86" & set "c2r14repair86=")
|
||||
%nul% reg query %_68%\15.0\ClickToRun /v InstallPath && (set "c2r15_68=Office 15.0 C2R x86/x64" & set "c2r15repair68=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\integratedoffice.exe")
|
||||
%nul% reg query %_86%\15.0\ClickToRun /v InstallPath && (set "c2r15_86=Office 15.0 C2R x86" & set "c2r15repair86=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\integratedoffice.exe")
|
||||
%nul% reg query %_68%\ClickToRun /v InstallPath && (set "c2r16_68=Office 16.0 C2R x86/x64" & set "c2r16repair68=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\OfficeClickToRun.exe")
|
||||
%nul% reg query %_86%\ClickToRun /v InstallPath && (set "c2r16_86=Office 16.0 C2R x86" & set "c2r16repair86=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\OfficeClickToRun.exe")
|
||||
reg query %_68%\14.0\CVH /f Click2run /k %nul% && (set "c2r14_68=Office 14.0 C2R x86/x64" & set "c2r14repair68=")
|
||||
reg query %_86%\14.0\CVH /f Click2run /k %nul% && (set "c2r14_86=Office 14.0 C2R x86" & set "c2r14repair86=")
|
||||
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\14.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set "msi14_86=Office 14.0 MSI x86" & set "msi14repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\Office Setup Controller\Setup.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\14.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set "msi14_68=Office 14.0 MSI x86/x64" & set "msi14repair68=%systemdrive%\Program Files\Common Files\microsoft shared\OFFICE14\Office Setup Controller\Setup.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\15.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set "msi15_86=Office 15.0 MSI x86" & set "msi15repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\15.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set "msi15_68=Office 15.0 MSI x86/x64" & set "msi15repair68=%systemdrive%\Program Files\Common Files\microsoft shared\OFFICE15\Office Setup Controller\Setup.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\16.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set "msi16_86=Office 16.0 MSI x86" & set "msi16repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\Setup.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\16.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set "msi16_68=Office 16.0 MSI x86/x64" & set "msi16repair68=%systemdrive%\Program Files\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\Setup.exe")
|
||||
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\15.0\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses\ProPlus*.xrm-ms" (set "c2r15_86=Office 15.0 C2R x86" & set "c2r15repair86=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\integratedoffice.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\15.0\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses\ProPlus*.xrm-ms" (set "c2r15_68=Office 15.0 C2R x86/x64" & set "c2r15repair68=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\integratedoffice.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" (set "c2r16_86=Office 16.0 C2R x86" & set "c2r16repair86=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\OfficeClickToRun.exe")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" (set "c2r16_68=Office 16.0 C2R x86/x64" & set "c2r16repair68=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\OfficeClickToRun.exe")
|
||||
|
||||
set uwp16=
|
||||
if %winbuild% GEQ 10240 (
|
||||
@ -900,7 +934,7 @@ call :checkwmi
|
||||
:: Apply basic fix first and check
|
||||
|
||||
if defined error (
|
||||
call :_stopservice Winmgmt
|
||||
%psc% Stop-Service Winmgmt -force %nul%
|
||||
winmgmt /salvagerepository %nul%
|
||||
call :checkwmi
|
||||
)
|
||||
@ -938,9 +972,9 @@ goto :at_back
|
||||
|
||||
echo:
|
||||
echo Stopping Winmgmt service
|
||||
call :_stopservice Winmgmt
|
||||
call :_stopservice Winmgmt
|
||||
call :_stopservice Winmgmt
|
||||
%psc% Stop-Service Winmgmt -force %nul%
|
||||
%psc% Stop-Service Winmgmt -force %nul%
|
||||
%psc% Stop-Service Winmgmt -force %nul%
|
||||
sc query Winmgmt | find /i "STOPPED" %nul% && (
|
||||
echo [Successful]
|
||||
) || (
|
||||
@ -1004,7 +1038,7 @@ goto :at_back
|
||||
|
||||
:: https://eskonr.com/2012/01/how-to-fix-wmi-issues-automatically/
|
||||
|
||||
call :_stopservice Winmgmt
|
||||
%psc% Stop-Service Winmgmt -force %nul%
|
||||
cd /d %systemroot%\system32\wbem\
|
||||
regsvr32 /s %systemroot%\system32\scecli.dll
|
||||
regsvr32 /s %systemroot%\system32\userenv.dll
|
||||
@ -1090,21 +1124,41 @@ exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:_stopservice
|
||||
:: This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems
|
||||
|
||||
for %%# in (%1) do (
|
||||
sc query %%# | find /i "STOPPED" %nul% || net stop %%# /y %nul%
|
||||
sc query %%# | find /i "STOPPED" %nul% || sc stop %%# %nul%
|
||||
)
|
||||
exit /b
|
||||
:wpatest:
|
||||
$wpaKey = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Registry64').OpenSubKey("SYSTEM\\WPA")
|
||||
$count = $wpaKey.SubKeyCount
|
||||
|
||||
:_startservice
|
||||
$osVersion = [System.Environment]::OSVersion.Version
|
||||
$minBuildNumber = 14393
|
||||
|
||||
for %%# in (%1) do (
|
||||
sc query %%# | find /i "RUNNING" %nul% || net start %%# /y %nul%
|
||||
sc query %%# | find /i "RUNNING" %nul% || sc start %%# %nul%
|
||||
)
|
||||
exit /b
|
||||
if ($osVersion.Build -ge $minBuildNumber) {
|
||||
$subkeyHashTable = @{}
|
||||
foreach ($subkeyName in $wpaKey.GetSubKeyNames()) {
|
||||
$keyNumber = $subkeyName -replace '.*-', ''
|
||||
$subkeyHashTable[$keyNumber] = $true
|
||||
}
|
||||
for ($i=1; $i -le $count; $i++) {
|
||||
if (-not $subkeyHashTable.ContainsKey("$i")) {
|
||||
Write-Host "Total Keys $count. Error Found- $i key does not exist"
|
||||
$wpaKey.Close()
|
||||
exit
|
||||
}
|
||||
}
|
||||
}
|
||||
$wpaKey.GetSubKeyNames() | ForEach-Object {
|
||||
$subkey = $wpaKey.OpenSubKey($_)
|
||||
$p = $subkey.GetValueNames()
|
||||
if (($p | Where-Object { $subkey.GetValueKind($_) -eq [Microsoft.Win32.RegistryValueKind]::Binary }).Count -eq 0) {
|
||||
Write-Host "Total Keys $count. Error Found- Binary Data is corrupt"
|
||||
$wpaKey.Close()
|
||||
exit
|
||||
}
|
||||
}
|
||||
$count
|
||||
$wpaKey.Close()
|
||||
:wpatest:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<p align="center"><img src="https://raw.githubusercontent.com/massgravel/mas-docs/main/logo.png" alt="MAS Logo" height="128"></p>
|
||||
<p align="center"><img src="https://lookimg.com/images/2023/09/25/QY5RTR.png" alt="MAS Logo" height="128"></p>
|
||||
|
||||
<h1 align="center">Microsoft Activation Scripts (MAS)</h1>
|
||||
|
||||
@ -27,8 +27,8 @@
|
||||
To run the scripts in unattended mode, check [here](https://massgrave.dev/command_line_switches.html)
|
||||
|
||||
```
|
||||
Latest Version: 1.9
|
||||
Release date: 25-Sep-2023
|
||||
Latest Version: 2.5
|
||||
Release date: 16-Nov-2023
|
||||
```
|
||||
|
||||
### [Troubleshooting / Help](https://massgrave.dev/troubleshoot.html)
|
||||
@ -43,7 +43,7 @@ Release date: 25-Sep-2023
|
||||
|
||||
[1.1]: https://lookimg.com/images/2023/03/21/QTvjcD.png (Chat with us without signup)
|
||||
[1.2]: https://lookimg.com/images/2023/03/21/QTvLyd.png (Chat with us)
|
||||
[1.3]: https://lookimg.com/images/2023/03/21/QTvXBJ.png (Follow on twitter)
|
||||
[1.3]: https://lookimg.com/images/2023/10/29/QiBot9.png (Follow on 𝕏/Twitter)
|
||||
[1.4]: https://lookimg.com/images/2023/05/17/Q0iZ2U.png (Reddit)
|
||||
|
||||
[1]: https://discord.gg/gjJEfq7ux8
|
||||
|
Reference in New Issue
Block a user