From b65004daf0a8b44b42e7a8a5939995fea7c41c78 Mon Sep 17 00:00:00 2001 From: WindowsAddict Date: Wed, 22 Jan 2020 06:05:20 +0530 Subject: Add files via upload MAS 1.3 # HWID / KMS38 - Fixed a bug in Enterprise Edition activation. - Updated the ticket generation and applying process. # All - Added a project mirror on github. - Some minor improvements--- .../Activators/Check_Activation_Status.cmd | 239 ++ .../BIN/ARM64_gatherosstate.exe | Bin 0 -> 1047960 bytes .../HWID-KMS38_Activation/BIN/ARM64_slc.dll | Bin 0 -> 3072 bytes .../HWID-KMS38_Activation/BIN/ClipUp.exe | Bin 0 -> 1354304 bytes .../Activators/HWID-KMS38_Activation/BIN/_Info.txt | 45 + .../HWID-KMS38_Activation/BIN/gatherosstate.exe | Bin 0 -> 337920 bytes .../Activators/HWID-KMS38_Activation/BIN/slc.dll | Bin 0 -> 7168 bytes .../HWID-KMS38_Activation/HWID_Activation.cmd | 763 +++++++ .../HWID-KMS38_Activation/KMS38_Activation.cmd | 885 ++++++++ .../HWID-KMS38_Activation/ReadMe_HWID.txt | 345 +++ .../HWID-KMS38_Activation/ReadMe_KMS38.txt | 358 +++ .../Activators/Online_KMS_Activation/Activate.cmd | 2387 ++++++++++++++++++++ .../Activators/Online_KMS_Activation/BIN/_Info.txt | 16 + .../Online_KMS_Activation/BIN/cleanosppx64.exe | Bin 0 -> 19968 bytes .../Online_KMS_Activation/BIN/cleanosppx86.exe | Bin 0 -> 17408 bytes .../Online_KMS_Activation/Renewal_Setup.cmd | 657 ++++++ .../Activators/Online_KMS_Activation/Uninstall.cmd | 264 +++ .../Activators/Online_KMS_Activation/_ReadMe.txt | 657 ++++++ .../Separate-Files-Version/Activators/ReadMe.txt | 12 + MAS_1.3/Separate-Files-Version/Credits.txt | 120 + .../Extras/Download_Genuine_Installation_Media.url | 6 + .../Extract_OEM_Folder/Extract_OEM_Folder.cmd | 621 +++++ .../Extras/Extract_OEM_Folder/ReadMe.txt | 123 + .../KMS38_Protection/Protect_Unprotect-KMS38.cmd | 412 ++++ .../Extras/KMS38_Protection/ReadMe.txt | 48 + .../Extras/OEMRET-Change_W10_Edition.cmd | 291 +++ .../Extras/OEMRET-Install_W10_Key.cmd | 322 +++ MAS_1.3/Separate-Files-Version/Homepages.cmd | 4 + MAS_1.3/Separate-Files-Version/checksums.sha1 | 31 + 29 files changed, 8606 insertions(+) create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Check_Activation_Status.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_gatherosstate.exe create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_slc.dll create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ClipUp.exe create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/_Info.txt create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/gatherosstate.exe create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/slc.dll create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/HWID_Activation.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/KMS38_Activation.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_HWID.txt create mode 100644 MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_KMS38.txt create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Activate.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/_Info.txt create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx64.exe create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx86.exe create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Renewal_Setup.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Uninstall.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/_ReadMe.txt create mode 100644 MAS_1.3/Separate-Files-Version/Activators/ReadMe.txt create mode 100644 MAS_1.3/Separate-Files-Version/Credits.txt create mode 100644 MAS_1.3/Separate-Files-Version/Extras/Download_Genuine_Installation_Media.url create mode 100644 MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/Extract_OEM_Folder.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/ReadMe.txt create mode 100644 MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/Protect_Unprotect-KMS38.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/ReadMe.txt create mode 100644 MAS_1.3/Separate-Files-Version/Extras/OEMRET-Change_W10_Edition.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Extras/OEMRET-Install_W10_Key.cmd create mode 100644 MAS_1.3/Separate-Files-Version/Homepages.cmd create mode 100644 MAS_1.3/Separate-Files-Version/checksums.sha1 (limited to 'MAS_1.3/Separate-Files-Version') diff --git a/MAS_1.3/Separate-Files-Version/Activators/Check_Activation_Status.cmd b/MAS_1.3/Separate-Files-Version/Activators/Check_Activation_Status.cmd new file mode 100644 index 0000000..742557a --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/Check_Activation_Status.cmd @@ -0,0 +1,239 @@ +@setlocal DisableDelayedExpansion +@echo off +@cls + + +:: ================================================== +:: Check-Activation-Status-Alternative.cmd +:: Written by @abbodi1406 (MDL) +:: https://forums.mydigitallife.net/posts/838808 +:: ================================================== + + + + + + +color 07 +title Check Activation Status [wmic] +set wspp=SoftwareLicensingProduct +set wsps=SoftwareLicensingService +set ospp=OfficeSoftwareProtectionProduct +set osps=OfficeSoftwareProtectionService +set winApp=55c92734-d682-4d71-983e-d6ec3f16059f +set o14App=59a52881-a989-479d-af46-f275c6370663 +set o15App=0ff1ce15-a989-479d-af46-f275c6370663 +for %%# in (spp_get,ospp_get,cW1nd0ws,sppw,c0ff1ce15,sppo,osppsvc,ospp14,ospp15) do set "%%#=" +for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%# +set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, EvaluationEndDate, GracePeriodRemaining, ID, KeyManagementServiceMachine, KeyManagementServicePort, KeyManagementServiceProductKeyID, LicenseStatus, LicenseStatusReason, Name, PartialProductKey, ProductKeyID, VLActivationInterval, VLRenewalInterval" +set "ospp_get=%spp_get%" +if %winbuild% geq 9200 set "spp_get=%spp_get%, DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled" + +set "SysPath=%Windir%\System32" +if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative") +set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\" +set "line2=************************************************************" +set "line3=____________________________________________________________" + +call :casWpkey %wspp% %winApp% cW1nd0ws sppw +if %winbuild% geq 9200 call :casWpkey %wspp% %o15App% c0ff1ce15 sppo +wmic path %osps% get Version 1>nul 2>nul && ( +call :casWpkey %ospp% %o14App% osppsvc ospp14 +if %winbuild% lss 9200 call :casWpkey %ospp% %o15App% osppsvc ospp15 +) + +echo %line2% +echo *** Windows Status *** +echo %line2% +if not defined cW1nd0ws ( +echo: +echo Error: product key not found. +goto :casWcon +) +set winID=1 +for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%winApp%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%wspp%" "%wsps%" "%spp_get%" + call :casWout + echo %line3% + echo: +) + +:casWcon +set winID=0 +set verbose=1 +if not defined c0ff1ce15 ( +if defined osppsvc goto :casWospp +goto :casWend +) +echo %line2% +echo *** Office Status *** +echo %line2% +for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%wspp%" "%wsps%" "%spp_get%" + call :casWout + echo %line3% + echo: +) +set verbose=0 +if defined osppsvc goto :casWospp +goto :casWend + +:casWospp +if %verbose%==1 ( +echo %line2% +echo *** Office Status *** +echo %line2% +) +if defined ospp15 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%ospp%" "%osps%" "%ospp_get%" + call :casWout + echo %line3% + echo: +) +if defined ospp14 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o14App%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%ospp%" "%osps%" "%ospp_get%" + call :casWout + echo %line3% + echo: +) +goto :casWend + +:casWpkey +wmic path %1 where (ApplicationID='%2' and PartialProductKey is not null) get ID /value 2>nul | findstr /i ID 1>nul && (set %3=1&set %4=1) +exit /b + +:casWdet +for %%# in (%~3) do set "%%#=" +if %~1 equ %ospp% for %%# in (DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled) do set "%%#=" +set "cKmsClient=" +set "cTblClient=" +set "cAvmClient=" +set "ExpireMsg=" +set "_xpr=" +for /f "tokens=* delims=" %%# in ('"wmic path %~1 where ID='%chkID%' get %~3 /value" ^| findstr ^=') do set "%%#" + +set /a _gpr=(GracePeriodRemaining+1440-1)/1440 +echo %Description%| findstr /i VOLUME_KMSCLIENT 1>nul && (set cKmsClient=1&set _mTag=Volume) +echo %Description%| findstr /i TIMEBASED_ 1>nul && (set cTblClient=1&set _mTag=Timebased) +echo %Description%| findstr /i VIRTUAL_MACHINE_ACTIVATION 1>nul && (set cAvmClient=1&set _mTag=Automatic VM) +cmd /c exit /b %LicenseStatusReason% +set "LicenseReason=%=ExitCode%" +set "LicenseMsg=Time remaining: %GracePeriodRemaining% minute(s) (%_gpr% day(s))" +if %_gpr% GEQ 1 for /f "tokens=* delims=" %%# in ('powershell -nop -ep bypass -c "$([DateTime]::Now.addMinutes(%GracePeriodRemaining%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#" + +if %LicenseStatus% EQU 0 ( +set "License=Unlicensed" +set "LicenseMsg=" +) +if %LicenseStatus% EQU 1 ( +set "License=Licensed" +set "LicenseMsg=" +if %GracePeriodRemaining% EQU 0 ( + if %winID% EQU 1 (set "ExpireMsg=The machine is permanently activated.") else (set "ExpireMsg=The product is permanently activated.") + ) else ( + set "LicenseMsg=%_mTag% activation expiration: %GracePeriodRemaining% minute(s) (%_gpr% day(s))" + if defined _xpr set "ExpireMsg=%_mTag% activation will expire %_xpr%" + ) +) +if %LicenseStatus% EQU 2 ( +set "License=Initial grace period" +if defined _xpr set "ExpireMsg=Initial grace period ends %_xpr%" +) +if %LicenseStatus% EQU 3 ( +set "License=Additional grace period (KMS license expired or hardware out of tolerance)" +if defined _xpr set "ExpireMsg=Additional grace period ends %_xpr%" +) +if %LicenseStatus% EQU 4 ( +set "License=Non-genuine grace period." +if defined _xpr set "ExpireMsg=Non-genuine grace period ends %_xpr%" +) +if %LicenseStatus% EQU 6 ( +set "License=Extended grace period" +if defined _xpr set "ExpireMsg=Extended grace period ends %_xpr%" +) +if %LicenseStatus% EQU 5 ( +set "License=Notification" + if "%LicenseReason%"=="C004F200" (set "LicenseMsg=Notification Reason: 0xC004F200 (non-genuine)." + ) else if "%LicenseReason%"=="C004F009" (set "LicenseMsg=Notification Reason: 0xC004F009 (grace time expired)." + ) else (set "LicenseMsg=Notification Reason: 0x%LicenseReason%" + ) +) +if %LicenseStatus% GTR 6 ( +set "License=Unknown" +set "LicenseMsg=" +) +if not defined cKmsClient exit /b + +if %KeyManagementServicePort%==0 set KeyManagementServicePort=1688 +set "KmsReg=Registered KMS machine name: %KeyManagementServiceMachine%:%KeyManagementServicePort%" +if "%KeyManagementServiceMachine%"=="" set "KmsReg=Registered KMS machine name: KMS name not available" + +if %DiscoveredKeyManagementServiceMachinePort%==0 set DiscoveredKeyManagementServiceMachinePort=1688 +set "KmsDns=KMS machine name from DNS: %DiscoveredKeyManagementServiceMachineName%:%DiscoveredKeyManagementServiceMachinePort%" +if "%DiscoveredKeyManagementServiceMachineName%"=="" set "KmsDns=DNS auto-discovery: KMS name not available" + +for /f "tokens=* delims=" %%# in ('"wmic path %~2 get ClientMachineID, KeyManagementServiceHostCaching /value" ^| findstr ^=') do set "%%#" +if /i %KeyManagementServiceHostCaching%==True (set KeyManagementServiceHostCaching=Enabled) else (set KeyManagementServiceHostCaching=Disabled) + +if %winbuild% lss 9200 exit /b +if %~1 equ %ospp% exit /b + +if "%DiscoveredKeyManagementServiceMachineIpAddress%"=="" set "DiscoveredKeyManagementServiceMachineIpAddress=not available" + +if "%KeyManagementServiceLookupDomain%"=="" set "KeyManagementServiceLookupDomain=" + +if %VLActivationTypeEnabled% EQU 3 ( +set VLActivationType=Token +) else if %VLActivationTypeEnabled% EQU 2 ( +set VLActivationType=KMS +) else if %VLActivationTypeEnabled% EQU 1 ( +set VLActivationType=AD +) else ( +set VLActivationType=All +) +exit /b + +:casWout +echo: +echo Name: %Name% +echo Description: %Description% +echo Activation ID: %ID% +echo Extended PID: %ProductKeyID% +if defined ProductKeyChannel echo Product Key Channel: %ProductKeyChannel% +echo Partial Product Key: %PartialProductKey% +echo License Status: %License% +if defined LicenseMsg echo %LicenseMsg% +if not %LicenseStatus%==0 if not %EvaluationEndDate:~0,8%==16010101 echo Evaluation End Date: %EvaluationEndDate:~0,4%-%EvaluationEndDate:~4,2%-%EvaluationEndDate:~6,2% %EvaluationEndDate:~8,2%:%EvaluationEndDate:~10,2% UTC +if not defined cKmsClient ( +if defined ExpireMsg echo:&echo: %ExpireMsg% +exit /b +) +if defined VLActivationTypeEnabled echo Configured Activation Type: %VLActivationType% +echo: +if not %LicenseStatus%==1 ( +echo Please activate the product in order to update KMS client information values. +exit /b +) +echo Most recent activation information: +echo Key Management Service client information +echo: Client Machine ID (CMID): %ClientMachineID% +echo: %KmsDns% +echo: %KmsReg% +if defined DiscoveredKeyManagementServiceMachineIpAddress echo: KMS machine IP address: %DiscoveredKeyManagementServiceMachineIpAddress% +echo: KMS machine extended PID: %KeyManagementServiceProductKeyID% +echo: Activation interval: %VLActivationInterval% minutes +echo: Renewal interval: %VLRenewalInterval% minutes +echo: KMS host caching: %KeyManagementServiceHostCaching% +if defined KeyManagementServiceLookupDomain echo: KMS SRV record lookup domain: %KeyManagementServiceLookupDomain% +if defined ExpireMsg echo:&echo: %ExpireMsg% +exit /b + +:casWend +echo: +echo Press any key to exit. +pause >nul +exit /b \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_gatherosstate.exe b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_gatherosstate.exe new file mode 100644 index 0000000..7f338bf Binary files /dev/null and b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_gatherosstate.exe differ diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_slc.dll b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_slc.dll new file mode 100644 index 0000000..63ec4e9 Binary files /dev/null and b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ARM64_slc.dll differ diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ClipUp.exe b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ClipUp.exe new file mode 100644 index 0000000..b3b2cff Binary files /dev/null and b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/ClipUp.exe differ diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/_Info.txt b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/_Info.txt new file mode 100644 index 0000000..afeaf3b --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/_Info.txt @@ -0,0 +1,45 @@ +==================================================================================================== + File Details: +==================================================================================================== + + fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71 + ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68 + 578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69 + 5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67 + 48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68 + + Virus Total Report Date: 2020-01-21 + + - File Sources: + + - ClipUp.exe (Original): + From Windows server 2016 x64 ISO + + - gatherosstate.exe (Original): + From Windows 10 x86 14393 ADK + + - ARM64_gatherosstate.exe (Original): + From Windows 10 ARM64 18362 ISO + + - ARM64_slc.dll and slc.dll: + + Original slshim + https://github.com/vyvojar/slshim + + Improved by @mspaintmsi + https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + + Source code is included. + slc.dll is based on Integrated_Patcher_2 method. + It is currently in use in HWID/KMS38 Activation script. + +____________________________________________________________________________________________________ + + You can safely delete the following files if it's not required for you. + + ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions. + ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10. + +==================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/gatherosstate.exe b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/gatherosstate.exe new file mode 100644 index 0000000..4dba73a Binary files /dev/null and b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/gatherosstate.exe differ diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/slc.dll b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/slc.dll new file mode 100644 index 0000000..73da9ec Binary files /dev/null and b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/BIN/slc.dll differ diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/HWID_Activation.cmd b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/HWID_Activation.cmd new file mode 100644 index 0000000..4446e00 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/HWID_Activation.cmd @@ -0,0 +1,763 @@ +@setlocal DisableDelayedExpansion +@echo off + + +:: For unattended mode, run the script with /u parameter. + + + +::========================================================================================================= +: Credits: +::========================================================================================================= +:: +:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. +:: and Created various methods for HWID/KMS38 Activation +:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 +:: https://github.com/massgravel/MASSGRAVE +:: https://gitlab.com/massgrave/massgrave +:: +:: @vyvojar Original slshim (slc.dll) +:: https://github.com/vyvojar/slshim/releases +:: +::--------------------------------------------------------------------------------------------------------- +:: +:: HWID/KMS38 methods Suggestions and improvements:- +:: +:: @sponpa New ideas for the HWID/KM38 Generation +:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 +:: +:: @leitek8 Improvements for the slc.dll +:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 +:: +::--------------------------------------------------------------------------------------------------------- +:: +:: Kind Help:- +:: +:: Thanks for having my back and answering all of my queries. (In no particular order) +:: +:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 +:: +:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. +:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. +:: +:: Special thanks to @abbodi1406 for providing the great help. +:: +::--------------------------------------------------------------------------------------------------------- +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only +:: manage batch script tool which is based on the above mentioned original co-authors activation methods. +:: +::========================================================================================================= + + + + + + + + + +::======================================================================================================================================== + +cls +title [HWID] Digital License Activation +set Unattended= +set _args= +set _elev= +set "_arg1=%~1" +if not defined _arg1 goto :DL_NoProgArgs +set "_args=%~1" +set "_arg2=%~2" +if defined _arg2 set "_args=%~1 %~2" +for %%A in (%_args%) do ( +if /i "%%A"=="-el" set _elev=1 +if /i "%%A"=="/u" set Unattended=1) +:DL_NoProgArgs +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "Red="white" "DarkRed"" +set "Green="white" "DarkGreen"" +set "Magenta="white" "darkmagenta"" +set "Gray="white" "darkgray"" +set "Black="white" "Black"" +set "ELine=echo: &call :DL_color "==== ERROR ====" %Red% &echo:" +set slp=SoftwareLicensingProduct +set sls=SoftwareLicensingService +set wApp=55c92734-d682-4d71-983e-d6ec3f16059f + +::======================================================================================================================================== + +for %%i in (powershell.exe) do if "%%~$path:i"=="" ( +echo: &echo ==== ERROR ==== &echo: +echo Powershell is not installed in the system. +echo Aborting... +goto DL_Done +) + +::======================================================================================================================================== + +if %winbuild% LSS 10240 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 10. +goto DL_Done +) + +::======================================================================================================================================== + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :DL_Passed + ) || ( + if defined _elev goto :DL_E_Admin +) + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el +if defined _args set _PSarg="""%~f0""" -el """%_args%""" + +setlocal EnableDelayedExpansion + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :DL_E_Admin +) +) +exit /b + +:DL_E_Admin +%ELine% +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +goto DL_Done + +:DL_Passed + +::======================================================================================================================================== + +:: Fix for the special characters limitation in path name +:: Written by @abbodi1406 + +set "_work=%~dp0" +if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" + +set "_batf=%~f0" +set "_batp=%_batf:'=''%" + +setlocal EnableDelayedExpansion + +::======================================================================================================================================== + +mode con: cols=102 lines=31 + +:: Check Windows OS name + +set winos= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" +if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" + +call :DL_CheckPermAct +if defined PermAct ( + +echo ___________________________________________________________________________________________ +echo: +call :DL_color1 " " %Black% &call :DL_color "Checking: %winos% is Permanently Activated." %Green% +call :DL_color1 " " %Black% &call :DL_color "Activation is not required." %Gray% +echo ___________________________________________________________________________________________ +echo: +if defined Unattended goto DL_Done + +echo Press [1] or [2] button in Keyboard : +echo ___________________________________________ +echo: +choice /C:12 /N /M "> [1] Activate [2] Exit : " + +if errorlevel 2 exit /b +if errorlevel 1 Goto DL_Continue +) + +:DL_Continue +cls + +::======================================================================================================================================== + +cd /d "!_work!" +pushd "!_work!" + +if not exist "!_work!\BIN\" ( +%ELine% +echo 'BIN' Folder does not exist in current directory. +echo It's supposed to have files required for the Activation. +goto DL_Done +) + +::======================================================================================================================================== + +echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval= +if defined Eval ( +%ELine% +echo [%winos% ^| %winbuild%] HWID Activation is Not Supported. +echo %winos%| findstr /I Server >nul && ( +echo Server Evaluation cannot be activated. Convert it to full Server OS. +) || ( +echo Evaluation Editions cannot be activated. Install full Windows OS. +) +goto DL_Done +) + +::======================================================================================================================================== + +:: Check SKU value + +set SKU= +for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) +if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) + +if "%osSKU%"=="" ( +%ELine% +echo SKU value was not detected properly. Aborting... +goto DL_Done +) + +:: Check Windows Edition with SKU value for better accuracy + +set osedition= +call :_CheckEdition %nul% + +if "%osedition%"=="" ( +%ELine% +echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported. +goto DL_Done +) + +:: Check Windows Architecture + +set arch= +reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64 +wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64 + +if "%arch%"=="ARM64" call :DL_check ARM64_gatherosstate.exe ARM64_slc.dll +if not "%arch%"=="ARM64" call :DL_check gatherosstate.exe slc.dll +if defined _miss goto DL_Done + +::======================================================================================================================================== + +cls +set key= +call :%osedition% %nul% + +if "%key%"=="" ( +%ELine% +echo [%winos% ^| %winbuild%] HWID Activation is Not Supported. +goto DL_Done +) + +::======================================================================================================================================== + +cls +echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%] + +set "Chkint=Checking Internet Connection " +set IntCon= +ping -n 1 www.microsoft.com %nul% && ( +set IntCon=1 +echo %Chkint% [Connected] +) || ( +call :DL_color "%Chkint% [Not connected] [Ping www.microsoft.com - Failed]" %Red% +) + +::======================================================================================================================================== + +echo: +set _1=ClipSVC +set _2=wlidsvc +set _3=sppsvc +set _4=wuauserv + +for %%# in (%_1% %_2% %_3% %_4%) do call :DL_ServiceCheck %%# + +set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]" +set "wlecho=Checking %_2% [Service Status -%wl_state%] [Startup Type -%wl_start_type%]" +set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]" +set "wuecho=Checking %_4% [Service Status -%wu_state%] [Startup Type -%wu_start_type%]" + +if not "%Cl_start_type%"=="Demand" (call :DL_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%) +if not "%wl_start_type%"=="Demand" (call :DL_color "%wlecho%" %Red% & set wlst_e=1) else (echo %wlecho%) +if not "%sp_start_type%"=="Delayed-Auto" (call :DL_color "%specho%" %Red% & set spst_e=1) else (echo %specho%) + +if "%wu_start_type%"=="Disabled" (set "_C=%Red%") else (set "_C=%Gray%") +if not "%wu_start_type%"=="Auto" (call :DL_color "%wuecho%" %_C% & set wust_e=1) else (echo %wuecho%) + +echo: +if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand ) +if defined wlst_e (sc config %_2% start= Demand %nul% && set wlst_s=%_2%-Demand || set wlst_u=%_2%-Demand ) +if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto ) +if defined wust_e (sc config %_4% start= Auto %nul% && set wust_s=%_4%-Auto || set wust_u=%_4%-Auto ) + +for %%# in (Clst_s,wlst_s,spst_s,wust_s) do if defined %%# set st_s=1 +if defined st_s (echo Changing services Startup Type to [ %Clst_s%%wlst_s%%spst_s%%wust_s%] [Successful]) + +for %%# in (Clst_u,wlst_u,spst_u,wust_u) do if defined %%# set st_u=1 +if defined st_u (call :DL_color "Error in changing Startup Type to [ %Clst_u%%wlst_u%%spst_u%%wust_u%]" %Red%) + +if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% ) +if not "%wl_state%"=="Running" (%_psc% start-service %_2% %nul% && set wl_s=%_2% || set wl_u=%_2% ) +if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% ) +if not "%wu_state%"=="Running" (%_psc% start-service %_4% %nul% && set wu_s=%_4% || set wu_u=%_4% ) + +for %%# in (Cl_s,wl_s,sp_s,wu_s) do if defined %%# set s_s=1 +if defined s_s (echo Starting services [ %Cl_s%%wl_s%%sp_s%%wu_s%] [Successful]) + +for %%# in (Cl_u,wl_u,sp_u,wu_u) do if defined %%# set s_u=1 +if defined s_u (call :DL_color "Error in starting services [ %Cl_u%%wl_u%%sp_u%%wu_u%]" %Red%) + +if defined wust_u ( +call :DL_color "Most likely the Windows Update Service was blocked with a tool, identify and unblock it." %Magenta% +) + +::======================================================================================================================================== + +:: Thanks to @abbodi1406 for the WMI methods + +echo: +set _channel= +set _Keyexist= +set _partial= + +for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" +for %%A in (MAK, OEM, Retail) do echo %_channel%| findstr /i %%A >nul && set _Keyexist=1 + +if defined _Keyexist ( +for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#" +call echo Checking Installed Product Key [%_channel%] [Partial Key -%%_partial%%] +) + +if not defined _Keyexist ( +set "InsKey=Installing Generic Product Key " +wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && ( +for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" +call echo %%InsKey%% [%key%] [%%_channel%%] [Successful] +) || ( +call :DL_color "%%InsKey%% [%key%] [Unsuccessful]" %Red% +) +) + +wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% + +::======================================================================================================================================== + +:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names. + +echo: +set "temp_=%SystemRoot%\Temp\_Ticket_Work" +if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% +md "%temp_%\" %nul% + +cd /d "!_work!\BIN\" + +set ARM64_file= +if "%arch%"=="ARM64" set ARM64_file=ARM64_ + +copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul% +copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul% + +set cfailed= +if not exist "%temp_%\gatherosstate.exe" set cfailed=1 +if not exist "%temp_%\slc.dll" set cfailed=1 + +set "copyfiles=Copying Required Files to Temp " +if defined cfailed ( +call :DL_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red% +goto :DL_Act_Cont +) else ( +echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful] +) + +cd /d "%temp_%\" +attrib -R -A -S -H *.* + +::======================================================================================================================================== + +set "GatherMod=Creating modified gatherosstate " + +if not "%arch%"=="ARM64" ( +rundll32 "%temp_%\slc.dll",PatchGatherosstate %nul% +if not exist "%temp_%\gatherosstatemodified.exe" ( +call :DL_color "%GatherMod% [Unsuccessful] Aborting" %Red% +call :DL_color "Most likely Antivirus program blocked the process, disable it and-or create proper exclsuions." %Magenta% +goto :DL_Act_Cont +) else ( +echo %GatherMod% [Successful] +) +) + +::======================================================================================================================================== + +set _gather= +if "%arch%"=="ARM64" ( +set _gather=gatherosstate.exe +) else ( +set _gather=gatherosstatemodified.exe +) + +:: Multiple attempts to generate the ticket because in some cases, one attempt is not enough. + +set "_noxml=if not exist "%temp_%\GenuineTicket.xml"" + +start /wait "" "%temp_%/%_gather%" %nul% +%_noxml% timeout /t 3 %nul% +%_noxml% call "%temp_%/%_gather%" %nul% +%_noxml% timeout /t 3 %nul% +%_noxml% "%temp_%/%_gather%" %nul% +%_noxml% timeout /t 3 %nul% + +set "GenTicket=Generating GenuineTicket.xml " +%_noxml% ( +call :DL_color "%GenTicket% [Unsuccessful] Aborting..." %Red% +goto :DL_Act_Cont +) else ( +echo %GenTicket% [Successful] +) + +:: clipup -v -o -altto method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names. + +set "InsTicket=Installing GenuineTicket.xml " +set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket" +if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% +copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul% + +if not exist "%TDir%\GenuineTicket.xml" ( +call :DL_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red% +goto :DL_Act_Cont +) + +set "_xmlexist=if exist "%TDir%\GenuineTicket.xml"" + +%_psc% Restart-Service ClipSVC %nul% +%_xmlexist% timeout /t 2 %nul% +%_xmlexist% timeout /t 2 %nul% + +%_xmlexist% ( +%_psc% stop-Service ClipSVC %nul% +%_psc% start-Service ClipSVC %nul% +%_xmlexist% timeout /t 2 %nul% +%_xmlexist% timeout /t 2 %nul% +) + +set fallback_= +%_xmlexist% ( +set fallback_=1 +%nul% clipup -v -o +%_xmlexist% timeout /t 2 %nul% +) + +%_xmlexist% ( +call :DL_color "%InsTicket% [Unsuccessful] Aborting..." %Red% +if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% +goto :DL_Act_Cont +) else ( +if not defined fallback_ echo %InsTicket% [Successful] +if defined fallback_ call :DL_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red% +) + +::======================================================================================================================================== + +echo: +echo Activating... +echo: + +wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul% +call :DL_CheckPermAct +if defined PermAct goto DL_Act_successful + +call :DL_ReTry +if not "%ErrCode%"=="" set "Error_Code_=[Error Code %ErrCode%]" +call :DL_CheckPermAct + +:DL_Act_successful + +if defined PermAct ( +call :DL_color "%winos% is permanently activated." %Green% +goto :DL_Act_Cont +) + +call :DL_color "Activation Failed %Error_Code_%" %Red% +call :DL_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta% + +::======================================================================================================================================== + +:DL_Act_Cont + +echo: +set "changing_wust_back=Changing wu Startup Type back to [%wu_start_type%]" +if defined wust_s ( +sc config %_4% start= %wu_start_type% %nul% && echo %changing_wust_back% [Successful] +) || ( +call :DL_color "%changing_wust_back% [Unsuccessful]" %Red% +) + +cd /d "!_work!\" +if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% +set "delFiles=Cleaning Temp Files " +if exist "%temp_%\" ( +call :DL_color "%delFiles% [Unsuccessful]" %Red% +) else ( +echo %delFiles% [Successful] +) + +goto DL_Done + +::======================================================================================================================================== + +:: Echo all the missing files. +:: Written by @abbodi1406 (MDL) + +:DL_check + +for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#"))) +if defined _miss ( +%ELine% +echo Following required file^(s^) is missing in 'BIN' folder. Aborting... +echo: +echo !_miss! +) +exit /b + +::======================================================================================================================================== + +:DL_ServiceCheck + +:: Detect Service status and start type +:: Written by @RPO + +for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b") +for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d") + +if /i "%state%"=="STOPPED" set state=Stopped +if /i "%state%"=="RUNNING" set state=Running + +if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto +if /i "%start_type%"=="auto_start " set start_type=Auto +if /i "%start_type%"=="demand_start " set start_type=Demand +if /i "%start_type%"=="disabled " set start_type=Disabled + +for %%i in (%*) do ( +if /i "%%i"=="%_4%" set "wu_start_type=%start_type%" & set "wu_state=%state%" +if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%" +if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%" +if /i "%%i"=="%_2%" set "wl_start_type=%start_type%" & set "wl_state=%state%" +) +exit /b + +::======================================================================================================================================== + +:DL_CheckPermAct + +:: Check Windows Permanent Activation status +:: Written by @abbodi1406 + +wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct= +exit /b + +::======================================================================================================================================== + +:DL_ReTry + +if defined IntCon if not defined wust_u if not defined wu_u call :DL_ReTry_2 + +:: Detect Error Code in the Activation +:: Written by @abbodi1406 + +wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul% +set errorcode=%errorlevel% +cmd /c exit /b %errorcode% +if %errorcode% NEQ 0 set "ErrCode=0x%=ExitCode%" +exit /b + +:DL_ReTry_2 + +set app= +%_psc% Restart-Service sppsvc %nul% + +:: Specific rearm - reset the licensing status of the Windows SKU and app, without the need to restart the system. +:: wmic method by @abbodi1406 + +for /f "tokens=2 delims==" %%G in ('"wmic path %slp% where (ApplicationID='%wApp%' AND ProductKeyID like '%%-%%') get ID /value" 2^>nul') do (set app=%%G) +wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul% +wmic path %slp% where ID='%app%' call ReArmsku %nul% + +wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% +cscript /nologo %windir%\system32\slmgr.vbs -ato %nul% +exit /b + +::======================================================================================================================================== + +:DL_color + +%_psc% write-host '%1' -fore '%2' -back '%3' +exit /b + +:DL_color1 + +%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline +exit /b + +::======================================================================================================================================== + +:DL_Done + +echo: +if defined Unattended ( +echo Exiting in 3 seconds... +if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) +:: set a value to use in certain conditions of setupcomplete.cmd file. +if defined key if not defined PermAct (endlocal & endlocal & set HWIDAct=1) +exit /b +) +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== + +:: Check Windows Edition with SKU value for better accuracy + +:_CheckEdition + +for %%# in ( +4-Enterprise +27-EnterpriseN +48-Professional +49-ProfessionalN +98-CoreN +99-CoreCountrySpecific +100-CoreSingleLanguage +101-Core +121-Education +122-EducationN +125-EnterpriseS +126-EnterpriseSN +161-ProfessionalWorkstation +162-ProfessionalWorkstationN +164-ProfessionalEducation +165-ProfessionalEducationN +175-ServerRdsh +188-IoTEnterprise +) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( +if %osSKU%==%%A set "osedition=%%B" +) +exit /b + +::======================================================================================================================================== + +:: Retail_OEM Key List + +:Core +set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7" +exit /b + +:CoreCountrySpecific +set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD" +exit /b + +:CoreN +set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW" +exit /b + +:CoreSingleLanguage +set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT" +exit /b + +:Education +set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY" +exit /b + +:EducationN +set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H" +exit /b + +:Enterprise +set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C" +exit /b + +:EnterpriseN +set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT" +exit /b + +:EnterpriseS +if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW" +if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX" +exit /b + +:EnterpriseSN +if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K" +if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4" +exit /b + +:Professional +set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T" +exit /b + +:ProfessionalEducation +set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB" +exit /b + +:ProfessionalEducationN +set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P" +exit /b + +:ProfessionalN +set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT" +exit /b + +:ProfessionalWorkstation +set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77" +exit /b + +:ProfessionalWorkstationN +set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ" +exit /b + +:ServerRdsh +set "key=NJCF7-PW8QT-3324D-688JX-2YV66" +exit /b + +:IoTEnterprise +set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD" +exit /b + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/KMS38_Activation.cmd b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/KMS38_Activation.cmd new file mode 100644 index 0000000..69a8174 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/KMS38_Activation.cmd @@ -0,0 +1,885 @@ +@setlocal DisableDelayedExpansion +@echo off + + +:: For unattended mode, run the script with /u parameter. + + + +::========================================================================================================= +: Credits: +::========================================================================================================= +:: +:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. +:: and Created various methods for HWID/KMS38 Activation +:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 +:: https://github.com/massgravel/MASSGRAVE +:: https://gitlab.com/massgrave/massgrave +:: +:: @vyvojar Original slshim (slc.dll) +:: https://github.com/vyvojar/slshim/releases +:: +::--------------------------------------------------------------------------------------------------------- +:: +:: HWID/KMS38 methods Suggestions and improvements:- +:: +:: @sponpa New ideas for the HWID/KM38 Generation +:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 +:: +:: @leitek8 Improvements for the slc.dll +:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 +:: +::--------------------------------------------------------------------------------------------------------- +:: +:: Kind Help:- +:: +:: Thanks for having my back and answering all of my queries. (In no particular order) +:: +:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 +:: +:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. +:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. +:: +:: Special thanks to @abbodi1406 for providing the great help. +:: +::--------------------------------------------------------------------------------------------------------- +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only +:: manage batch script tool which is based on the above mentioned original co-authors activation methods. +:: +::========================================================================================================= + + + + + + + + + +::======================================================================================================================================== + +cls +title KMS38 Activation +set Unattended= +set _args= +set _elev= +set "_arg1=%~1" +if not defined _arg1 goto :K38_NoProgArgs +set "_args=%~1" +set "_arg2=%~2" +if defined _arg2 set "_args=%~1 %~2" +for %%A in (%_args%) do ( +if /i "%%A"=="-el" set _elev=1 +if /i "%%A"=="/u" set Unattended=1) +:K38_NoProgArgs +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "Red="white" "DarkRed"" +set "Green="white" "DarkGreen"" +set "Magenta="white" "darkmagenta"" +set "Gray="white" "darkgray"" +set "Black="white" "Black"" +set "ELine=echo: &call :K38_color "==== ERROR ====" %Red% &echo:" +set slp=SoftwareLicensingProduct +set sls=SoftwareLicensingService +set wApp=55c92734-d682-4d71-983e-d6ec3f16059f + +::======================================================================================================================================== + +for %%i in (powershell.exe) do if "%%~$path:i"=="" ( +echo: &echo ==== ERROR ==== &echo: +echo Powershell is not installed in the system. +echo Aborting... +goto K38_Done +) + +::======================================================================================================================================== + +if %winbuild% LSS 14393 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 10 / Server - 1607 [14393] and later builds. +goto K38_Done +) + +::======================================================================================================================================== + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :K38_Passed + ) || ( + if defined _elev goto :K38_E_Admin +) + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el +if defined _args set _PSarg="""%~f0""" -el """%_args%""" + +setlocal EnableDelayedExpansion + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :K38_E_Admin +) +) +exit /b + +:K38_E_Admin +%ELine% +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +goto K38_Done + +:K38_Passed + +::======================================================================================================================================== + +:: Fix for the special characters limitation in path name +:: Written by @abbodi1406 + +set "_work=%~dp0" +if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" + +set "_batf=%~f0" +set "_batp=%_batf:'=''%" + +setlocal EnableDelayedExpansion + +::======================================================================================================================================== + +mode con: cols=102 lines=30 + +:: Check Windows OS name + +set winos= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" +if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" + +call :K38_CheckPermAct +if defined PermAct ( + +echo ___________________________________________________________________________________________ +echo: +call :K38_color1 " " %Black% &call :K38_color "Checking: %winos% is Permanently Activated." %Green% +call :K38_color1 " " %Black% &call :K38_color "Activation is not required." %Gray% +echo ___________________________________________________________________________________________ +echo: +if defined Unattended goto K38_Done + +echo Press [1] or [2] button in Keyboard : +echo ___________________________________________ +echo: +choice /C:12 /N /M "> [1] Activate [2] Exit : " + +if errorlevel 2 exit /b +if errorlevel 1 Goto K38_Continue +) + +:K38_Continue +cls + +::======================================================================================================================================== + +cd /d "!_work!" +pushd "!_work!" + +if not exist "!_work!\BIN\" ( +%ELine% +echo 'BIN' Folder does not exist in current directory. +echo It's supposed to have files required for the Activation. +goto K38_Done +) + +::======================================================================================================================================== + +echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval= +if defined Eval ( +%ELine% +echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported. +echo %winos%| findstr /I Server >nul && ( +echo Server Evaluation cannot be activated. Convert it to full Server OS. +) || ( +echo Evaluation Editions cannot be activated. Install full Windows OS. +) +goto K38_Done +) + +::======================================================================================================================================== + +:: Check SKU value + +set SKU= +for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) +if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) + +if "%osSKU%"=="" ( +%ELine% +echo SKU value was not detected properly. Aborting... +goto K38_Done +) + +:: Check Windows Edition with SKU value for better accuracy + +set osedition= +call :K38_CheckEdition %nul% + +if "%osedition%"=="" ( +%ELine% +echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] KMS38 Activation is Not Supported. +goto K38_Done +) + +:: Check Activation ID + +set app= +for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a" + +:: Check Windows Architecture + +set arch= +reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64 +wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64 + +if "%arch%"=="ARM64" call :K38_check ARM64_gatherosstate.exe ARM64_slc.dll +if not "%arch%"=="ARM64" call :K38_check gatherosstate.exe slc.dll +if defined _miss goto K38_Done + +::======================================================================================================================================== + +cls +if "%app%"=="" ( +%ELine% +echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported. +goto K38_Done +) + +set key= +call :%app% %nul% + +if "%key%"=="" ( +%ELine% +echo [%winos% ^| %winbuild% ^| %app%] KMS38 Activation is Not Supported. +goto K38_Done +) + +:: clipup.exe does not exist in server cor and acor editions. + +set A_Cor= +echo %osedition%| findstr /I /B Server >nul && if not exist "%systemroot%\System32\clipup.exe" set A_Cor=1 + +if defined A_Cor ( +call :K38_check clipup.exe +if defined _miss goto K38_Done +) + +::======================================================================================================================================== + +cls +echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%] + +echo: +set _1=ClipSVC +set _3=sppsvc + +for %%# in (%_1% %_3%) do call :K38_ServiceCheck %%# + +set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]" +set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]" + +if not "%Cl_start_type%"=="Demand" (call :K38_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%) +if not "%sp_start_type%"=="Delayed-Auto" (call :K38_color "%specho%" %Red% & set spst_e=1) else (echo %specho%) + +echo: +if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand ) +if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto ) + +for %%# in (Clst_s,spst_s) do if defined %%# set st_s=1 +if defined st_s (echo Changing services Startup Type to [ %Clst_s%%spst_s%] [Successful]) + +for %%# in (Clst_u,spst_u) do if defined %%# set st_u=1 +if defined st_u (call :K38_color "Error in changing Startup Type to [ %Clst_u%%spst_u%]" %Red%) + +if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% ) +if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% ) + +for %%# in (Cl_s,sp_s) do if defined %%# set s_s=1 +if defined s_s (echo Starting services [ %Cl_s%%sp_s%] [Successful]) + +for %%# in (Cl_u,sp_u) do if defined %%# set s_u=1 +if defined s_u (call :K38_color "Error in starting services [ %Cl_u%%sp_u%]" %Red%) + +::======================================================================================================================================== + +:: Thanks to @abbodi1406 for the WMI methods + +echo: +set _channel= +set _Keyexist= +set _partial= + +wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _Keyexist=1) + +if defined _Keyexist ( +for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#" +call echo Checking Installed Product Key [Volume:GVLK] [Partial Key -%%_partial%%] +) + +if not defined _Keyexist ( +set "InsKey=Installing KMS Client Setup Key " +wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && ( +call echo %%InsKey%% [%key%] [Successful] +) || ( +call :K38_color "%%InsKey%% [%key%] [Unsuccessful]" %Red% +) +) + +wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% + +::======================================================================================================================================== + +:: Set specific KMS host to Local Host +:: Thanks to @abbodi1406 + +:: By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and other Windows Editions. + +echo: +set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" +reg delete "HKLM\%SPPk%\%wApp%" /f %nul% +reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% + +set setkms_error= +set "setkms_=Setting Specific KMS Host to " + +wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1) +wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1) +wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1) +wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1) + +if not defined setkms_error ( +echo %setkms_% [LocalHost 127.0.0.2] [Successful] +) else ( +call :K38_color "%setkms_% [LocalHost 127.0.0.2] [Unsuccessful]" %Red% +) + +::======================================================================================================================================== + +:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names. + +echo: +set "temp_=%SystemRoot%\Temp\_Ticket_Work" +if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% +md "%temp_%\" %nul% + +cd /d "!_work!\BIN\" + +set ARM64_file= +if "%arch%"=="ARM64" set ARM64_file=ARM64_ + +set "A_Cor_cl=%systemroot%\System32\clipup.exe" +copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul% +copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul% +if defined A_Cor (copy /y /b "ClipUp.exe" "%A_Cor_cl%" %nul%) + +set cfailed= +if not exist "%temp_%\gatherosstate.exe" set cfailed=1 +if not exist "%temp_%\slc.dll" set cfailed=1 + +set "copyfiles=Copying Required Files to Temp " +set "copyclipup=Copying clipup.exe File to " + +if defined cfailed ( +call :K38_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red% +goto K38_Act_Cont +) else ( +echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful] +) + +if defined A_Cor ( +if not exist "%A_Cor_cl%" call :K38_color "%copyclipup% [%systemroot%\System32\] [Unsuccessful] Aborting..." %Red% & goto K38_Act_Cont +if exist "%A_Cor_cl%" echo %copyclipup% [%systemroot%\System32\] [Successful] +) + +cd /d "%temp_%\" +attrib -R -A -S -H *.* + +::======================================================================================================================================== + +:: Multiple attempts to generate the ticket because in some cases, one attempt is not enough. + +set "_noxml=if not exist "%temp_%\GenuineTicket.xml"" + +start /wait "" "%temp_%/gatherosstate.exe" %nul% +%_noxml% timeout /t 3 %nul% +%_noxml% call "%temp_%/gatherosstate.exe" %nul% +%_noxml% timeout /t 3 %nul% +%_noxml% "%temp_%/gatherosstate.exe" %nul% +%_noxml% timeout /t 3 %nul% + +set "GenTicket=Generating GenuineTicket.xml " +%_noxml% ( +call :K38_color "%GenTicket% [Unsuccessful] Aborting..." %Red% +goto K38_Act_Cont +) else ( +echo %GenTicket% [Successful] +) + +:: clipup -v -o -altto method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names. + +set "InsTicket=Installing GenuineTicket.xml " +set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket" +if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% +copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul% + +if not exist "%TDir%\GenuineTicket.xml" ( +call :K38_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red% +goto K38_Act_Cont +) + +set "_xmlexist=if exist "%TDir%\GenuineTicket.xml"" + +%_psc% Restart-Service ClipSVC %nul% +%_xmlexist% timeout /t 2 %nul% +%_xmlexist% timeout /t 2 %nul% + +%_xmlexist% ( +%_psc% stop-Service ClipSVC %nul% +%_psc% start-Service ClipSVC %nul% +%_xmlexist% timeout /t 2 %nul% +%_xmlexist% timeout /t 2 %nul% +) + +set fallback_= +%_xmlexist% ( +set fallback_=1 +%nul% clipup -v -o +%_xmlexist% timeout /t 2 %nul% +) + +%_xmlexist% ( +call :K38_color "%InsTicket% [Unsuccessful] Aborting..." %Red% +if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% +goto K38_Act_Cont +) else ( +if not defined fallback_ echo %InsTicket% [Successful] +if defined fallback_ call :K38_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red% +) + +::======================================================================================================================================== + +echo: +echo Activating... +echo: + +call :K38_CheckEXPtime +if %gpr% GTR 259200 ( +call :K38_Actinfo +goto K38_Act_Cont +) + +::======================================================================================================================================== + +:: Clear 180 Days KMS Activation lock without full Rearm and Restart + +set RearmF= +set "Rearm=Applying SKU-APP ID Rearm " +wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul% || (set RearmF=1) +wmic path %slp% where ID='%app%' call ReArmsku %nul% || (set RearmF=1) + +if defined RearmF ( +call :K38_color "%Rearm% [Unsuccessful]" %Red% +) else ( +echo %Rearm% [Successful] +) + +::======================================================================================================================================== + +echo: +call :K38_CheckEXPtime +if %gpr% GTR 259200 ( +call :K38_Actinfo +goto K38_Act_Cont +) + +%_psc% Restart-Service sppsvc %nul% +wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% + +call :K38_CheckEXPtime +if %gpr% GTR 259200 ( +call :K38_Actinfo +goto K38_Act_Cont +) + +call :K38_color "Activation Failed." %Red% +call :K38_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta% + +:K38_Act_Cont + +:: clipup.exe does not exist in server cor and acor editions by default, it was copied there with this script. + +echo: +cd /d "!_work!\" +if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% +if defined A_Cor (if exist "%A_Cor_cl%" del /f /q "%A_Cor_cl%" %nul%) + +set "delFiles=Cleaning Temp Files " +set "delclipup=Deleting copied clipup.exe file " + +if exist "%temp_%\" ( +call :K38_color "%delFiles% [Unsuccessful]" %Red% +) else ( +echo %delFiles% [Successful] +) + +if defined A_Cor ( +if exist "%A_Cor_cl%" call :K38_color "%delclipup% [Unsuccessful]" %Red% +if not exist "%A_Cor_cl%" echo %delclipup% [Successful] +) + +goto K38_Done + +::======================================================================================================================================== + +:: Echo all the missing files. +:: Written by @abbodi1406 (MDL) + +:K38_check + +for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#"))) +if defined _miss ( +%ELine% +echo Following required file^(s^) is missing in 'BIN' folder. Aborting... +echo: +echo !_miss! +) +exit /b + +::======================================================================================================================================== + +:K38_ServiceCheck + +:: Detect Service status and start type +:: Written by @RPO + +for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b") +for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d") + +if /i "%state%"=="STOPPED" set state=Stopped +if /i "%state%"=="RUNNING" set state=Running + +if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto +if /i "%start_type%"=="auto_start " set start_type=Auto +if /i "%start_type%"=="demand_start " set start_type=Demand +if /i "%start_type%"=="disabled " set start_type=Disabled + +for %%i in (%*) do ( +if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%" +if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%" +) +exit /b + +::======================================================================================================================================== + +:K38_CheckPermAct + +:: Check Windows Permanent Activation status +:: Written by @abbodi1406 + +wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct= +exit /b + +::======================================================================================================================================== + +:: Check Expiration date with powershell +:: Written by @abbodi1406 + +:K38_Actinfo + +for /f "tokens=* delims=" %%# in ('%_psc% "$([DateTime]::Now.addMinutes(%gpr%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#" +call :K38_color "%winos% is activated till %_xpr%" %Green% +exit /b + +::======================================================================================================================================== + +:K38_CheckEXPtime + +:: Check Activation remaining time +:: Written by @abbodi1406 + +for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#" +exit /b + +::======================================================================================================================================== + +:K38_color + +%_psc% write-host '%1' -fore '%2' -back '%3' +exit /b + +:K38_color1 + +%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline +exit /b + +::======================================================================================================================================== + +:K38_Done + +echo: +if defined Unattended ( +echo Exiting in 3 seconds... +if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) +exit /b +) +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== + +:: Check Windows Edition with SKU value for better accuracy + +:K38_CheckEdition + +for %%# in ( +4-Enterprise +7-ServerStandard +8-ServerDatacenter +27-EnterpriseN +48-Professional +49-ProfessionalN +50-ServerSolution +98-CoreN +99-CoreCountrySpecific +100-CoreSingleLanguage +101-Core +110-ServerCloudStorage +120-ServerARM64 +121-Education +122-EducationN +125-EnterpriseS +126-EnterpriseSN +145-ServerDatacenterACor +146-ServerStandardACor +161-ProfessionalWorkstation +162-ProfessionalWorkstationN +164-ProfessionalEducation +165-ProfessionalEducationN +168-ServerAzureCor +171-EnterpriseG +172-EnterpriseGN +175-ServerRdsh +183-CloudE +) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( +if %osSKU%==%%A set "osedition=%%B" +) +exit /b + +::======================================================================================================================================== + +:: Generic Volume License Key (GVLK) List + +:: Windows 10 [RS5] +:32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee +set "key=M7XTQ-FN8P6-TTKYV-9D4CC-J462D" &:: Enterprise LTSC 2019 +exit /b + +:7103a333-b8c8-49cc-93ce-d37c09687f92 +set "key=92NFX-8DJQP-P6BBQ-THF9C-7CG2H" &:: Enterprise LTSC 2019 N +exit /b + +:ec868e65-fadf-4759-b23e-93fe37f2cc29 +set "key=CPWHC-NT2C7-VYW78-DHDB2-PG3GK" &:: Enterprise for Virtual Desktops +exit /b + +:0df4f814-3f57-4b8b-9a9d-fddadcd69fac +set "key=NBTWJ-3DR69-3C4V8-C26MC-GQ9M6" &:: Lean +exit /b + +:: Windows 10 [RS3] +:82bbc092-bc50-4e16-8e18-b74fc486aec3 +set "key=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J" &:: Pro Workstation +exit /b + +:4b1571d3-bafb-4b40-8087-a961be2caf65 +set "key=9FNHH-K3HBT-3W4TD-6383H-6XYWF" &:: Pro Workstation N +exit /b + +:e4db50ea-bda1-4566-b047-0ca50abc6f07 +set "key=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX" &:: Enterprise Remote Server +exit /b + +:: Windows 10 [RS2] +:e0b2d383-d112-413f-8a80-97f373a5820c +set "key=YYVX9-NTFWV-6MDM3-9PT4T-4M68B" &:: Enterprise G +exit /b + +:e38454fb-41a4-4f59-a5dc-25080e354730 +set "key=44RPN-FTY23-9VTTB-MP9BX-T84FV" &:: Enterprise G N +exit /b + +:: Windows 10 [RS1] +:2d5a5a60-3040-48bf-beb0-fcd770c20ce0 +set "key=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ" &:: Enterprise 2016 LTSB +exit /b + +:9f776d83-7156-45b2-8a5c-359b9c9f22a3 +set "key=QFFDN-GRT3P-VKWWX-X7T3R-8B639" &:: Enterprise 2016 LTSB N +exit /b + +:3f1afc82-f8ac-4f6c-8005-1d233e606eee +set "key=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y" &:: Pro Education +exit /b + +:5300b18c-2e33-4dc2-8291-47ffcec746dd +set "key=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC" &:: Pro Education N +exit /b + +:: Windows 10 [TH] +:58e97c99-f377-4ef1-81d5-4ad5522b5fd8 +set "key=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99" &:: Home +exit /b + +:7b9e1751-a8da-4f75-9560-5fadfe3d8e38 +set "key=3KHY7-WNT83-DGQKR-F7HPR-844BM" &:: Home N +exit /b + +:cd918a57-a41b-4c82-8dce-1a538e221a83 +set "key=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH" &:: Home Single Language +exit /b + +:a9107544-f4a0-4053-a96a-1479abdef912 +set "key=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR" &:: Home China +exit /b + +:2de67392-b7a7-462a-b1ca-108dd189f588 +set "key=W269N-WFGWX-YVC9B-4J6C9-T83GX" &:: Pro +exit /b + +:a80b5abf-76ad-428b-b05d-a47d2dffeebf +set "key=MH37W-N47XK-V7XM9-C7227-GCQG9" &:: Pro N +exit /b + +:e0c42288-980c-4788-a014-c080d2e1926e +set "key=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2" &:: Education +exit /b + +:3c102355-d027-42c6-ad23-2e7ef8a02585 +set "key=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ" &:: Education N +exit /b + +:73111121-5638-40f6-bc11-f1d7b0d64300 +set "key=NPPR9-FWDCX-D2C8J-H872K-2YT43" &:: Enterprise +exit /b + +:e272e3e2-732f-4c65-a8f0-484747d0d947 +set "key=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4" &:: Enterprise N +exit /b + +:7b51a46c-0c04-4e8f-9af4-8496cca90d5e +set "key=WNMTR-4C88C-JK8YV-HQ7T2-76DF9" &:: Enterprise 2015 LTSB +exit /b + +:87b838b7-41b6-4590-8318-5797951d8529 +set "key=2F77B-TNFGY-69QQF-B8YKP-D69TJ" &:: Enterprise 2015 LTSB N +exit /b + +:: Windows Server 2019 [RS5] +:de32eafd-aaee-4662-9444-c1befb41bde2 +set "key=N69G4-B89J2-4G8F4-WWYCC-J464C" &:: Standard +exit /b + +:34e1ae55-27f8-4950-8877-7a03be5fb181 +set "key=WMDGN-G9PQG-XVVXX-R3X43-63DFG" &:: Datacenter +exit /b + +:034d3cbb-5d4b-4245-b3f8-f84571314078 +set "key=WVDHN-86M7X-466P6-VHXV7-YY726" &:: Essentials +exit /b + +:a99cc1f0-7719-4306-9645-294102fbff95 +set "key=FDNH6-VW9RW-BXPJ7-4XTYG-239TB" &:: Azure Core +exit /b + +:73e3957c-fc0c-400d-9184-5f7b6f2eb409 +set "key=N2KJX-J94YW-TQVFB-DG9YT-724CC" &:: Standard ACor +exit /b + +:90c362e5-0da1-4bfd-b53b-b87d309ade43 +set "key=6NMRW-2C8FM-D24W7-TQWMY-CWH2D" &:: Datacenter ACor +exit /b + +:8de8eb62-bbe0-40ac-ac17-f75595071ea3 +set "key=GRFBW-QNDC4-6QBHG-CCK3B-2PR88" &:: ServerARM64 +exit /b + +:: Windows Server 2016 [RS4] +:43d9af6e-5e86-4be8-a797-d072a046896c +set "key=K9FYF-G6NCK-73M32-XMVPY-F9DRR" &:: ServerARM64 +exit /b + +:: Windows Server 2016 [RS3] +:61c5ef22-f14f-4553-a824-c4b31e84b100 +set "key=PTXN8-JFHJM-4WC78-MPCBR-9W4KR" &:: Standard ACor +exit /b + +:e49c08e7-da82-42f8-bde2-b570fbcae76c +set "key=2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG" &:: Datacenter ACor +exit /b + +:: Windows Server 2016 [RS1] +:8c1c5410-9f39-4805-8c9d-63a07706358f +set "key=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY" &:: Standard +exit /b + +:21c56779-b449-4d20-adfc-eece0e1ad74b +set "key=CB7KF-BWN84-R7R2Y-793K2-8XDDG" &:: Datacenter +exit /b + +:2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283 +set "key=JCKRF-N37P4-C2D82-9YXRT-4M63B" &:: Essentials +exit /b + +:7b4433f4-b1e7-4788-895a-c45378d38253 +set "key=QN4C6-GBJD2-FB422-GHWJK-GJG2R" &:: Cloud Storage +exit /b + +:3dbf341b-5f6c-4fa7-b936-699dce9e263f +set "key=VP34G-4NPPG-79JTQ-864T4-R3MQX" &:: Azure Core +exit /b + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_HWID.txt b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_HWID.txt new file mode 100644 index 0000000..74b23b0 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_HWID.txt @@ -0,0 +1,345 @@ +==================================================================================================== + [HWID] Digital License Activation: +==================================================================================================== + + - This activation is supported for Windows 10 ONLY. + - This activation does not store any files in your system. + - This activation is a permanent activation for your system Hardware. + + - On a system, this activation can be created for all the supported editions, and all can be + linked to Microsoft account without any issues. + + - Once a system is activated, this activation cannot be removed. (Because the license is stored in + the Microsoft servers and not in the user's system.) + + - Any significant changes in the Hardware (such as a motherboard) may deactivate the system. + It is possible to reactivate a system that was deactivated because of significant hardware + changes, IF your activation, was linked to an online Microsoft account. + + - For activation to succeed, the Windows Update Service and internet connectivity must be enabled. + If you are trying to activate without these conditions being met, then the system will auto- + activate later when the conditions are met. + + - Auto activation scenario after the Windows reinstall: + - The Internet is required. (Only at the time of activation) + - The system will auto-activate if Retail (Consumer) media was used for the installation. + - The system will NOT auto-activate if VL (Business) media was used for the installation. + In this case, the user will have to insert that windows edition Retail/OEM key (find keys below + in this page) to activate, if the user doesn't wish to activate again using this script. + + - Possible reasons for activation failure: + - The Internet is not connected. + - Windows update service is disabled. + - Use of a VPN, and/or a privacy-based hosts file, firewall rules. + - Corrupt system files. + - Microsoft servers block the activation request from some countries such as Iran. + - Rarely, Microsoft's activation servers are the problem. + - Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe + The reason is unknown (to me). Please contact me if it happens to you. + + * Troubleshoot guide is listed below. + +==================================================================================================== + + Documentation by @mspaintmsi + + Included topics- + + How does it work? + Is it possible that Microsoft can block these Digital Licenses (HWID)? + + https://pastebin.com/raw/7Xyaf15Z + Mirror Link- + https://textuploader.com/1dg8d/raw + + And + + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + +==================================================================================================== + Supported Products: +==================================================================================================== + + Windows 10 Versions that can be activated: + + Core + CoreCountrySpecific + CoreN + CoreSingleLanguage + Education + EducationN + Enterprise + EnterpriseN + EnterpriseS [LTSB 2015 & 2016] + EnterpriseSN [LTSB 2015 & 2016] + Professional + ProfessionalEducation + ProfessionalEducationN + ProfessionalN + ProfessionalWorkstation + ProfessionalWorkstationN + ServerRdsh + IoTEnterprise + + + Note - X86-X64 and ARM64 architecture systems are supported. + - Any Evaluation version of Windows (i.e. 'EVAL' LTSB/C) cannot be activated. + - LTSC 2019 is not supported. + +==================================================================================================== + Switches for the Script: +==================================================================================================== + + - To run the script in unattended mode, use /u parameter. +"HWID_Activation.cmd" /u + +==================================================================================================== + File Details: +==================================================================================================== + + fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71 + ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68 + 578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69 + 5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67 + 48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68 + + Virus Total Report Date: 2020-01-21 + + - File Sources: + + - ClipUp.exe (Original): + From Windows server 2016 x64 ISO + + - gatherosstate.exe (Original): + From Windows 10 x86 14393 ADK + + - ARM64_gatherosstate.exe (Original): + From Windows 10 ARM64 18362 ISO + + - ARM64_slc.dll and slc.dll: + + Original slshim + https://github.com/vyvojar/slshim + + Improved by @mspaintmsi + https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + + Source code is included. + slc.dll is based on Integrated_Patcher_2 method. + It is currently in use in HWID/KMS38 Activation script. + +____________________________________________________________________________________________________ + + You can safely delete the following files if it's not required for you. + + ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions. + ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10. + +==================================================================================================== + Manual Activation Process: +==================================================================================================== + + - Prerequisite: + + For Windows 10 x86-x64 system, you need following files, + fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe + ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll + + For Windows 10 ARM64 system, you need following files, + 578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe + 5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll + * Rename the ARM64 files to gatherosstate.exe and slc.dll respectively. + + + Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder. + + ------------------------------------------------------------------------------------------------- + + Retail/OEM Keys Windows 10 Editions + + YTMG3-N6DKC-DKB77-7M9GH-8HVX7 Core + 4CPRK-NM3K3-X6XXQ-RXX86-WXCHW CoreN + N2434-X9D7W-8PF6X-8DV9T-8TYMD CoreCountrySpecific + BT79Q-G7N6G-PGBYW-4YWX6-6F4BT CoreSingleLanguage + YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY Education + 84NGF-MHBT6-FXBX8-QWJK7-DRR8H EducationN + XGVPP-NMH47-7TTHJ-W3FW7-8HV2C Enterprise + 3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT EnterpriseN + FWN7H-PF93Q-4GGP8-M8RF3-MDWWW EnterpriseS [LTSB 2015] + 8V8WN-3GXBH-2TCMG-XHRX3-9766K EnterpriseSN [LTSB 2015] + NK96Y-D9CD8-W44CQ-R8YTK-DYJWX EnterpriseS [LTSB 2016] + 2DBW3-N2PJG-MVHW3-G7TDK-9HKR4 EnterpriseSN [LTSB 2016] + VK7JG-NPHTM-C97JM-9MPGT-3V66T Professional + 2B87N-8KFHP-DKV6R-Y2C8J-PKCKT ProfessionalN + 8PTT6-RNW4C-6V7J2-C2D3X-MHBPB ProfessionalEducation + GJTYN-HDMQY-FRR76-HVGC7-QPF8P ProfessionalEducationN + DXG7C-N36C4-C4HTG-X4T3X-2YV77 ProfessionalWorkstation + WYPNQ-8C467-V2W6J-TX4WX-WT2RQ ProfessionalWorkstationN + NJCF7-PW8QT-3324D-688JX-2YV66 ServerRdsh + XQQYW-NFFMW-XJPBH-K8732-CKFFD IoTEnterprise + + ------------------------------------------------------------------------------------------------- + + - Make sure the Windows Update Service and internet are both enabled. + - Open a command prompt (run cmd.exe) as administrator, and enter following listed commands in the + the sequence in which they are given. + - Enter Retail/OEM Key, (Replace '%key%' with the key from the above list) with the following command: + +cscript /nologo %windir%\system32\slmgr.vbs /ipk %key% + + - Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter + the following commands to generate GenuineTicket.xml file. + + For x86-x64 systems, + +pushd "C:\Files" +rundll32 "C:\Files\slc.dll",PatchGatherosstate +call "C:\Files\gatherosstatemodified.exe" + + For ARM64 systems, + +call "C:\Files\gatherosstate.exe" + + - Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the + folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\" + + - Now apply this ticket using the following commands in this sequence: + +net stop ClipSVC +net start ClipSVC + + - Activate Windows with the following command: + +cscript /nologo %windir%\system32\slmgr.vbs /ato + + - Check Activation Status with the following command: + +cscript /nologo %windir%\system32\slmgr.vbs /xpr + + - Done. + + * Note - [clipup -v -o -altto ] method to apply the ticket was not suggested because + of the issues in case the username have spaces or non English characters. + +==================================================================================================== + Troubleshoot activation issues: +==================================================================================================== + + - Make sure the internet is connected. + + - Open CMD and type services.msc and hit Enter, When Services opens up, look for 'Windows Update' + and Make sure its startup type is set to Automatic. Some update blocking tools and scripts + usually permanently block the update service, you need to make sure it's not the case. + + - VPN, privacy-based hosts and/or firewall rules may cause problems with the activation. Disable + them if you are facing problems in activation. + + - Reboot the system. + + - Now run the script to activate Windows 10, and if unsuccessful, + Try the troubleshoot button in the settings activation page. + If still unsuccessful then read additional troubleshoot options listed below. + +-------------------------------------------- + + - Open CMD as administrator, and enter the following command: + +Dism /online /Cleanup-Image /RestoreHealth + + - After it's done, reboot the system and open CMD as administrator again, and enter the + following command: + +sfc.exe /scannow + + - After it's done, reboot the system and run the activation script, and if unsuccessful, + open CMD as administrator again, and enter the following command: + +slmgr.vbs /rearm + + - Reboot the system and run the activation script, and if unsuccessful, + You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303 + (this will require to repair Office afterwards.) + + - Reboot the system and run the activation script, and if unsuccessful, + try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed + licences in the current system installation. open CMD as administrator again, and enter the + following commands one by one: + +net stop ClipSVC +rundll32 clipc.dll,ClipCleanUpState + + - Reboot the system (important) and run the activation script, and if unsuccessful, + Make sure hardware component proper drivers are installed, check manufacturer site/Windows- + update for drivers. + + - After it's done, reboot the system and run the activation script, and if unsuccessful, + it may be time to start over from the very beginning and do a clean install of windows :D + +------------------------------------------- + Activation is blocked in some countries - +------------------------------------------- + + - Microsoft servers block the activation request from some countries such as Iran, + To activate the system in those countries, follow the below steps, + - In the settings app, Change Region and Timezone to the USA location and use a VPN, choose the + the location of the USA. Now run the script, it should activate now. + +---------------------------------------------------------------------------------------------------- + + - Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe + The reason is unknown (to me). Please contact me if it happens to you. + +========================================================================================================= + Credits: +========================================================================================================= + + @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. + and Created various methods for HWID/KMS38 Activation + *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + + @vyvojar Original slshim (slc.dll) + https://github.com/vyvojar/slshim/releases + +--------------------------------------------------------------------------------------------------------- + + HWID/KMS38 methods Suggestions and improvements:- + + @sponpa New ideas for the HWID/KM38 Generation + https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 + + @leitek8 Improvements for the slc.dll + https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 + +--------------------------------------------------------------------------------------------------------- + + Kind Help:- + + Thanks for having my back and answering all of my queries. (In no particular order) + + @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 + + @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. + @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. + + Special thanks to @abbodi1406 for providing the great help. + +--------------------------------------------------------------------------------------------------------- + + This script is a part of 'Microsoft Activation Scripts' project. + + Homepages- + NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts + GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts + + Maintained by @WindowsAddict + + P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only + manage batch script tool which is based on the above mentioned original co-authors activation methods. + +========================================================================================================= \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_KMS38.txt b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_KMS38.txt new file mode 100644 index 0000000..1864d7e --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/HWID-KMS38_Activation/ReadMe_KMS38.txt @@ -0,0 +1,358 @@ +==================================================================================================== + KMS38 Activation: +==================================================================================================== + + - This activation method activates Windows 10 and Windows Server (14393 and later builds), + until the year 2038. + - This activation method does not store any files on the system. + + - Make sure the following things have been accounted for, before applying KMS38 Activation: + - Before the activation, if any KMS activator is installed, then make sure to uninstall it + completely. + - After KMS38 activation for the Windows Operating System has been achieved, if you want to + additionally, use the 180 Days KMS Activator for MS Office, then you must make sure that + it (the 180 Days KMS Activator for MS Office) is compatible with Windows KMS38 activation. + FYI, the following activators are compatible and can activate Office + without disrupting the Windows KMS38 activation. + + KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808 + Online KMS Activation Script https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + + - Any KMS Activator which is not compatible with KMS38, may overwrite the KMS38 activation for + Windows with its own 180 days activation, thereby destroying the KMS38 activation for Windows. + To prevent this accidental overwriting, you can apply KMS38 protection for Windows, check + the Extras folder for more details. + + - Why is the script setting the specific KMS host to 127.0.0.2 (localhost)? + - By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and + other Windows Editions. + - In case you don't like it, you can remove it with following codes, open CMD as admin and enter, + +set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" +reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f +reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f + +==================================================================================================== + + Documentation by @mspaintmsi + + Included topics- + + How does it work? + + https://pastebin.com/raw/7Xyaf15Z + Mirror Link- + https://textuploader.com/1dg8d/raw + + And + + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + +==================================================================================================== + Supported Products: +==================================================================================================== + + Windows 10: + + Core + CoreCountrySpecific + CoreN + CoreSingleLanguage + Education + EducationN + Enterprise + EnterpriseG + EnterpriseGN + EnterpriseN + EnterpriseS [LTSB 2016 & LTSC 2019] + EnterpriseSN [LTSB 2016 & LTSC 2019] + Professional + ProfessionalEducation + ProfessionalEducationN + ProfessionalN + ProfessionalWorkstation + ProfessionalWorkstationN + ServerRdsh + + ------------------------ + + Windows Server: + + ServerCloudStorage [Server 2016] + ServerDatacenter [Server 2016 & 2019] + ServerDatacenterCor [Server 2016 & 2019] + ServerSolution [Server 2016 & 2019] + ServerSolutionCor [Server 2016 & 2019] + ServerStandard [Server 2016 & 2019] + ServerStandardCor [Server 2016 & 2019] + ServerAzureCor [Server 2016 & 2019] + ServerDatacenterACor [All versions] + ServerStandardACor [All versions] + + + Note - X86-X64 and ARM64 architecture systems are supported. + - Any Evaluation version of Windows and Server (i.e. 'EVAL' LTSB/C) cannot be activated. + - KMS38 only supports Windows/server version 14393 (1607) and newer versions. + +==================================================================================================== + Switches in the Script: +==================================================================================================== + + - For unattended mode, run the script with /u parameter. + +"KMS38_Activation.cmd" /u + +==================================================================================================== + File Details: +==================================================================================================== + + fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71 + ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68 + 578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69 + 5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67 + 48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68 + + Virus Total Report Date: 2020-01-21 + + - File Sources: + + - ClipUp.exe (Original): + From Windows server 2016 x64 ISO + + - gatherosstate.exe (Original): + From Windows 10 x86 14393 ADK + + - ARM64_gatherosstate.exe (Original): + From Windows 10 ARM64 18362 ISO + + - ARM64_slc.dll and slc.dll: + + Original slshim + https://github.com/vyvojar/slshim + + Improved by @mspaintmsi + https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + + Source code is included. + slc.dll is based on Integrated_Patcher_2 method. + It is currently in use in HWID/KMS38 Activation script. + +____________________________________________________________________________________________________ + + You can safely delete the following files if it's not required for you. + + ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions. + ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10. + +==================================================================================================== + Manual Activation Process: +==================================================================================================== + + - Prerequisite: + + For Windows 10 / Server x86-x64 system, you need following files, + 48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe + fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe + ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll + * ClipUp.exe is only required to activate Server Cor and Acor editions. + + For Windows 10 ARM64 system, you need following files, + 578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe + 5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll + * Rename the ARM64 files to gatherosstate.exe and slc.dll respectively. + + Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder. + + ------------------------------------------------------------------------------------------------- + + GVLK Windows 10 Editions + + TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Core + PVMJN-6DFY6-9CCP6-7BKTT-D3WVR CoreCountrySpecific + 3KHY7-WNT83-DGQKR-F7HPR-844BM CoreN + 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH CoreSingleLanguage + NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education + 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ EducationN + NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise + YYVX9-NTFWV-6MDM3-9PT4T-4M68B EnterpriseG + 44RPN-FTY23-9VTTB-MP9BX-T84FV EnterpriseGN + DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 EnterpriseN + DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ EnterpriseS [LTSB 2016] + M7XTQ-FN8P6-TTKYV-9D4CC-J462D EnterpriseS [LTSC 2019] + QFFDN-GRT3P-VKWWX-X7T3R-8B639 EnterpriseSN [LTSB 2016] + 92NFX-8DJQP-P6BBQ-THF9C-7CG2H EnterpriseSN [LTSC 2019] + W269N-WFGWX-YVC9B-4J6C9-T83GX Professional + 6TP4R-GNPTD-KYYHQ-7B7DP-J447Y ProfessionalEducation + YVWGF-BXNMC-HTQYQ-CPQ99-66QFC ProfessionalEducationN + MH37W-N47XK-V7XM9-C7227-GCQG9 ProfessionalN + NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J ProfessionalWorkstation + 9FNHH-K3HBT-3W4TD-6383H-6XYWF ProfessionalWorkstationN + 7NBT4-WGBQX-MP4H7-QXFF8-YP3KX ServerRdsh [Less than 1809] + CPWHC-NT2C7-VYW78-DHDB2-PG3GK ServerRdsh [Greater or Equal 1809] + + GVLK Windows Server Editions + + QN4C6-GBJD2-FB422-GHWJK-GJG2R ServerCloudStorage [Server 2016] + CB7KF-BWN84-R7R2Y-793K2-8XDDG ServerDatacenter, ServerDatacenterCor [Server 2016] + WMDGN-G9PQG-XVVXX-R3X43-63DFG ServerDatacenter, ServerDatacenterCor [Server 2019] + JCKRF-N37P4-C2D82-9YXRT-4M63B ServerSolution, ServerSolutionCor [Server 2016] + WVDHN-86M7X-466P6-VHXV7-YY726 ServerSolution, ServerSolutionCor [Server 2019] + WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY ServerStandard, ServerStandardCor [Server 2016] + N69G4-B89J2-4G8F4-WWYCC-J464C ServerStandard, ServerStandardCor [Server 2019] + VP34G-4NPPG-79JTQ-864T4-R3MQX ServerAzureCor [Server 2016] + FDNH6-VW9RW-BXPJ7-4XTYG-239TB ServerAzureCor [Server 2019] + 6Y6KB-N82V8-D8CQV-23MJW-BWTG6 ServerDatacenterACor [Server 1709 and later] + DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4 ServerStandardACor [Server 1709 and later] + + ------------------------------------------------------------------------------------------------- + + - Make sure to properly and completely remove any previously-installed KMS activator if one already exists. + - Open CMD as Admin, and enter the following listed commands in the sequence in which they are given. + - Enter Generic Volume License Key (GVLK) (Replace '%key%' with the key from the above list) + with the following command: + +cscript /nologo %windir%\system32\slmgr.vbs /ipk %key% + + - Set specific KMS host to 127.0.0.2 [Localhost] with the following command: (Run one by one) + - By doing this, the global KMS IP can not replace the KMS38 activation, and can then safely be used with MS Office + and other Windows Editions. + - It's optional. + +set spp=SoftwareLicensingProduct +for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G) +wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine +wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort +wmic path %spp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" +wmic path %spp% where ID='%app%' call SetKeyManagementServicePort 1688 + + - Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter + following command to generate GenuineTicket.xml file. + +call "C:\Files\gatherosstate.exe" + + - Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the + folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\" + + - Now apply this ticket using the following commands in this sequence: + (In case of server cor and acor editions, copy the clipup.exe file to the folder "C:\Windows\System32\") + +net stop ClipSVC +net start ClipSVC + + - Check the expiry date of the activation with the following command: + +cscript /nologo %windir%\system32\slmgr.vbs /xpr + + - If the expiry date is not in the year 2038, then enter the following command: + +cscript /nologo %windir%\system32\slmgr.vbs /rearm-app 55c92734-d682-4d71-983e-d6ec3f16059f +set spp=SoftwareLicensingProduct +for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G) +cscript /nologo %windir%\system32\slmgr.vbs /rearm-sku %app% + + - check expiry date again, now it should show activation until the year 2038. + + - Done. + +==================================================================================================== + Troubleshoot activation issues: +==================================================================================================== + + - Make sure to completely remove any previously-installed KMS activators if any exist, before + installing KMS38 activation. + + - Reboot the system. + + - Now run the script to activate Windows 10, and if unsuccessful, + Try the troubleshoot button in settings activation page. + If still unsuccessful then read additional troubleshoot options listed below. + +-------------------------------------------- + + - Open CMD as Admin, and enter the following command: + +Dism /online /Cleanup-Image /RestoreHealth + + - After its done, reboot the system and Open CMD as Admin, and enter the following command: + +sfc.exe /scannow + + - After it's done, reboot the system and run the activation script, and if unsuccessful, + open CMD as administrator again, and enter the following command: + +slmgr.vbs /rearm + + - Reboot the system (important) and run the activation script, and if unsuccessful, + You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303 + (this will require to repair Office afterwards.) + + - Reboot the system and run the activation script, and if unsuccessful, + try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed + licences in the current system installation. open CMD as administrator again, and enter the + following commands one by one: + +net stop ClipSVC +rundll32 clipc.dll,ClipCleanUpState + + - Reboot the system (important) and run the activation script, and if unsuccessful, it may be + time to start over from the very beginning and do a clean install of windows :D + +---------------------------------------------------------------------------------------------------- + + - Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe + The reason is unknown (to me). Please contact me if it happens to you. + +========================================================================================================= + Credits: +========================================================================================================= + + @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. + and Created various methods for HWID/KMS38 Activation + *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + + @vyvojar Original slshim (slc.dll) + https://github.com/vyvojar/slshim/releases + +--------------------------------------------------------------------------------------------------------- + + HWID/KMS38 methods Suggestions and improvements:- + + @sponpa New ideas for the HWID/KM38 Generation + https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 + + @leitek8 Improvements for the slc.dll + https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 + +--------------------------------------------------------------------------------------------------------- + + Kind Help:- + + Thanks for having my back and answering all of my queries. (In no particular order) + + @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 + + @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. + @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. + + Special thanks to @abbodi1406 for providing the great help. + +--------------------------------------------------------------------------------------------------------- + + This script is a part of 'Microsoft Activation Scripts' project. + + Homepages- + NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts + GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts + + Maintained by @WindowsAddict + + P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only + manage batch script tool which is based on the above mentioned original co-authors activation methods. + +========================================================================================================= \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Activate.cmd b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Activate.cmd new file mode 100644 index 0000000..dccf733 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Activate.cmd @@ -0,0 +1,2387 @@ +@setlocal DisableDelayedExpansion +@echo off + + + +::======================================================================================================================================== + +:: change to 1 to enable debug mode +set _Debug=0 + +:: change to 0 to turn OFF Windows or Office activation via the script +:: note: this is not effective if Windows and/or Office installation is already Volume (GVLK installed) +set ActWindows=1 +set ActOffice=1 + +:: change to 0 to revert Windows 10 KMS38 to normal KMS +set SkipKMS38=1 + +:: change to 0 to turn OFF auto conversion for Office C2R Retail to Volume +set AutoR2V=1 + +:: set the script to use only one specific KMS server address. +:: paste the server address after the = sign in below line. +set KMS_Server= + +:: Change to 1 to clear KMS cache after the activation. +:: - Registered KMS server address (cache) enables the system to automatically renew the license (for every next 180 days) every 7 days, as long as the server is online. +:: - This process is same as how the legal KMS suppose to work, so no security program will flag this behaviour. +:: - Changing this option here won't have any effect if manual (Desktop Context menu) and/or auto, renewal activation script is installed. [default (0)]. +:: - I recommend to leave this option as default (0). +set Clear-KMS-Cache=0 + +:: ### Advanced KMS Options ### + +:: change KMS auto renewal schedule, range in minutes: from 15 to 43200 +:: example: 10080 = weekly, 1440 = daily, 43200 = monthly +set KMS_RenewalInterval=10080 + +:: change KMS reattempt schedule for failed activation or unactivated, range in minutes: from 15 to 43200 +set KMS_ActivationInterval=120 + +:: change Hardware Hash for KMS emulator server (only affect Windows 8.1 and 10) +set KMS_HWID=0x3A1C049600B60076 + +:: change KMS TCP port +set KMS_Port=1688 + +: ################################################################## +: # NORMALY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT # +: ################################################################## + + +::======================================================================================================================================== + +: Credits: + +:: This script is a fork of 'KMS_VL_ALL - Smart Activation Script' Project +:: The main project is maintained by @abbodi1406 +:: https://forums.mydigitallife.net/posts/838808 + +:: This fork was made to avoid having any KMS binary files and system can be activated using +:: some manual commands or transparent batch script files. +:: Thanks to @RPO (MDL), for providing great help in making of this fork. + +::-------------------------------------------------------------------------------------------------------- + +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict + +::======================================================================================================================================== + +cls +title Online KMS Activation +set Unattended= +set _args= +set _elev= +set Task= +set "_arg1=%~1" +if not defined _arg1 goto :NoProgArgs +set "_args=%~1" +set "_arg2=%~2" +if defined _arg2 set "_args=%~1 %~2" +for %%A in (%_args%) do ( +if /i "%%A"=="-el" set _elev=1 +if /i "%%A"=="/u" set Unattended=1 +if /i "%%A"=="Task" set Task=1&set Unattended=1) +:NoProgArgs +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "EchoRed=%_psc% write-host -back Black -fore Red" +set "EchoGreen=%_psc% write-host -back Black -fore Green" +set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:" + +::======================================================================================================================================== + +for %%i in (powershell.exe) do if "%%~$path:i"=="" ( +echo: &echo ==== ERROR ==== &echo: +echo Powershell is not installed in the system. +echo Aborting... +goto Done +) + +::======================================================================================================================================== + +if %winbuild% LSS 7600 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent. +goto Done +) + +::======================================================================================================================================== + +:: Fix for the special characters limitation in path name +:: Written by @abbodi1406 + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el +if defined _args set _PSarg="""%~f0""" -el """%_args%""" + +setlocal EnableDelayedExpansion + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :Passed + ) || ( + if defined _elev goto :E_Admin +) + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :E_Admin +) +) +exit /b + +:E_Admin +%ELine% +if "!_batf!"=="%ProgramData%\Online_KMS_Activation\Activate.cmd" ( +echo Unable to elevate the script as admin. +echo Try to manually run the file as admin - "%ProgramData%\Online_KMS_Activation\Activate.cmd" +) else ( +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +) +goto Done + +:Passed + +::======================================================================================================================================== + +if defined Task ( +set DateTime=1 +set Renewal_Task=1 +reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( +set Renewal_Task= +set Run_Once=1 +) +) + +If defined Task call :_Start_>>"%ProgramData%\Online_KMS_Activation\Logs.txt" & exit +:_Start_ +If defined Task call :Activation_Start & echo Exiting... & echo: & exit /b + +::======================================================================================================================================== + +:: Set buffer height independently of window height +:: https://stackoverflow.com/a/13351373 +:: Written by @dbenham (stackoverflow) + +mode con: cols=98 lines=30 +if "!_batf!"=="%ProgramData%\Online_KMS_Activation\Activate.cmd" title Online KMS Activation [%ProgramData%\Online_KMS_Activation\] +%nul% %_psc% "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.height=150;$W.buffersize=$B;}" + +::======================================================================================================================================== + +cls +setlocal +call :Activation_Start +@echo off +endlocal + +setlocal +call :Clear-KMS-Cache +endlocal + +::======================================================================================================================================== + +:Done + +echo: +if %_Debug% EQU 1 exit /b +if defined Unattended ( +echo Exiting in 3 seconds... +if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) +exit /b +) +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== + +:Clear-KMS-Cache + +if exist "%ProgramData%\Online_KMS_Activation\Activate.cmd" exit /b +if %Clear-KMS-Cache% NEQ 1 exit /b + +:: Clear-KMS-Cache.cmd +:: https://forums.mydigitallife.net/posts/1511883 +:: Written by @abbodi1406 (MDL) + +set "SysPath=%Windir%\System32" +if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative") +set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\" +set "OSPP=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" +set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" +wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Windows 1>nul && (set SppHook=1) || (set SppHook=0) +wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Office 1>nul && (set SppHook=1) +wmic path OfficeSoftwareProtectionService get Version >nul 2>&1 && (set OsppHook=1) || (set OsppHook=0) +if %SppHook% NEQ 0 call :cKMS SoftwareLicensingProduct SoftwareLicensingService SPP +if %OsppHook% NEQ 0 call :cKMS OfficeSoftwareProtectionProduct OfficeSoftwareProtectionService OSPP +call :cREG >nul 2>&1 +%EchoGreen% Cleared KMS Cache successfully. +exit /b + +:cKMS +set spp=%1 +set sps=%2 +for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do (set app=%%G&call :cAPP) +for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE"') do set ver=%%A +wmic path %sps% where version='%ver%' call ClearKeyManagementServiceMachine >nul 2>&1 +wmic path %sps% where version='%ver%' call ClearKeyManagementServicePort >nul 2>&1 +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 1 >nul 2>&1 +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 1 >nul 2>&1 +goto :eof + +:cAPP +wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine >nul 2>&1 +wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort >nul 2>&1 +goto :eof + +:cREG +reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f +reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName +reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort +reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f +reg delete "HKU\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%OSPP%" /f /v KeyManagementServiceName +reg delete "HKLM\%OSPP%" /f /v KeyManagementServicePort +if %OsppHook% NEQ 1 ( +reg delete "HKLM\%OSPP%" /f +reg delete "HKU\S-1-5-20\%OSPP%" /f +) +goto :eof + +::======================================================================================================================================== + +:========================================================================================================================================= +:========================================================================================================================================= +:========================================================================================================================================= +:========================================================================================================================================= + + + + + + + + + + +:Activation_Start + +@setlocal DisableDelayedExpansion + +set Silent=0 +set Logger=0 +set Unattend=1 + +if %Silent% EQU 1 set Unattend=1 +set "_run=nul" +if %Logger% EQU 1 set _run="%~dpn0_Silent.log" + +set "SysPath=%SystemRoot%\System32" +if exist "%SystemRoot%\Sysnative\reg.exe" (set "SysPath=%SystemRoot%\Sysnative") +set "Path=%SysPath%;%SystemRoot%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\" +set "_err===== ERROR ====" +set "xOS=x64" +set "xBit=x64" +if /i %PROCESSOR_ARCHITECTURE%==x86 (if not defined PROCESSOR_ARCHITEW6432 ( + set "xOS=x86" + set "xBit=x86" + ) +) + +set "_temp=%SystemRoot%\Temp" +set "_log=%~dpn0" +set "_work=%~dp0" +if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" +for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "_dsk=%%b" +if exist "%SystemDrive%\Users\Public\Desktop\desktop.ini" set "_dsk=%SystemDrive%\Users\Public\Desktop" +setlocal EnableDelayedExpansion + +if %_Debug% EQU 0 ( + set "_Nul1=1>nul" + set "_Nul2=2>nul" + set "_Nul6=2^>nul" + set "_Nul3=1>nul 2>nul" + set "_Pause=pause >nul" + if %Unattend% EQU 1 set "_Pause=" + if %Silent% EQU 0 (call :Begin) else (call :Begin >!_run! 2>&1) +) else ( + set "_Nul1=" + set "_Nul2=" + set "_Nul6=" + set "_Nul3=" + set "_Pause=" + copy /y nul "!_work!\#.rw" 1>nul 2>nul && (if exist "!_work!\#.rw" del /f /q "!_work!\#.rw") || (set "_log=!_dsk!\%~n0") + if %Silent% EQU 0 ( + echo: + echo Running in Debug Mode... + if not defined _args (echo The window will be closed when finished) else (echo please wait...) + echo: + echo writing debug log to: + echo "!_log!_Debug.log" + ) + @echo on + @prompt $G + @call :Begin >"!_log!_tmp.log" 2>&1 &cmd /u /c type "!_log!_tmp.log">"!_log!_Debug.log"&del "!_log!_tmp.log" +) +@echo off +@exit /b + +:Begin + +::======================================================================================================================================== + +:: Multi KMS servers integration +:: 1688 Port Test, Internet Test with Powershell +:: Thanks @RPO + +If defined Renewal_Task set T_Name=Renewal_Task +If defined Run_Once set T_Name=Run_Once_[Activation_Task] + +if defined DateTime ( +echo ======================================================================================================== +echo ---------------------------- +Echo %T_Name% +echo ---------------------------- +echo ---------------------------------------------- +echo Date : %date% Time : %time% +echo ---------------------------------------------- +) + +set /a loop=1 +set /a max_loop=1 +if defined Renewal_Task set /a max_loop=3 +if defined Run_Once set /a max_loop=5 + +:repeat +powershell -NoProfile -nologo "If([Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]'{DCB00C01-570F-4A9B-8D69-199FDBA5723B}')).IsConnectedToInternet){Exit 0}Else{Exit 1}" +if %errorlevel%==0 (goto IntConnected) + +if %loop%== %max_loop% ( +%ELine% +echo Internet is not connected. +echo: &exit /b 1 +) +echo Checking: Internet is not connected. +echo Waiting 30 s +timeout /t 30 >nul +set /a loop=%loop%+1 +goto repeat + +:IntConnected + +if defined KMS_Server ( +echo: +set "KMS_IP=%KMS_Server%" +set /a online_server_count=1 +set /a activation_ok=1 +goto gotserv +) + +:: Primary servers randomization +:: Thanks to @abbodi1406 + +set "srvpri=" +set "srvsec=" +set "srvpri=%srvpri%kms.srv.cr" +set "srvpri=%srvpri%soo.com" +set "srvpri=%srvpri% kms.lol" +set "srvpri=%srvpri%i.beer" +set "srvpri=%srvpri% kms8.MSGu" +set "srvpri=%srvpri%ides.com" + +set "srvsec=%srvsec% kms9.MSGui" +set "srvsec=%srvsec%des.com" +set "srvsec=%srvsec% kms.zhuxi" +set "srvsec=%srvsec%aole.org" +set "srvsec=%srvsec% kms.lol" +set "srvsec=%srvsec%ico.moe" +set "srvsec=%srvsec% kms.moec" +set "srvsec=%srvsec%lub.org" + +set n=1 +for %%a in (%srvpri%) do (set server!n!=%%a&set /a n+=1) +for %%a in (%srvsec%) do (set server!n!=%%a&set /a n+=1) +set /a max_servers=n-1 +set /a srvpri_num=1 +set /a server_num=1 +set /a online_server_count=0 +echo: + +:server +if %online_server_count% equ 2 ( +%EchoRed% Error: Activation was not successful. +echo Restart the system and try again. +echo Read the troubleshoot guide in ReadMe. +echo: +echo ------------------------------------------------------------------ +echo: +exit /b 1 +) + +if %server_num% gtr !max_servers! ( +echo ------------------------------------------------------------------ +echo: +%EchoRed% Error: Internet is not connected. +echo: +echo ------------------------------------------------------------------ +echo: +exit /b 1 +) + +set /a activation_ok=1 +if %srvpri_num% gtr 3 goto :srvsec + +:srvpri +if %srvpri_num% gtr 3 goto :srvsec +set /a rand=%Random%%%(3+1-1)+1 +if defined !server%rand%! goto :srvpri +set KMS_IP=!server%rand%! +set !server%rand%!=1 +set /a srvpri_num+=1 +goto :testserv + +:srvsec +set KMS_IP=!server%server_num%! +goto :testserv + +:testserv +set /a server_num+=1 +%_psc% "$t = New-Object Net.Sockets.TcpClient;try{$t.Connect("""%KMS_IP%""", 1688)}catch{};$t.Connected" | findstr /i true 1>nul +if %errorlevel% NEQ 0 ( +goto :server +) else ( +goto :gotserv +) + +:gotserv +set /a online_server_count+=1 +echo KMS Server: ^(%KMS_IP%^) + +::======================================================================================================================================== + +if %_Debug% EQU 1 if defined _args echo %_args% +set "_wApp=55c92734-d682-4d71-983e-d6ec3f16059f" +set "_oApp=0ff1ce15-a989-479d-af46-f275c6370663" +set "_oA14=59a52881-a989-479d-af46-f275c6370663" +set "IFEO=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" +set "OPPk=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" +set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set SSppHook=0 +for /f %%A in ('dir /b /ad %SysPath%\spp\tokens\skus') do ( + if %winbuild% GEQ 9200 if exist "%SysPath%\spp\tokens\skus\%%A\*GVLK*.xrm-ms" set SSppHook=1 + if %winbuild% LSS 9200 if exist "%SysPath%\spp\tokens\skus\%%A\*VLKMS*.xrm-ms" set SSppHook=1 + if %winbuild% LSS 9200 if exist "%SysPath%\spp\tokens\skus\%%A\*VL-BYPASS*.xrm-ms" set SSppHook=1 +) +set OsppHook=1 +sc query osppsvc %_Nul3% +if %errorlevel% EQU 1060 set OsppHook=0 + +if %winbuild% GEQ 9200 ( + set OSType=Win8 + set SppVer=SppExtComObj.exe +) else if %winbuild% GEQ 7600 ( + set OSType=Win7 + set SppVer=sppsvc.exe +) else ( + goto :UnsupportedVersion +) +if %OSType% EQU Win8 reg query "%IFEO%\sppsvc.exe" %_Nul3% && ( +reg delete "%IFEO%\sppsvc.exe" /f %_Nul3% +call :StopService sppsvc +) +if %ActWindows% EQU 0 if %ActOffice% EQU 0 set "ActWindows=1" + +set AUR=1 + +if %winbuild% GEQ 9600 ( + reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Software Protection Platform" /f /v NoGenTicket /t REG_DWORD /d 1 %_Nul3% +) +call :StopService sppsvc +if %OsppHook% NEQ 0 call :StopService osppsvc + +:ReturnHook +call :UpdateOSPPEntry osppsvc.exe + +SET Win10Gov=0 +IF %winbuild% LSS 14393 if %SSppHook% NEQ 0 GOTO :Main +SET "EditionWMI=" +SET "EditionID=" +SET "RegKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" +SET "Pattern=Microsoft-Windows-*Edition~31bf3856ad364e35" +SET "EditionPKG=NUL" +FOR /F "TOKENS=8 DELIMS=\" %%A IN ('REG QUERY "%RegKey%" /f "%Pattern%" /k %_Nul6% ^| FIND /I "CurrentVersion"') DO ( + REG QUERY "%RegKey%\%%A" /v "CurrentState" %_Nul2% | FIND /I "0x70" %_Nul1% && ( + FOR /F "TOKENS=3 DELIMS=-~" %%B IN ('ECHO %%A') DO SET "EditionPKG=%%B" + ) +) +IF /I "%EditionPKG:~-7%"=="Edition" ( +SET "EditionID=%EditionPKG:~0,-7%" +) ELSE ( +FOR /F "TOKENS=3 DELIMS=: " %%A IN ('DISM /English /Online /Get-CurrentEdition %_Nul6% ^| FIND /I "Current Edition :"') DO SET "EditionID=%%A" +) +FOR /F "TOKENS=2 DELIMS==" %%A IN ('"WMIC PATH SoftwareLicensingProduct WHERE (ApplicationID='%_wApp%' AND PartialProductKey is not NULL) GET LicenseFamily /VALUE" %_Nul6%') DO IF NOT ERRORLEVEL 1 SET "EditionWMI=%%A" +IF NOT DEFINED EditionWMI ( +IF %winbuild% GEQ 17063 FOR /F "SKIP=2 TOKENS=2*" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionId') DO SET "EditionID=%%B" +IF %winbuild% LSS 14393 FOR /F "SKIP=2 TOKENS=2*" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionId') DO SET "EditionID=%%B" +GOTO :Main +) +FOR %%A IN (Cloud,CloudN,IoTEnterprise,IoTEnterpriseS,ProfessionalSingleLanguage,ProfessionalCountrySpecific) DO (IF /I "%EditionWMI%"=="%%A" GOTO :Main) +SET "EditionID=%EditionWMI%" + +:Main +IF DEFINED EditionID FOR %%A IN (EnterpriseG,EnterpriseGN) DO (IF /I "%EditionID%"=="%%A" SET Win10Gov=1) +if defined EditionID (set "_winos=Windows %EditionID% edition") else (set "_winos=Detected Windows") +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName %_Nul6%') do if not errorlevel 1 set "_winos=%%b" +set "nKMS=does not support KMS activation..." +set "nEval=Evaluation Editions cannot be activated. Please install full Windows OS." +if defined EditionID echo %EditionID%| findstr /I /E Eval %_Nul1% && ( +set _eval=1 +echo %EditionID%| findstr /I /B Server %_Nul1% && (set "nEval=Server Evaluation cannot be activated. Please convert to full Server OS.") +) +set "_C16R=" +reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath %_Nul3% && ( +reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds %_Nul3% && set "_C16R=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" +) +set "_C15R=" +reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun /v InstallPath %_Nul3% && ( +reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\Configuration /v ProductReleaseIds %_Nul3% && set "_C15R=HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\Configuration" +if not defined _C15R reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\propertyBag /v productreleaseid %_Nul3% && set "_C15R=HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\propertyBag" +) +set _V16Ids=Mondo,ProPlus,ProjectPro,VisioPro,Standard,ProjectStd,VisioStd,Access,SkypeforBusiness,OneNote,Excel,Outlook,PowerPoint,Publisher,Word +set _R16Ids=%_V16Ids%,Professional,HomeBusiness,HomeStudent,O365Business,O365SmallBusPrem,O365HomePrem,O365EduCloud +set _O16MSI=0 +set _O15MSI=0 +for %%A in (14,15,16,19) do call :officeLoc %%A + +call :RunSPP +if %ActOffice% NEQ 0 call :RunOSPP +if %ActOffice% EQU 0 (echo:&echo Office activation is OFF...) + +if exist "!_temp!\crv*.txt" del /f /q "!_temp!\crv*.txt" +if exist "!_temp!\*chk.txt" del /f /q "!_temp!\*chk.txt" +if exist "!_temp!\slmgr.vbs" del /f /q "!_temp!\slmgr.vbs" +call :StopService sppsvc +if %OsppHook% NEQ 0 call :StopService osppsvc + +sc start sppsvc trigger=timer;sessionid=0 %_Nul3% +echo: +if %activation_ok%==0 ( +echo ------------------------------------------------------------------ &echo: +if not %online_server_count%==2 ( +echo Activation wasn't successful. Trying another server...&echo: +echo ------------------------------------------------------------------ &echo: +) +goto :server +) + +if defined Run_Once ( +echo Deleting Scheduled Task Online_KMS_Activation_Script-Run_Once +schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f 1>nul 2>nul +) + +goto :TheEnd + +:RunSPP +set spp=SoftwareLicensingProduct +set sps=SoftwareLicensingService +set W1nd0ws=1 +set WinPerm=0 +set WinVL=0 +set Off1ce=0 +set RunR2V=0 +if %winbuild% GEQ 9200 if %ActOffice% NEQ 0 call :sppoff +wmic path %spp% where (Description like '%%KMSCLIENT%%') get Name %_Nul2% | findstr /i Windows %_Nul1% && ( +set WinVL=1 +) || ( +if %ActWindows% EQU 0 ( + echo:&echo Windows activation is OFF... + ) else ( + echo:&echo %_winos% %nKMS% + if defined _eval echo %nEval% + ) +) +if %Off1ce% EQU 0 if %WinVL% EQU 0 exit /b +wmic path %spp% where (ApplicationID='%_wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get Name %_Nul2% | findstr /i Windows %_Nul1% && (set _gvlk=1) || (set _gvlk=0) +set gpr=0 +if %winbuild% GEQ 10240 if %SkipKMS38% NEQ 0 if %_gvlk% EQU 1 for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where (ApplicationID='%_wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" %_Nul6%') do set "gpr=%%A" +if %gpr% NEQ 0 if %gpr% GTR 259200 ( +set W1nd0ws=0 +wmic path %spp% where "ApplicationID='%_wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL" get LicenseFamily %_Nul2% | findstr /i EnterpriseG %_Nul1% && (call set W1nd0ws=1) +) +for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE"') do set ver=%%A +wmic path %sps% where version='%ver%' call SetKeyManagementServiceMachine MachineName="%KMS_IP%" %_Nul3% +wmic path %sps% where version='%ver%' call SetKeyManagementServicePort %KMS_Port% %_Nul3% +if %W1nd0ws% EQU 0 for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (ApplicationID='%_wApp%' and Description like '%%KMSCLIENT%%') get ID /VALUE"') do (set app=%%G&call :sppchkwin) +if %W1nd0ws% EQU 1 if %ActWindows% NEQ 0 for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (ApplicationID='%_wApp%' and Description like '%%KMSCLIENT%%') get ID /VALUE"') do (set app=%%G&call :sppchkwin) +if %W1nd0ws% EQU 1 if %ActWindows% EQU 0 (echo:&echo Windows activation is OFF...) +if %Off1ce% EQU 1 if %ActOffice% NEQ 0 for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (ApplicationID='%_oApp%' and Description like '%%KMSCLIENT%%') get ID /VALUE"') do (set app=%%G&call :sppchkoff) +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 0 %_Nul3% +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 0 %_Nul3% +exit /b + +:sppoff +set _sC2R=sppoff +set _fC2R=ReturnSPP +set vol_off15=0&set vol_off16=0&set vol_off19=0 +wmic path %spp% where (Description like '%%KMSCLIENT%%' AND NOT Name like '%%MondoR_KMS_Automation%%') get Name > "!_temp!\sppchk.txt" 2>&1 +find /i "Office 19" "!_temp!\sppchk.txt" %_Nul1% && (set vol_off19=1) +find /i "Office 16" "!_temp!\sppchk.txt" %_Nul1% && (set vol_off16=1) +find /i "Office 15" "!_temp!\sppchk.txt" %_Nul1% && (set vol_off15=1) +for %%A in (15,16,19) do if !loc_off%%A! EQU 0 set vol_off%%A=0 +if %vol_off16% EQU 1 find /i "Office16MondoVL_KMS_Client" "!_temp!\sppchk.txt" %_Nul1% && ( +wmic path %spp% where 'ApplicationID="%_oApp%" AND LicenseFamily like "Office16O365%%"' get LicenseFamily %_Nul2% | find /i "O365" %_Nul1% || (set vol_off16=0) +) +if %vol_off15% EQU 1 find /i "OfficeMondoVL_KMS_Client" "!_temp!\sppchk.txt" %_Nul1% && ( +wmic path %spp% where 'ApplicationID="%_oApp%" AND LicenseFamily like "OfficeO365%%"' get LicenseFamily %_Nul2% | find /i "O365" %_Nul1% || (set vol_off15=0) +) +set ret_off15=0&set ret_off16=0&set ret_off19=0 +wmic path %spp% where (ApplicationID='%_oApp%' AND NOT Name like '%%O365%%') get Name > "!_temp!\sppchk.txt" 2>&1 +find /i "R_Retail" "!_temp!\sppchk.txt" %_Nul2% | find /i "Office 19" %_Nul1% && (set ret_off19=1) +find /i "R_Retail" "!_temp!\sppchk.txt" %_Nul2% | find /i "Office 16" %_Nul1% && (set ret_off16=1) +find /i "R_Retail" "!_temp!\sppchk.txt" %_Nul2% | find /i "Office 15" %_Nul1% && (set ret_off15=1) +if %ret_off19% EQU 1 if %_O16MSI% EQU 0 set vol_off19=0 +if %ret_off16% EQU 1 if %_O16MSI% EQU 0 set vol_off16=0 +if %ret_off15% EQU 1 if %_O15MSI% EQU 0 set vol_off15=0 +set loc_offgl=1 +if %loc_off19% EQU 0 if %loc_off16% EQU 0 if %loc_off15% EQU 0 set loc_offgl=0 +if %loc_offgl% EQU 1 set Off1ce=1 +set vol_offgl=1 +if %vol_off19% EQU 0 if %vol_off16% EQU 0 if %vol_off15% EQU 0 set vol_offgl=0 +:: mixed Volume + Retail scenario +if %loc_off19% EQU 1 if %vol_off19% EQU 0 if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +if %loc_off16% EQU 1 if %vol_off16% EQU 0 if %vol_off19% EQU 0 if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +if %loc_off15% EQU 1 if %vol_off15% EQU 0 if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +:: all Volume scenario +if %vol_offgl% EQU 1 exit /b +set Off1ce=0 +:: nothing installed scenario +if %loc_offgl% EQU 0 (echo:&echo No Installed Office 2013/2016/2019 Product Detected...&exit /b) +:: Retail C2R scenario +if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +:ReturnSPP +:: Retail MSI scenario or failed C2R-R2V scenario +echo: +if %loc_off15% EQU 1 if %vol_off15% EQU 0 echo Detected Office 2013 %nKMS% +if %loc_off16% EQU 1 if %vol_off16% EQU 0 echo Detected Office 2016 %nKMS% +if %loc_off19% EQU 1 if %vol_off19% EQU 0 echo Detected Office 2019 %nKMS% +echo Retail Products need to be converted to Volume first. +exit /b + +:sppchkoff +wmic path %spp% where ID='%app%' get Name > "!_temp!\sppchk.txt" +find /i "Office 15" "!_temp!\sppchk.txt" %_Nul1% && (if %loc_off15% EQU 0 exit /b) +find /i "Office 16" "!_temp!\sppchk.txt" %_Nul1% && (if %loc_off16% EQU 0 exit /b) +find /i "Office 19" "!_temp!\sppchk.txt" %_Nul1% && (if %loc_off19% EQU 0 exit /b) +set _office=1 +wmic path %spp% where (PartialProductKey is not NULL) get ID %_Nul2% | findstr /i "%app%" %_Nul1% && (echo:&call :activate&exit /b) +for /f "tokens=3 delims==, " %%G in ('"wmic path %spp% where ID='%app%' get Name /value"') do set OffVer=%%G +call :offchk%OffVer% +exit /b + +:sppchkwin +set _office=0 +if %winbuild% GEQ 14393 if %_gvlk% EQU 0 wmic path %spp% where (ApplicationID='%_wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get Name %_Nul2% | findstr /i Windows %_Nul1% && (set _gvlk=1) +wmic path %spp% where ID='%app%' get LicenseStatus %_Nul2% | findstr "1" %_Nul1% && (echo:&call :activate&exit /b) +wmic path %spp% where (PartialProductKey is not NULL) get ID %_Nul2% | findstr /i "%app%" %_Nul1% && (echo:&call :activate&exit /b) +if %_gvlk% EQU 1 exit /b +if %WinPerm% EQU 1 exit /b +if %winbuild% LSS 10240 (call :winchk&exit /b) +for %%A in ( +b71515d9-89a2-4c60-88c8-656fbcca7f3a,af43f7f0-3b1e-4266-a123-1fdb53f4323b,075aca1f-05d7-42e5-a3ce-e349e7be7078 +11a37f09-fb7f-4002-bd84-f3ae71d11e90,43f2ab05-7c87-4d56-b27c-44d0f9a3dabd,2cf5af84-abab-4ff0-83f8-f040fb2576eb +6ae51eeb-c268-4a21-9aae-df74c38b586d,ff808201-fec6-4fd4-ae16-abbddade5706,34260150-69ac-49a3-8a0d-4a403ab55763 +4dfd543d-caa6-4f69-a95f-5ddfe2b89567,5fe40dd6-cf1f-4cf2-8729-92121ac2e997,903663f7-d2ab-49c9-8942-14aa9e0a9c72 +2cc171ef-db48-4adc-af09-7c574b37f139,5b2add49-b8f4-42e0-a77c-adad4efeeeb1 +) do ( +if /i '%app%' EQU '%%A' exit /b +) +if not defined EditionID (call :winchk&exit /b) +if %winbuild% LSS 14393 (call :winchk&exit /b) +if /i '%app%' EQU '0df4f814-3f57-4b8b-9a9d-fddadcd69fac' if /i %EditionID% NEQ CloudE exit /b +if /i '%app%' EQU 'e0c42288-980c-4788-a014-c080d2e1926e' if /i %EditionID% NEQ Education exit /b +if /i '%app%' EQU '73111121-5638-40f6-bc11-f1d7b0d64300' if /i %EditionID% NEQ Enterprise exit /b +if /i '%app%' EQU '2de67392-b7a7-462a-b1ca-108dd189f588' if /i %EditionID% NEQ Professional exit /b +if /i '%app%' EQU '3f1afc82-f8ac-4f6c-8005-1d233e606eee' if /i %EditionID% NEQ ProfessionalEducation exit /b +if /i '%app%' EQU '82bbc092-bc50-4e16-8e18-b74fc486aec3' if /i %EditionID% NEQ ProfessionalWorkstation exit /b +if /i '%app%' EQU '3c102355-d027-42c6-ad23-2e7ef8a02585' if /i %EditionID% NEQ EducationN exit /b +if /i '%app%' EQU 'e272e3e2-732f-4c65-a8f0-484747d0d947' if /i %EditionID% NEQ EnterpriseN exit /b +if /i '%app%' EQU 'a80b5abf-76ad-428b-b05d-a47d2dffeebf' if /i %EditionID% NEQ ProfessionalN exit /b +if /i '%app%' EQU '5300b18c-2e33-4dc2-8291-47ffcec746dd' if /i %EditionID% NEQ ProfessionalEducationN exit /b +if /i '%app%' EQU '4b1571d3-bafb-4b40-8087-a961be2caf65' if /i %EditionID% NEQ ProfessionalWorkstationN exit /b +if /i '%app%' EQU '58e97c99-f377-4ef1-81d5-4ad5522b5fd8' if /i %EditionID% NEQ Core exit /b +if /i '%app%' EQU 'cd918a57-a41b-4c82-8dce-1a538e221a83' if /i %EditionID% NEQ CoreSingleLanguage exit /b +if /i '%app%' EQU 'ec868e65-fadf-4759-b23e-93fe37f2cc29' if /i %EditionID% NEQ ServerRdsh exit /b +if /i '%app%' EQU 'e4db50ea-bda1-4566-b047-0ca50abc6f07' if /i %EditionID% NEQ ServerRdsh exit /b +if /i '%app%' EQU 'e4db50ea-bda1-4566-b047-0ca50abc6f07' ( +wmic path %spp% where 'Description like "%%KMSCLIENT%%"' get ID | findstr /i "ec868e65-fadf-4759-b23e-93fe37f2cc29" %_Nul3% && (exit /b) +) +call :winchk +exit /b + +:winchk +if not defined tok (if %winbuild% GEQ 9200 (set "tok=4") else (set "tok=7")) +wmic path %spp% where (LicenseStatus='1' and Description like '%%KMSCLIENT%%') get Name %_Nul2% | findstr /i "Windows" %_Nul3% && (exit /b) +echo: +wmic path %spp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name %_Nul2% | findstr /i "Windows" %_Nul3% && ( +set WinPerm=1 +) +if %WinPerm% EQU 0 ( +wmic path %spp% where "ApplicationID='%_wApp%' and LicenseStatus='1'" get Name %_Nul2% | findstr /i "Windows" %_Nul3% && ( +for /f "tokens=%tok% delims=, " %%G in ('"wmic path %spp% where (ApplicationID='%_wApp%' and LicenseStatus='1') get Description /VALUE"') do set "channel=%%G" + for %%A in (VOLUME_MAK, RETAIL, OEM_DM, OEM_SLP, OEM_COA, OEM_COA_SLP, OEM_COA_NSLP, OEM_NONSLP, OEM) do if /i "%%A"=="!channel!" set WinPerm=1 + ) +) +if %WinPerm% EQU 0 ( +copy /y %SysPath%\slmgr.vbs "!_temp!\slmgr.vbs" %_Nul3% +cscript //nologo "!_temp!\slmgr.vbs" /xpr %_Nul2% | findstr /i "permanently" %_Nul3% && set WinPerm=1 +) +if %WinPerm% EQU 1 ( +for /f "tokens=2 delims==" %%x in ('"wmic path %spp% where (ApplicationID='%_wApp%' and LicenseStatus='1') get Name /VALUE"') do echo Checking: %%x +echo Product is Permanently Activated. +exit /b +) +call :insKey +exit /b + +:RunOSPP +set spp=OfficeSoftwareProtectionProduct +set sps=OfficeSoftwareProtectionService +set Off1ce=0 +set RunR2V=0 +if %winbuild% LSS 9200 (set "aword=2010/2013/2016/2019") else (set "aword=2010") +if %OsppHook% EQU 0 (echo:&echo No Installed Office %aword% Product Detected...&exit /b) +if %winbuild% GEQ 9200 if %loc_off14% EQU 0 (echo:&echo No Installed Office %aword% Product Detected...&exit /b) +if %winbuild% GEQ 9200 wmic path %spp% get Description %_Nul2% | findstr /i KMSCLIENT %_Nul1% || (echo:&echo Detected Office %aword% %nKMS%&echo Retail Products need to be converted to Volume first.&exit /b) +if %winbuild% GEQ 9200 set Off1ce=1 +if %winbuild% LSS 9200 call :win7off +if %Off1ce% EQU 0 exit /b +set "vPrem="&set "vProf=" +if %loc_off14% EQU 1 ( +for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where (LicenseFamily='OfficeVisioPrem-MAK') get LicenseStatus /VALUE" %_Nul6%') do set vPrem=%%A +for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where (LicenseFamily='OfficeVisioPro-MAK') get LicenseStatus /VALUE" %_Nul6%') do set vProf=%%A +) +for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE" %_Nul6%') do set ver=%%A +wmic path %sps% where version='%ver%' call SetKeyManagementServiceMachine MachineName="%KMS_IP%" %_Nul3% +wmic path %sps% where version='%ver%' call SetKeyManagementServicePort %KMS_Port% %_Nul3% +for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%') get ID /VALUE"') do (set app=%%G&call :osppchk) +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 0 %_Nul3% +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 0 %_Nul3% +exit /b + +:win7off +set _sC2R=win7off +set _fC2R=ReturnOSPP +set vol_off14=0&set vol_off15=0&set vol_off16=0&set vol_off19=0 +wmic path %spp% where (Description like '%%KMSCLIENT%%' AND NOT Name like '%%MondoR_KMS_Automation%%') get Name > "!_temp!\sppchk.txt" 2>&1 +find /i "Office 19" "!_temp!\sppchk.txt" %_Nul1% && (set vol_off19=1) +find /i "Office 16" "!_temp!\sppchk.txt" %_Nul1% && (set vol_off16=1) +find /i "Office 15" "!_temp!\sppchk.txt" %_Nul1% && (set vol_off15=1) +find /i "Office 14" "!_temp!\sppchk.txt" %_Nul1% && (set vol_off14=1) +for %%A in (14,15,16,19) do if !loc_off%%A! EQU 0 set vol_off%%A=0 +if %vol_off16% EQU 1 find /i "Office16MondoVL_KMS_Client" "!_temp!\sppchk.txt" %_Nul1% && ( +wmic path %spp% where 'ApplicationID="%_oApp%" AND LicenseFamily like "Office16O365%%"' get LicenseFamily %_Nul2% | find /i "O365" %_Nul1% || (set vol_off16=0) +) +if %vol_off15% EQU 1 find /i "OfficeMondoVL_KMS_Client" "!_temp!\sppchk.txt" %_Nul1% && ( +wmic path %spp% where 'ApplicationID="%_oApp%" AND LicenseFamily like "OfficeO365%%"' get LicenseFamily %_Nul2% | find /i "O365" %_Nul1% || (set vol_off15=0) +) +set ret_off15=0&set ret_off16=0&set ret_off19=0 +wmic path %spp% where (ApplicationID='%_oApp%' AND NOT Name like '%%O365%%') get Name > "!_temp!\sppchk.txt" 2>&1 +find /i "R_Retail" "!_temp!\sppchk.txt" %_Nul2% | find /i "Office 19" %_Nul1% && (set ret_off19=1) +find /i "R_Retail" "!_temp!\sppchk.txt" %_Nul2% | find /i "Office 16" %_Nul1% && (set ret_off16=1) +find /i "R_Retail" "!_temp!\sppchk.txt" %_Nul2% | find /i "Office 15" %_Nul1% && (set ret_off15=1) +if %ret_off19% EQU 1 if %_O16MSI% EQU 0 set vol_off19=0 +if %ret_off16% EQU 1 if %_O16MSI% EQU 0 set vol_off16=0 +if %ret_off15% EQU 1 if %_O15MSI% EQU 0 set vol_off15=0 +set loc_offgl=1 +if %loc_off19% EQU 0 if %loc_off16% EQU 0 if %loc_off15% EQU 0 if %loc_off14% EQU 0 set loc_offgl=0 +if %loc_offgl% EQU 1 set Off1ce=1 +set vol_offgl=1 +:: mixed Volume + Retail scenario +if %vol_off19% EQU 0 if %vol_off16% EQU 0 if %vol_off15% EQU 0 if %vol_off14% EQU 0 set vol_offgl=0 +if %loc_off19% EQU 1 if %vol_off19% EQU 0 if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +if %loc_off16% EQU 1 if %vol_off16% EQU 0 if %vol_off19% EQU 0 if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +if %loc_off15% EQU 1 if %vol_off15% EQU 0 if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +:: all Volume scenario +if %vol_offgl% EQU 1 exit /b +set Off1ce=0 +:: nothing installed scenario +if %loc_offgl% EQU 0 (echo:&echo No Installed Office %aword% Product Detected...&exit /b) +:: Retail C2R scenario +if %RunR2V% EQU 0 if %AutoR2V% EQU 1 goto :C2RR2V +:ReturnOSPP +:: Retail MSI scenario or failed C2R-R2V scenario +echo: +if %loc_off14% EQU 1 if %vol_off14% EQU 0 echo Detected Office 2010 %nKMS% +if %loc_off15% EQU 1 if %vol_off15% EQU 0 echo Detected Office 2013 %nKMS% +if %loc_off16% EQU 1 if %vol_off16% EQU 0 echo Detected Office 2016 %nKMS% +if %loc_off19% EQU 1 if %vol_off19% EQU 0 echo Detected Office 2019 %nKMS% +echo Retail Products need to be converted to Volume first. +exit /b + +:osppchk +wmic path %spp% where ID='%app%' get Name > "!_temp!\sppchk.txt" +find /i "Office 14" "!_temp!\sppchk.txt" %_Nul1% && (if %loc_off14% EQU 0 exit /b) +find /i "Office 15" "!_temp!\sppchk.txt" %_Nul1% && (if %loc_off15% EQU 0 exit /b) +find /i "Office 16" "!_temp!\sppchk.txt" %_Nul1% && (if %loc_off16% EQU 0 exit /b) +find /i "Office 19" "!_temp!\sppchk.txt" %_Nul1% && (if %loc_off19% EQU 0 exit /b) +set _office=0 +wmic path %spp% where (PartialProductKey is not NULL) get ID %_Nul2% | findstr /i "%app%" %_Nul1% && (echo:&call :activate&exit /b) +for /f "tokens=3 delims==, " %%G in ('"wmic path %spp% where ID='%app%' get Name /value"') do set OffVer=%%G +call :offchk%OffVer% +exit /b + +:offchk +set ls=0 +set ls2=0 +for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where (LicenseFamily='Office%~1') get LicenseStatus /VALUE" %_Nul6%') do set /a ls=%%A +if "%~3" NEQ "" ( +for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where (LicenseFamily='Office%~3') get LicenseStatus /VALUE" %_Nul6%') do set /a ls2=%%A +) +if "%ls2%" EQU "1" ( +echo Checking: %~4 +echo Product is Permanently Activated. +exit /b +) +if "%ls%" EQU "1" ( +echo Checking: %~2 +echo Product is Permanently Activated. +exit /b +) +call :insKey +exit /b + +:offchk19 +if /i '%app%' EQU '0bc88885-718c-491d-921f-6f214349e79c' exit /b +if /i '%app%' EQU 'fc7c4d0c-2e85-4bb9-afd4-01ed1476b5e9' exit /b +if /i '%app%' EQU '500f6619-ef93-4b75-bcb4-82819998a3ca' exit /b +if /i '%app%' EQU '85dd8b5f-eaa4-4af3-a628-cce9e77c9a03' ( +call :offchk "19ProPlus2019VL_MAK_AE" "Office ProPlus 2019" +exit /b +) +if /i '%app%' EQU '6912a74b-a5fb-401a-bfdb-2e3ab46f4b02' ( +call :offchk "19Standard2019VL_MAK_AE" "Office Standard 2019" +exit /b +) +if /i '%app%' EQU '2ca2bf3f-949e-446a-82c7-e25a15ec78c4' ( +call :offchk "19ProjectPro2019VL_MAK_AE" "Project Pro 2019" +exit /b +) +if /i '%app%' EQU '1777f0e3-7392-4198-97ea-8ae4de6f6381' ( +call :offchk "19ProjectStd2019VL_MAK_AE" "Project Standard 2019" +exit /b +) +if /i '%app%' EQU '5b5cf08f-b81a-431d-b080-3450d8620565' ( +call :offchk "19VisioPro2019VL_MAK_AE" "Visio Pro 2019" +exit /b +) +if /i '%app%' EQU 'e06d7df3-aad0-419d-8dfb-0ac37e2bdf39' ( +call :offchk "19VisioStd2019VL_MAK_AE" "Visio Standard 2019" +exit /b +) +call :insKey +exit /b + +:offchk16 +if /i '%app%' EQU 'd450596f-894d-49e0-966a-fd39ed4c4c64' ( +call :offchk "16ProPlusVL_MAK" "Office ProPlus 2016" +exit /b +) +if /i '%app%' EQU 'dedfa23d-6ed1-45a6-85dc-63cae0546de6' ( +call :offchk "16StandardVL_MAK" "Office Standard 2016" +exit /b +) +if /i '%app%' EQU '4f414197-0fc2-4c01-b68a-86cbb9ac254c' ( +call :offchk "16ProjectProVL_MAK" "Project Pro 2016" +exit /b +) +if /i '%app%' EQU 'da7ddabc-3fbe-4447-9e01-6ab7440b4cd4' ( +call :offchk "16ProjectStdVL_MAK" "Project Standard 2016" +exit /b +) +if /i '%app%' EQU '6bf301c1-b94a-43e9-ba31-d494598c47fb' ( +call :offchk "16VisioProVL_MAK" "Visio Pro 2016" +exit /b +) +if /i '%app%' EQU 'aa2a7821-1827-4c2c-8f1d-4513a34dda97' ( +call :offchk "16VisioStdVL_MAK" "Visio Standard 2016" +exit /b +) +if /i '%app%' EQU '829b8110-0e6f-4349-bca4-42803577788d' ( +call :offchk "16ProjectProXC2RVL_MAKC2R" "Project Pro 2016 C2R" +exit /b +) +if /i '%app%' EQU 'cbbaca45-556a-4416-ad03-bda598eaa7c8' ( +call :offchk "16ProjectStdXC2RVL_MAKC2R" "Project Standard 2016 C2R" +exit /b +) +if /i '%app%' EQU 'b234abe3-0857-4f9c-b05a-4dc314f85557' ( +call :offchk "16VisioProXC2RVL_MAKC2R" "Visio Pro 2016 C2R" +exit /b +) +if /i '%app%' EQU '361fe620-64f4-41b5-ba77-84f8e079b1f7' ( +call :offchk "16VisioStdXC2RVL_MAKC2R" "Visio Standard 2016 C2R" +exit /b +) +call :insKey +exit /b + +:offchk15 +if /i '%app%' EQU 'b322da9c-a2e2-4058-9e4e-f59a6970bd69' ( +call :offchk "ProPlusVL_MAK" "Office ProPlus 2013" +exit /b +) +if /i '%app%' EQU 'b13afb38-cd79-4ae5-9f7f-eed058d750ca' ( +call :offchk "StandardVL_MAK" "Office Standard 2013" +exit /b +) +if /i '%app%' EQU '4a5d124a-e620-44ba-b6ff-658961b33b9a' ( +call :offchk "ProjectProVL_MAK" "Project Pro 2013" +exit /b +) +if /i '%app%' EQU '427a28d1-d17c-4abf-b717-32c780ba6f07' ( +call :offchk "ProjectStdVL_MAK" "Project Standard 2013" +exit /b +) +if /i '%app%' EQU 'e13ac10e-75d0-4aff-a0cd-764982cf541c' ( +call :offchk "VisioProVL_MAK" "Visio Pro 2013" +exit /b +) +if /i '%app%' EQU 'ac4efaf0-f81f-4f61-bdf7-ea32b02ab117' ( +call :offchk "VisioStdVL_MAK" "Visio Standard 2013" +exit /b +) +call :insKey +exit /b + +:offchk14 +if /i '%app%' EQU '6f327760-8c5c-417c-9b61-836a98287e0c' ( +call :offchk "ProPlus-MAK" "Office ProPlus 2010" "ProPlusAcad-MAK" "Office Professional Academic 2010" +exit /b +) +if /i '%app%' EQU '9da2a678-fb6b-4e67-ab84-60dd6a9c819a' ( +call :offchk "Standard-MAK" "Office Standard 2010" "StandardAcad-MAK" "Office Standard Academic 2010" +exit /b +) +if /i '%app%' EQU 'ea509e87-07a1-4a45-9edc-eba5a39f36af' ( +call :offchk "SmallBusBasics-MAK" "Office Small Business Basics 2010" +exit /b +) +if /i '%app%' EQU 'df133ff7-bf14-4f95-afe3-7b48e7e331ef' ( +call :offchk "ProjectPro-MAK" "Project Pro 2010" +exit /b +) +if /i '%app%' EQU '5dc7bf61-5ec9-4996-9ccb-df806a2d0efe' ( +call :offchk "ProjectStd-MAK" "Project Standard 2010" "ProjectStd-MAK2" "Project Standard 2010" +exit /b +) +if /i '%app%' EQU '92236105-bb67-494f-94c7-7f7a607929bd' ( +call :offchk "VisioPrem-MAK" "Visio Premium 2010" "VisioPro-MAK" "Visio Pro 2010" +exit /b +) +if defined vPrem exit /b +if /i '%app%' EQU 'e558389c-83c3-4b29-adfe-5e4d7f46c358' ( +call :offchk "VisioPro-MAK" "Visio Pro 2010" "VisioStd-MAK" "Visio Standard 2010" +exit /b +) +if defined vProf exit /b +if /i '%app%' EQU '9ed833ff-4f92-4f36-b370-8683a4f13275' ( +call :offchk "VisioStd-MAK" "Visio Standard 2010" +exit /b +) +call :insKey +exit /b + +:officeLoc +set loc_off%1=0 +if %1 EQU 19 ( +if defined _C16R reg query %_C16R% /v ProductReleaseIds %_Nul2% | findstr 2019 %_Nul1% && set loc_off%1=1 +exit /b +) + +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\%1.0\Common\InstallRoot /v Path" %_Nul6%') do if exist "%%b\OSPP.VBS" ( +set loc_off%1=1 +if %1 EQU 16 set _O16MSI=1 +if %1 EQU 15 set _O15MSI=1 +) +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\%1.0\Common\InstallRoot /v Path" %_Nul6%') do if exist "%%b\OSPP.VBS" ( +set loc_off%1=1 +if %1 EQU 16 set _O16MSI=1 +if %1 EQU 15 set _O15MSI=1 +) + +if %1 EQU 16 if defined _C16R ( +for /f "skip=2 tokens=2*" %%a in ('reg query %_C16R% /v ProductReleaseIds') do echo %%b> "!_temp!\c2rchk.txt" +for %%a in (%_V16Ids%,ProjectProX,ProjectStdX,VisioProX,VisioStdX) do ( + findstr /I /C:"%%aVolume" "!_temp!\c2rchk.txt" %_Nul1% && set loc_off%1=1 + ) +for %%a in (%_R16Ids%) do ( + findstr /I /C:"%%aRetail" "!_temp!\c2rchk.txt" %_Nul1% && set loc_off%1=1 + ) +exit /b +) + +if %1 EQU 15 if defined _C15R ( +set loc_off%1=1 +exit /b +) + +if exist "%ProgramFiles%\Microsoft Office\Office%1\OSPP.VBS" set loc_off%1=1 +if %xOS%==x64 if exist "%ProgramW6432%\Microsoft Office\Office%1\OSPP.VBS" set loc_off%1=1 +if %xOS%==x64 if exist "%ProgramFiles(x86)%\Microsoft Office\Office%1\OSPP.VBS" set loc_off%1=1 +exit /b + +:insKey +echo: +set "_key=" +for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where ID='%app%' get Name /VALUE"') do echo Installing Key for: %%A +call :keys %app% +if "%_key%"=="" (echo Could not find matching KMS Client key&exit /b) +wmic path %sps% where version='%ver%' call InstallProductKey ProductKey="%_key%" %_Nul3% +set ERRORCODE=%ERRORLEVEL% +if %ERRORCODE% NEQ 0 ( +cmd /c exit /b %ERRORCODE% +echo Failed: 0x!=ExitCode! +exit /b +) +if %sps% EQU SoftwareLicensingService wmic path %sps% where version='%ver%' call RefreshLicenseStatus %_Nul3% + +:activate +wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine %_Nul3% +wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort %_Nul3% +if %W1nd0ws% EQU 0 if %_office% EQU 0 if %sps% EQU SoftwareLicensingService ( +wmic path %spp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %_Nul3% +wmic path %spp% where ID='%app%' call SetKeyManagementServicePort %KMS_Port% %_Nul3% +for /f "tokens=2 delims==" %%x in ('"wmic path %spp% where ID='%app%' get Name /VALUE"') do echo Checking: %%x +echo Product is KMS 2038 Activated. +exit /b +) +for /f "tokens=2 delims==" %%x in ('"wmic path %spp% where ID='%app%' get Name /VALUE"') do echo Activating: %%x +wmic path %spp% where ID='%app%' call Activate %_Nul3% +call set ERRORCODE=%ERRORLEVEL% +if %ERRORCODE% NEQ 0 ( +if %sps% EQU SoftwareLicensingService (call :StopService sppsvc) else (call :StopService osppsvc) +wmic path %spp% where ID='%app%' call Activate %_Nul3% +call set ERRORCODE=!ERRORLEVEL! +) +if %sps% EQU SoftwareLicensingService wmic path %sps% where version='%ver%' call RefreshLicenseStatus %_Nul3% +set gpr=0 +set gpr2=0 +for /f "tokens=2 delims==" %%x in ('"wmic path %spp% where ID='%app%' get GracePeriodRemaining /VALUE"') do (set gpr=%%x&set /a "gpr2=(%%x+1440-1)/1440") +if %gpr% EQU 43200 if %_office% EQU 0 if %winbuild% GEQ 9200 ( +%EchoGreen% Product Activation Successful +echo Remaining Period: %gpr2% days ^(%gpr% minutes^) +exit /b +) +if %gpr% EQU 64800 ( +%EchoGreen% Product Activation Successful +echo Remaining Period: %gpr2% days ^(%gpr% minutes^) +exit /b +) +if %gpr% GTR 259200 if %Win10Gov% EQU 1 ( +%EchoGreen% Product Activation Successful +echo Remaining Period: %gpr2% days ^(%gpr% minutes^) +exit /b +) +if %gpr% EQU 259200 ( +%EchoGreen% Product Activation Successful +echo Remaining Period: %gpr2% days ^(%gpr% minutes^) +exit /b +) +cmd /c exit /b %ERRORCODE% +if %ERRORCODE% NEQ 0 (%EchoRed% Product Activation Failed: 0x!=ExitCode!) else (%EchoRed% Product Activation Failed) +echo Remaining Period: %gpr2% days ^(%gpr% minutes^) +set activation_ok=0 +exit /b + +:StopService +sc query %1 | find /i "STOPPED" %_Nul1% || net stop %1 /y %_Nul3% +sc query %1 | find /i "STOPPED" %_Nul1% || sc stop %1 %_Nul3% +goto :eof + +:UpdateOSPPEntry +if /i %1 EQU osppsvc.exe ( +reg add "HKLM\%OPPk%" /f /v KeyManagementServiceName /t REG_SZ /d %KMS_IP% %_Nul3% +reg add "HKLM\%OPPk%" /f /v KeyManagementServicePort /t REG_SZ /d %KMS_Port% %_Nul3% +) +goto :eof + +:C2RR2V +set RunR2V=1 +set "_SLMGR=%SysPath%\slmgr.vbs" +if %_Debug% EQU 0 ( +set "_cscript=cscript //Nologo //B" +) else ( +set "_cscript=cscript //Nologo" +) +sc query ClickToRunSvc %_Nul3% +set error1=%errorlevel% +sc query OfficeSvc %_Nul3% +set error2=%errorlevel% +if %error1% EQU 1060 if %error2% EQU 1060 ( +goto :%_fC2R% +) +set _Office16=0 +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %_Nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" ( + set _Office16=1 +) +set _Office15=0 +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun /v InstallPath" %_Nul6%') do if exist "%%b\root\Licenses\ProPlus*.xrm-ms" ( + set _Office15=1 +) +if %_Office16% EQU 0 if %_Office15% EQU 0 ( +goto :%_fC2R% +) + +:Reg16istry +if %_Office16% EQU 0 goto :Reg15istry +set "_InstallRoot=" +set "_ProductIds=" +set "_GUID=" +set "_Config=" +set "_PRIDs=" +set "_LicensesPath=" +set "_Integrator=" +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %_Nul6%') do if not errorlevel 1 (set "_InstallRoot=%%b\root") +if not "%_InstallRoot%"=="" ( + for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v PackageGUID" %_Nul6%') do if not errorlevel 1 (set "_GUID=%%b") + for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds" %_Nul6%') do if not errorlevel 1 (set "_ProductIds=%%b") + set "_Config=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" + set "_PRIDs=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\ProductReleaseIDs" +) +set "_LicensesPath=%_InstallRoot%\Licenses16" +set "_Integrator=%_InstallRoot%\integration\integrator.exe" +for /f "skip=2 tokens=2*" %%a in ('"reg query %_PRIDs% /v ActiveConfiguration" %_Nul6%') do set "_PRIDs=%_PRIDs%\%%b" +if "%_ProductIds%"=="" ( +if %_Office15% EQU 0 (goto :%_fC2R%) else (goto :Reg15istry) +) +if not exist "%_LicensesPath%\ProPlus*.xrm-ms" ( +if %_Office15% EQU 0 (goto :%_fC2R%) else (goto :Reg15istry) +) +if not exist "%_Integrator%" ( +if %_Office15% EQU 0 (goto :%_fC2R%) else (goto :Reg15istry) +) +if exist "%_LicensesPath%\Word2019VL_KMS_Client_AE*.xrm-ms" (set "_tag=2019"&set "_ons= 2019") else (set "_tag="&set "_ons= 2016") +if %_Office15% EQU 0 goto :CheckC2R + +:Reg15istry +set "_Install15Root=" +set "_Product15Ids=" +set "_Con15fig=" +set "_PR15IDs=" +set "_OSPP15Ready=" +set "_Licenses15Path=" +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun /v InstallPath" %_Nul6%') do if not errorlevel 1 (set "_Install15Root=%%b\root") +if not "%_Install15Root%"=="" ( + for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\Configuration /v ProductReleaseIds" %_Nul6%') do if not errorlevel 1 (set "_Product15Ids=%%b") + set "_Con15fig=HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\Configuration /v ProductReleaseIds" + set "_PR15IDs=HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\ProductReleaseIDs" + set "_OSPP15Ready=HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\Configuration" +) +set "_OSPP15ReadT=REG_SZ" +if "%_Product15Ids%"=="" ( + for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\propertyBag /v productreleaseid" %_Nul6%') do if not errorlevel 1 (set "_Product15Ids=%%b") + set "_Con15fig=HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\propertyBag /v productreleaseid" + set "_OSPP15Ready=HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun" + set "_OSPP15ReadT=REG_DWORD" +) +set "_Licenses15Path=%_Install15Root%\Licenses" +if exist "%ProgramFiles%\Microsoft Office\Office15\OSPP.VBS" ( + set "_OSPP15VBS=%ProgramFiles%\Microsoft Office\Office15\OSPP.VBS" +) else if exist "%ProgramW6432%\Microsoft Office\Office15\OSPP.VBS" ( + set "_OSPP15VBS=%ProgramW6432%\Microsoft Office\Office15\OSPP.VBS" +) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\OSPP.VBS" ( + set "_OSPP15VBS=%ProgramFiles(x86)%\Microsoft Office\Office15\OSPP.VBS" +) +if "%_Product15Ids%"=="" ( +if %_Office16% EQU 0 (goto :%_fC2R%) else (goto :CheckC2R) +) +if not exist "%_Licenses15Path%\ProPlus*.xrm-ms" ( +if %_Office16% EQU 0 (goto :%_fC2R%) else (goto :CheckC2R) +) +if %winbuild% LSS 9200 if not exist "%_OSPP15VBS%" ( +if %_Office16% EQU 0 (goto :%_fC2R%) else (goto :CheckC2R) +) + +:CheckC2R +set _OMSI=0 +if %_Office16% EQU 0 ( +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\16.0\Common\InstallRoot /v Path" %_Nul6%') do if exist "%%b\OSPP.VBS" set _OMSI=1 +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Common\InstallRoot /v Path" %_Nul6%') do if exist "%%b\OSPP.VBS" set _OMSI=1 +) +if %_Office15% EQU 0 ( +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot /v Path" %_Nul6%') do if exist "%%b\OSPP.VBS" set _OMSI=1 +for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\InstallRoot /v Path" %_Nul6%') do if exist "%%b\OSPP.VBS" set _OMSI=1 +) +if %winbuild% GEQ 9200 ( +set _spp=SoftwareLicensingProduct +set _sps=SoftwareLicensingService +set "_vbsi=%_SLMGR% /ilc " +) else ( +set _spp=OfficeSoftwareProtectionProduct +set _sps=OfficeSoftwareProtectionService +set _vbsi="!_OSPP15VBS!" /inslic: +) +set "_wmi=" +for /f "tokens=2 delims==" %%# in ('"wmic path %_sps% get version /value" %_Nul6%') do if not errorlevel 1 set "_wmi=%%#" +if not defined _wmi ( +goto :%_fC2R% +) +set _Retail=0 +wmic path %_spp% where "ApplicationID='%_oApp%' AND LicenseStatus='1' AND PartialProductKey<>NULL" get Description %_Nul2% |findstr /V /R "^$" >"!_temp!\crvRetail.txt" +find /i "RETAIL channel" "!_temp!\crvRetail.txt" %_Nul1% && set _Retail=1 +find /i "RETAIL(MAK) channel" "!_temp!\crvRetail.txt" %_Nul1% && set _Retail=1 +find /i "TIMEBASED_SUB channel" "!_temp!\crvRetail.txt" %_Nul1% && set _Retail=1 +set "_copp=" +if exist "%SysPath%\msvcr100.dll" ( +set _copp=1 +) else if exist "!_InstallRoot!\vfs\System\msvcr100.dll" ( +set _copp="!_InstallRoot!\vfs\System" +) else if exist "!_Install15Root!\vfs\System\msvcr100.dll" ( +set _copp="!_Install15Root!\vfs\System" +) else if exist "%SystemRoot%\SysWOW64\msvcr100.dll" ( +set _copp=1 +set xBit=x86 +) else if exist "!_InstallRoot!\vfs\SystemX86\msvcr100.dll" ( +set _copp="!_InstallRoot!\vfs\SystemX86" +set xBit=x86 +) else if exist "!_Install15Root!\vfs\SystemX86\msvcr100.dll" ( +set _copp="!_Install15Root!\vfs\SystemX86" +set xBit=x86 +) +if not exist "!_work!\bin\cleanospp%xBit%.exe" ( +set "_copp=" +) +if %_Retail% EQU 0 if %_OMSI% EQU 0 if defined _copp ( +if "!_copp!"=="1" ( +%_Nul3% "!_work!\bin\cleanospp%xBit%.exe" -Licenses +) else ( +pushd %_copp% +%_Nul3% copy /y "!_work!\bin\cleanospp%xBit%.exe" cleanospp.exe +%_Nul3% cleanospp.exe -Licenses +%_Nul3% del /f /q cleanospp.exe +popd + ) +) +set _O16O365=0 +if %_Retail% EQU 1 wmic path %_spp% where "ApplicationID='%_oApp%' AND LicenseStatus='1' AND PartialProductKey<>NULL" get LicenseFamily %_Nul2% |findstr /V /R "^$" >"!_temp!\crvRetail.txt" +wmic path %_spp% where "ApplicationID='%_oApp%'" get LicenseFamily %_Nul2% |findstr /V /R "^$" >"!_temp!\crvVolume.txt" 2>&1 + +if %_Office16% EQU 0 goto :R15V + +set _O19Ids=ProPlus2019,ProjectPro2019,VisioPro2019,Standard2019,ProjectStd2019,VisioStd2019,Access2019,SkypeforBusiness2019 +set _O16Ids=ProjectPro,VisioPro,Standard,ProjectStd,VisioStd,Access,SkypeforBusiness +set _A19Ids=Excel2019,Outlook2019,PowerPoint2019,Publisher2019,Word2019 +set _A16Ids=Excel,Outlook,PowerPoint,Publisher,Word +set _V19Ids=%_O19Ids%,%_A19Ids% +set _V16Ids=Mondo,%_O16Ids%,%_A16Ids%,OneNote +set _R16Ids=%_V16Ids%,Professional,HomeBusiness,HomeStudent,O365ProPlus,O365Business,O365SmallBusPrem,O365HomePrem,O365EduCloud +set _RetIds=%_V19Ids%,Professional2019,HomeBusiness2019,HomeStudent2019,%_R16Ids% + +echo %_ProductIds%>"!_temp!\crvProductIds.txt" +for %%a in (%_RetIds%,ProPlus) do ( +set _%%a=0 +) +for %%a in (%_RetIds%) do ( +findstr /I /C:"%%aRetail" "!_temp!\crvProductIds.txt" %_Nul1% && set _%%a=1 +) +for %%a in (%_V19Ids%) do ( +findstr /I /C:"%%aVolume" "!_temp!\crvProductIds.txt" %_Nul1% && ( + find /i "Office19%%aVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (set _%%a=0) || (set _%%a=1) + ) +) +for %%a in (%_V16Ids%) do ( +findstr /I /C:"%%aVolume" "!_temp!\crvProductIds.txt" %_Nul1% && ( + find /i "Office16%%aVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (set _%%a=0) || (set _%%a=1) + ) +) +reg query %_PRIDs%\ProPlusRetail.16 %_Nul3% && ( + find /i "Office16ProPlusVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (set _ProPlus=0) || (set _ProPlus=1) +) +reg query %_PRIDs%\ProPlusVolume.16 %_Nul3% && ( + find /i "Office16ProPlusVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (set _ProPlus=0) || (set _ProPlus=1) +) +if %_Retail% EQU 1 for %%a in (%_RetIds%) do ( +findstr /I /C:"%%aRetail" "!_temp!\crvProductIds.txt" %_Nul1% && ( + find /i "Office16%%aR_Retail" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aR_OEM" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aR_Sub" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aR_PIN" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aE5R_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aEDUR_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aMSDNR_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aO365R_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aCO365R_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aVL_MAK" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office16%%aXC2RVL_MAKC2R" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office19%%aR_Retail" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office19%%aR_OEM" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office19%%aMSDNR_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office19%%aVL_MAK" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + ) +) +if %_Retail% EQU 1 reg query %_PRIDs%\ProPlusRetail.16 %_Nul3% && ( + find /i "Office16ProPlusR_Retail" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 + find /i "Office16ProPlusR_OEM" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 + find /i "Office16ProPlusMSDNR_" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 + find /i "Office16ProPlusVL_MAK" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 +) + +set _C16Msg=0 +for %%a in (%_RetIds%,ProPlus) do if !_%%a! EQU 1 ( +set _C16Msg=1 +) +if %_C16Msg% EQU 1 ( +echo: +echo Converting Office C2R Retail-to-Volume: +) +if %_C16Msg% EQU 0 (if %_Office15% EQU 1 (goto :R15V) else (goto :GVLKC2R)) + +if !_Mondo! EQU 1 ( +call :InsLic Mondo +) +if !_O365ProPlus! EQU 1 ( +echo O365ProPlus 2016 Suite ^<-^> Mondo 2016 Licenses +call :InsLic O365ProPlus DRNV7-VGMM2-B3G9T-4BF84-VMFTK +if !_Mondo! EQU 0 call :InsLic Mondo +) +if !_O365Business! EQU 1 if !_O365ProPlus! EQU 0 ( +set _O365ProPlus=1 +echo O365Business 2016 Suite ^<-^> Mondo 2016 Licenses +call :InsLic O365Business NCHRJ-3VPGW-X73DM-6B36K-3RQ6B +if !_Mondo! EQU 0 call :InsLic Mondo +) +if !_O365SmallBusPrem! EQU 1 if !_O365Business! EQU 0 if !_O365ProPlus! EQU 0 ( +set _O365ProPlus=1 +echo O365SmallBusPrem 2016 Suite ^<-^> Mondo 2016 Licenses +call :InsLic O365SmallBusPrem 3FBRX-NFP7C-6JWVK-F2YGK-H499R +if !_Mondo! EQU 0 call :InsLic Mondo +) +if !_O365HomePrem! EQU 1 if !_O365SmallBusPrem! EQU 0 if !_O365Business! EQU 0 if !_O365ProPlus! EQU 0 ( +set _O365ProPlus=1 +echo O365HomePrem 2016 Suite ^<-^> Mondo 2016 Licenses +call :InsLic O365HomePrem 9FNY8-PWWTY-8RY4F-GJMTV-KHGM9 +if !_Mondo! EQU 0 call :InsLic Mondo +) +if !_O365EduCloud! EQU 1 if !_O365HomePrem! EQU 0 if !_O365SmallBusPrem! EQU 0 if !_O365Business! EQU 0 if !_O365ProPlus! EQU 0 ( +set _O365ProPlus=1 +echo O365EduCloud 2016 Suite ^<-^> Mondo 2016 Licenses +call :InsLic O365EduCloud 8843N-BCXXD-Q84H8-R4Q37-T3CPT +if !_Mondo! EQU 0 call :InsLic Mondo +) +if !_O365ProPlus! EQU 1 set _O16O365=1 +if !_Mondo! EQU 1 if !_O365ProPlus! EQU 0 ( +echo Mondo 2016 Suite +call :InsLic O365ProPlus DRNV7-VGMM2-B3G9T-4BF84-VMFTK +if %_Office15% EQU 1 (goto :R15V) else (goto :GVLKC2R) +) +if !_ProPlus2019! EQU 1 if !_O365ProPlus! EQU 0 ( +echo ProPlus 2019 Suite +call :InsLic ProPlus%_tag% +) +if !_ProPlus! EQU 1 if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 ( +echo ProPlus 2016 Suite -^> ProPlus%_ons% Licenses +call :InsLic ProPlus%_tag% +) +if !_Professional2019! EQU 1 if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 ( +echo Professional 2019 Suite -^> ProPlus%_ons% Licenses +call :InsLic ProPlus%_tag% +) +if !_Professional! EQU 1 if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 ( +echo Professional 2016 Suite -^> ProPlus%_ons% Licenses +call :InsLic ProPlus%_tag% +) +if !_Standard2019! EQU 1 if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 ( +echo Standard 2019 Suite +call :InsLic Standard2019 +) +if !_Standard! EQU 1 if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 if !_Standard2019! EQU 0 ( +echo Standard 2016 Suite -^> Standard%_ons% Licenses +call :InsLic Standard%_tag% +) +for %%a in (ProjectPro,VisioPro,ProjectStd,VisioStd) do if !_%%a2019! EQU 1 ( +echo %%a 2019 SKU +if defined _tag (call :InsLic %%a2019) else (call :InsLic %%a) +) +for %%a in (ProjectPro,VisioPro,ProjectStd,VisioStd) do if !_%%a! EQU 1 ( +if !_%%a2019! EQU 0 ( + echo %%a 2016 SKU -^> %%a%_ons% Licenses + call :InsLic %%a%_tag% + ) +) +for %%a in (HomeBusiness2019,HomeStudent2019) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 if !_Standard2019! EQU 0 if !_Standard! EQU 0 ( + set _Standard2019=1 + echo %%a Suite -^> Standard 2019 Licenses + call :InsLic Standard2019 + ) +) +for %%a in (HomeBusiness,HomeStudent) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 if !_Standard2019! EQU 0 if !_Standard! EQU 0 if !_%%a2019! EQU 0 ( + set _Standard2019=1 + echo %%a 2016 Suite -^> Standard%_ons% Licenses + call :InsLic Standard%_tag% + ) +) +for %%a in (%_A19Ids%,OneNote) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 if !_Standard2019! EQU 0 if !_Standard! EQU 0 ( + echo %%a App + call :InsLic %%a + ) +) +for %%a in (%_A16Ids%) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 if !_Standard2019! EQU 0 if !_Standard! EQU 0 if !_%%a2019! EQU 0 ( + echo %%a 2016 App + call :InsLic %%a%_tag% + ) +) +for %%a in (Access2019) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 ( + echo %%a App + call :InsLic %%a + ) +) +for %%a in (Access) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_Professional2019! EQU 0 if !_Professional! EQU 0 if !_%%a2019! EQU 0 ( + echo %%a 2016 App + call :InsLic %%a%_tag% + ) +) +for %%a in (SkypeforBusiness2019) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 ( + echo %%a App + call :InsLic %%a + ) +) +for %%a in (SkypeforBusiness) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus2019! EQU 0 if !_ProPlus! EQU 0 if !_%%a2019! EQU 0 ( + echo %%a 2016 App + call :InsLic %%a%_tag% + ) +) +if %_Office15% EQU 1 (goto :R15V) else (goto :GVLKC2R) + +:R15V +for %%# in ("!_Licenses15Path!\client-issuance-*.xrm-ms") do ( +%_cscript% %_vbsi%"!_Licenses15Path!\%%~nx#" +) +%_cscript% %_vbsi%"!_Licenses15Path!\pkeyconfig-office.xrm-ms" + +set _O15Ids=Standard,ProjectPro,VisioPro,ProjectStd,VisioStd,Access,Lync +set _A15Ids=Excel,Groove,InfoPath,OneNote,Outlook,PowerPoint,Publisher,Word +set _R15Ids=SPD,Mondo,%_O15Ids%,%_A15Ids%,Professional,HomeBusiness,HomeStudent,O365ProPlus,O365Business,O365SmallBusPrem,O365HomePrem +set _V15Ids=Mondo,%_O15Ids%,%_A15Ids% + +echo %_Product15Ids%>"!_temp!\crvProduct15s.txt" +for %%a in (%_R15Ids%,ProPlus) do ( +set _%%a=0 +) +for %%a in (%_R15Ids%) do ( +findstr /I /C:"%%aRetail" "!_temp!\crvProduct15s.txt" %_Nul1% && set _%%a=1 +) +for %%a in (%_V15Ids%) do ( +findstr /I /C:"%%aVolume" "!_temp!\crvProduct15s.txt" %_Nul1% && ( + find /i "Office%%aVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (set _%%a=0) || (set _%%a=1) + ) +) +reg query %_PR15IDs%\Active\ProPlusRetail\x-none %_Nul3% && ( + find /i "OfficeProPlusVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (set _ProPlus=0) || (set _ProPlus=1) +) +reg query %_PR15IDs%\Active\ProPlusVolume\x-none %_Nul3% && ( + find /i "OfficeProPlusVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (set _ProPlus=0) || (set _ProPlus=1) +) +if %_Retail% EQU 1 for %%a in (%_R15Ids%) do ( +findstr /I /C:"%%aRetail" "!_temp!\crvProduct15s.txt" %_Nul1% && ( + find /i "Office%%aR_Retail" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office%%aR_OEM" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office%%aR_Sub" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office%%aR_PIN" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office%%aMSDNR_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office%%aO365R_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office%%aCO365R_" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + find /i "Office%%aVL_MAK" "!_temp!\crvRetail.txt" %_Nul1% && set _%%a=0 + ) +) +if %_Retail% EQU 1 reg query %_PR15IDs%\Active\ProPlusRetail\x-none %_Nul3% && ( + find /i "OfficeProPlusR_Retail" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 + find /i "OfficeProPlusR_OEM" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 + find /i "OfficeProPlusMSDNR_" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 + find /i "OfficeProPlusVL_MAK" "!_temp!\crvRetail.txt" %_Nul1% && set _ProPlus=0 +) + +set _C15Msg=0 +for %%a in (%_R15Ids%,ProPlus) do if !_%%a! EQU 1 ( +set _C15Msg=1 +) +if %_C15Msg% EQU 1 if %_C16Msg% EQU 0 ( +echo: +echo Converting Office C2R Retail-to-Volume: +) +if %_C15Msg% EQU 0 goto :GVLKC2R + +if !_Mondo! EQU 1 ( +call :Ins15Lic Mondo +) +if !_O365ProPlus! EQU 1 if !_O16O365! EQU 0 ( +echo O365ProPlus 2013 Suite ^<-^> Mondo 2013 Licenses +call :Ins15Lic O365ProPlus DRNV7-VGMM2-B3G9T-4BF84-VMFTK +if !_Mondo! EQU 0 call :Ins15Lic Mondo +) +if !_O365SmallBusPrem! EQU 1 if !_O365ProPlus! EQU 0 if !_O16O365! EQU 0 ( +set _O365ProPlus=1 +echo O365SmallBusPrem 2013 Suite ^<-^> Mondo 2013 Licenses +call :Ins15Lic O365SmallBusPrem 3FBRX-NFP7C-6JWVK-F2YGK-H499R +if !_Mondo! EQU 0 call :Ins15Lic Mondo +) +if !_O365HomePrem! EQU 1 if !_O365SmallBusPrem! EQU 0 if !_O365ProPlus! EQU 0 if !_O16O365! EQU 0 ( +set _O365ProPlus=1 +echo O365HomePrem 2013 Suite ^<-^> Mondo 2013 Licenses +call :Ins15Lic O365HomePrem 9FNY8-PWWTY-8RY4F-GJMTV-KHGM9 +if !_Mondo! EQU 0 call :Ins15Lic Mondo +) +if !_O365Business! EQU 1 if !_O365HomePrem! EQU 0 if !_O365SmallBusPrem! EQU 0 if !_O365ProPlus! EQU 0 if !_O16O365! EQU 0 ( +set _O365ProPlus=1 +echo O365Business 2013 Suite ^<-^> Mondo 2013 Licenses +call :Ins15Lic O365Business MCPBN-CPY7X-3PK9R-P6GTT-H8P8Y +if !_Mondo! EQU 0 call :Ins15Lic Mondo +) +if !_Mondo! EQU 1 if !_O365ProPlus! EQU 0 if !_O16O365! EQU 0 ( +echo Mondo 2013 Suite +call :Ins15Lic O365ProPlus DRNV7-VGMM2-B3G9T-4BF84-VMFTK +goto :GVLKC2R +) +if !_SPD! EQU 1 if !_Mondo! EQU 0 if !_O365ProPlus! EQU 0 ( +echo SharePoint Designer 2013 App -^> Mondo 2013 Licenses +call :Ins15Lic Mondo +goto :GVLKC2R +) +if !_ProPlus! EQU 1 if !_O365ProPlus! EQU 0 ( +echo ProPlus 2013 Suite +call :Ins15Lic ProPlus +) +if !_Professional! EQU 1 if !_O365ProPlus! EQU 0 if !_ProPlus! EQU 0 ( +echo Professional 2013 Suite -^> ProPlus 2013 Licenses +call :Ins15Lic ProPlus +) +if !_Standard! EQU 1 if !_O365ProPlus! EQU 0 if !_ProPlus! EQU 0 if !_Professional! EQU 0 ( +echo Standard 2013 Suite +call :Ins15Lic Standard +) +for %%a in (ProjectPro,VisioPro,ProjectStd,VisioStd) do if !_%%a! EQU 1 ( +echo %%a 2013 SKU +call :Ins15Lic %%a +) +for %%a in (HomeBusiness,HomeStudent) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus! EQU 0 if !_Professional! EQU 0 if !_Standard! EQU 0 ( + set _Standard=1 + echo %%a 2013 Suite -^> Standard 2013 Licenses + call :Ins15Lic Standard + ) +) +for %%a in (%_A15Ids%) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus! EQU 0 if !_Professional! EQU 0 if !_Standard! EQU 0 ( + echo %%a 2013 App + call :Ins15Lic %%a + ) +) +for %%a in (Access) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus! EQU 0 if !_Professional! EQU 0 ( + echo %%a 2013 App + call :Ins15Lic %%a + ) +) +for %%a in (Lync) do if !_%%a! EQU 1 ( +if !_O365ProPlus! EQU 0 if !_ProPlus! EQU 0 ( + echo SkypeforBusiness 2015 App + call :Ins15Lic %%a + ) +) +goto :GVLKC2R + +:InsLic +set "_ID=%1Volume" +set "_pkey=" +if not "%2"=="" ( +set "_ID=%1Retail" +set "_pkey=PidKey=%2" +) +reg delete %_Config% /f /v %_ID%.OSPPReady %_Nul3% +"!_Integrator!" /I /License PRIDName=%_ID%.16 %_pkey% PackageGUID="%_GUID%" PackageRoot="!_InstallRoot!" %_Nul1% +reg add %_Config% /f /v %_ID%.OSPPReady /t REG_SZ /d 1 %_Nul1% +reg query %_Config% /v ProductReleaseIds | findstr /I "%_ID%" %_Nul1% +if %errorlevel% NEQ 0 ( +for /f "skip=2 tokens=2*" %%a in ('reg query %_Config% /v ProductReleaseIds') do reg add %_Config% /v ProductReleaseIds /t REG_SZ /d "%%b,%_ID%" /f %_Nul1% +) +exit /b + +:Ins15Lic +set "_ID=%1Volume" +set "_patt=%1VL_" +set "_pkey=" +if not "%2"=="" ( +set "_ID=%1Retail" +set "_patt=%1R_" +set "_pkey=%2" +) +reg delete %_OSPP15Ready% /f /v %_ID%.OSPPReady %_Nul3% +for %%# in ("!_Licenses15Path!\%_patt%*.xrm-ms") do ( +%_cscript% %_vbsi%"!_Licenses15Path!\%%~nx#" +) +if defined _pkey wmic path %_sps% where version='%_wmi%' call InstallProductKey ProductKey="%_pkey%" %_Nul3% +reg add %_OSPP15Ready% /f /v %_ID%.OSPPReady /t %_OSPP15ReadT% /d 1 %_Nul1% +reg query %_Con15fig% | findstr /I "%_ID%" %_Nul1% +if %errorlevel% NEQ 0 ( +for /f "skip=2 tokens=2*" %%a in ('reg query %_Con15fig%') do reg add %_Con15fig% /t REG_SZ /d "%%b,%_ID%" /f %_Nul1% +) +exit /b + +:GVLKC2R +if %_Office16% EQU 1 ( +for %%a in (%_RetIds%,ProPlus) do set "_%%a=" +) +if %_Office15% EQU 1 ( +for %%a in (%_R15Ids%,ProPlus) do set "_%%a=" +) +if %winbuild% GEQ 9200 wmic path %_sps% where version='%_wmi%' call RefreshLicenseStatus %_Nul3% +if exist "%SysPath%\spp\store_test\2.0\tokens.dat" if defined _copp ( +%_cscript% %_SLMGR% /rilc +) +goto :%_sC2R% + +:keys +if "%~1"=="" exit /b +goto :%1 %_Nul2% + +:: Windows 10 [RS5] +:32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee +set "_key=M7XTQ-FN8P6-TTKYV-9D4CC-J462D" &:: Enterprise LTSC 2019 +exit /b + +:7103a333-b8c8-49cc-93ce-d37c09687f92 +set "_key=92NFX-8DJQP-P6BBQ-THF9C-7CG2H" &:: Enterprise LTSC 2019 N +exit /b + +:ec868e65-fadf-4759-b23e-93fe37f2cc29 +set "_key=CPWHC-NT2C7-VYW78-DHDB2-PG3GK" &:: Enterprise for Virtual Desktops +exit /b + +:0df4f814-3f57-4b8b-9a9d-fddadcd69fac +set "_key=NBTWJ-3DR69-3C4V8-C26MC-GQ9M6" &:: Lean +exit /b + +:: Windows 10 [RS3] +:82bbc092-bc50-4e16-8e18-b74fc486aec3 +set "_key=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J" &:: Pro Workstation +exit /b + +:4b1571d3-bafb-4b40-8087-a961be2caf65 +set "_key=9FNHH-K3HBT-3W4TD-6383H-6XYWF" &:: Pro Workstation N +exit /b + +:e4db50ea-bda1-4566-b047-0ca50abc6f07 +set "_key=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX" &:: Enterprise Remote Server +exit /b + +:: Windows 10 [RS2] +:e0b2d383-d112-413f-8a80-97f373a5820c +set "_key=YYVX9-NTFWV-6MDM3-9PT4T-4M68B" &:: Enterprise G +exit /b + +:e38454fb-41a4-4f59-a5dc-25080e354730 +set "_key=44RPN-FTY23-9VTTB-MP9BX-T84FV" &:: Enterprise G N +exit /b + +:: Windows 10 [RS1] +:2d5a5a60-3040-48bf-beb0-fcd770c20ce0 +set "_key=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ" &:: Enterprise 2016 LTSB +exit /b + +:9f776d83-7156-45b2-8a5c-359b9c9f22a3 +set "_key=QFFDN-GRT3P-VKWWX-X7T3R-8B639" &:: Enterprise 2016 LTSB N +exit /b + +:3f1afc82-f8ac-4f6c-8005-1d233e606eee +set "_key=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y" &:: Pro Education +exit /b + +:5300b18c-2e33-4dc2-8291-47ffcec746dd +set "_key=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC" &:: Pro Education N +exit /b + +:: Windows 10 [TH] +:58e97c99-f377-4ef1-81d5-4ad5522b5fd8 +set "_key=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99" &:: Home +exit /b + +:7b9e1751-a8da-4f75-9560-5fadfe3d8e38 +set "_key=3KHY7-WNT83-DGQKR-F7HPR-844BM" &:: Home N +exit /b + +:cd918a57-a41b-4c82-8dce-1a538e221a83 +set "_key=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH" &:: Home Single Language +exit /b + +:a9107544-f4a0-4053-a96a-1479abdef912 +set "_key=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR" &:: Home China +exit /b + +:2de67392-b7a7-462a-b1ca-108dd189f588 +set "_key=W269N-WFGWX-YVC9B-4J6C9-T83GX" &:: Pro +exit /b + +:a80b5abf-76ad-428b-b05d-a47d2dffeebf +set "_key=MH37W-N47XK-V7XM9-C7227-GCQG9" &:: Pro N +exit /b + +:e0c42288-980c-4788-a014-c080d2e1926e +set "_key=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2" &:: Education +exit /b + +:3c102355-d027-42c6-ad23-2e7ef8a02585 +set "_key=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ" &:: Education N +exit /b + +:73111121-5638-40f6-bc11-f1d7b0d64300 +set "_key=NPPR9-FWDCX-D2C8J-H872K-2YT43" &:: Enterprise +exit /b + +:e272e3e2-732f-4c65-a8f0-484747d0d947 +set "_key=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4" &:: Enterprise N +exit /b + +:7b51a46c-0c04-4e8f-9af4-8496cca90d5e +set "_key=WNMTR-4C88C-JK8YV-HQ7T2-76DF9" &:: Enterprise 2015 LTSB +exit /b + +:87b838b7-41b6-4590-8318-5797951d8529 +set "_key=2F77B-TNFGY-69QQF-B8YKP-D69TJ" &:: Enterprise 2015 LTSB N +exit /b + +:: Windows Server 2019 [RS5] +:de32eafd-aaee-4662-9444-c1befb41bde2 +set "_key=N69G4-B89J2-4G8F4-WWYCC-J464C" &:: Standard +exit /b + +:34e1ae55-27f8-4950-8877-7a03be5fb181 +set "_key=WMDGN-G9PQG-XVVXX-R3X43-63DFG" &:: Datacenter +exit /b + +:034d3cbb-5d4b-4245-b3f8-f84571314078 +set "_key=WVDHN-86M7X-466P6-VHXV7-YY726" &:: Essentials +exit /b + +:a99cc1f0-7719-4306-9645-294102fbff95 +set "_key=FDNH6-VW9RW-BXPJ7-4XTYG-239TB" &:: Azure Core +exit /b + +:73e3957c-fc0c-400d-9184-5f7b6f2eb409 +set "_key=N2KJX-J94YW-TQVFB-DG9YT-724CC" &:: Standard ACor +exit /b + +:90c362e5-0da1-4bfd-b53b-b87d309ade43 +set "_key=6NMRW-2C8FM-D24W7-TQWMY-CWH2D" &:: Datacenter ACor +exit /b + +:8de8eb62-bbe0-40ac-ac17-f75595071ea3 +set "_key=GRFBW-QNDC4-6QBHG-CCK3B-2PR88" &:: ServerARM64 +exit /b + +:: Windows Server 2016 [RS4] +:43d9af6e-5e86-4be8-a797-d072a046896c +set "_key=K9FYF-G6NCK-73M32-XMVPY-F9DRR" &:: ServerARM64 +exit /b + +:: Windows Server 2016 [RS3] +:61c5ef22-f14f-4553-a824-c4b31e84b100 +set "_key=PTXN8-JFHJM-4WC78-MPCBR-9W4KR" &:: Standard ACor +exit /b + +:e49c08e7-da82-42f8-bde2-b570fbcae76c +set "_key=2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG" &:: Datacenter ACor +exit /b + +:: Windows Server 2016 [RS1] +:8c1c5410-9f39-4805-8c9d-63a07706358f +set "_key=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY" &:: Standard +exit /b + +:21c56779-b449-4d20-adfc-eece0e1ad74b +set "_key=CB7KF-BWN84-R7R2Y-793K2-8XDDG" &:: Datacenter +exit /b + +:2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283 +set "_key=JCKRF-N37P4-C2D82-9YXRT-4M63B" &:: Essentials +exit /b + +:7b4433f4-b1e7-4788-895a-c45378d38253 +set "_key=QN4C6-GBJD2-FB422-GHWJK-GJG2R" &:: Cloud Storage +exit /b + +:3dbf341b-5f6c-4fa7-b936-699dce9e263f +set "_key=VP34G-4NPPG-79JTQ-864T4-R3MQX" &:: Azure Core +exit /b + +:: Windows 8.1 +:fe1c3238-432a-43a1-8e25-97e7d1ef10f3 +set "_key=M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK" &:: Core +exit /b + +:78558a64-dc19-43fe-a0d0-8075b2a370a3 +set "_key=7B9N3-D94CG-YTVHR-QBPX3-RJP64" &:: Core N +exit /b + +:c72c6a1d-f252-4e7e-bdd1-3fca342acb35 +set "_key=BB6NG-PQ82V-VRDPW-8XVD2-V8P66" &:: Core Single Language +exit /b + +:db78b74f-ef1c-4892-abfe-1e66b8231df6 +set "_key=NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3" &:: Core China +exit /b + +:ffee456a-cd87-4390-8e07-16146c672fd0 +set "_key=XYTND-K6QKT-K2MRH-66RTM-43JKP" &:: Core ARM +exit /b + +:c06b6981-d7fd-4a35-b7b4-054742b7af67 +set "_key=GCRJD-8NW9H-F2CDX-CCM8D-9D6T9" &:: Pro +exit /b + +:7476d79f-8e48-49b4-ab63-4d0b813a16e4 +set "_key=HMCNV-VVBFX-7HMBH-CTY9B-B4FXY" &:: Pro N +exit /b + +:096ce63d-4fac-48a9-82a9-61ae9e800e5f +set "_key=789NJ-TQK6T-6XTH8-J39CJ-J8D3P" &:: Pro with Media Center +exit /b + +:81671aaf-79d1-4eb1-b004-8cbbe173afea +set "_key=MHF9N-XY6XB-WVXMC-BTDCT-MKKG7" &:: Enterprise +exit /b + +:113e705c-fa49-48a4-beea-7dd879b46b14 +set "_key=TT4HM-HN7YT-62K67-RGRQJ-JFFXW" &:: Enterprise N +exit /b + +:0ab82d54-47f4-4acb-818c-cc5bf0ecb649 +set "_key=NMMPB-38DD4-R2823-62W8D-VXKJB" &:: Embedded Industry Pro +exit /b + +:cd4e2d9f-5059-4a50-a92d-05d5bb1267c7 +set "_key=FNFKF-PWTVT-9RC8H-32HB2-JB34X" &:: Embedded Industry Enterprise +exit /b + +:f7e88590-dfc7-4c78-bccb-6f3865b99d1a +set "_key=VHXM3-NR6FT-RY6RT-CK882-KW2CJ" &:: Embedded Industry Automotive +exit /b + +:e9942b32-2e55-4197-b0bd-5ff58cba8860 +set "_key=3PY8R-QHNP9-W7XQD-G6DPH-3J2C9" &:: with Bing +exit /b + +:c6ddecd6-2354-4c19-909b-306a3058484e +set "_key=Q6HTR-N24GM-PMJFP-69CD8-2GXKR" &:: with Bing N +exit /b + +:b8f5e3a3-ed33-4608-81e1-37d6c9dcfd9c +set "_key=KF37N-VDV38-GRRTV-XH8X6-6F3BB" &:: with Bing Single Language +exit /b + +:ba998212-460a-44db-bfb5-71bf09d1c68b +set "_key=R962J-37N87-9VVK2-WJ74P-XTMHR" &:: with Bing China +exit /b + +:e58d87b5-8126-4580-80fb-861b22f79296 +set "_key=MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B" &:: Pro for Students +exit /b + +:cab491c7-a918-4f60-b502-dab75e334f40 +set "_key=TNFGH-2R6PB-8XM3K-QYHX2-J4296" &:: Pro for Students N +exit /b + +:: Windows Server 2012 R2 +:b3ca044e-a358-4d68-9883-aaa2941aca99 +set "_key=D2N9P-3P6X9-2R39C-7RTCD-MDVJX" &:: Standard +exit /b + +:00091344-1ea4-4f37-b789-01750ba6988c +set "_key=W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9" &:: Datacenter +exit /b + +:21db6ba4-9a7b-4a14-9e29-64a60c59301d +set "_key=KNC87-3J2TX-XB4WP-VCPJV-M4FWM" &:: Essentials +exit /b + +:b743a2be-68d4-4dd3-af32-92425b7bb623 +set "_key=3NPTF-33KPT-GGBPR-YX76B-39KDD" &:: Cloud Storage +exit /b + +:: Windows 8 +:c04ed6bf-55c8-4b47-9f8e-5a1f31ceee60 +set "_key=BN3D2-R7TKB-3YPBD-8DRP2-27GG4" &:: Core +exit /b + +:197390a0-65f6-4a95-bdc4-55d58a3b0253 +set "_key=8N2M2-HWPGY-7PGT9-HGDD8-GVGGY" &:: Core N +exit /b + +:8860fcd4-a77b-4a20-9045-a150ff11d609 +set "_key=2WN2H-YGCQR-KFX6K-CD6TF-84YXQ" &:: Core Single Language +exit /b + +:9d5584a2-2d85-419a-982c-a00888bb9ddf +set "_key=4K36P-JN4VD-GDC6V-KDT89-DYFKP" &:: Core China +exit /b + +:af35d7b7-5035-4b63-8972-f0b747b9f4dc +set "_key=DXHJF-N9KQX-MFPVR-GHGQK-Y7RKV" &:: Core ARM +exit /b + +:a98bcd6d-5343-4603-8afe-5908e4611112 +set "_key=NG4HW-VH26C-733KW-K6F98-J8CK4" &:: Pro +exit /b + +:ebf245c1-29a8-4daf-9cb1-38dfc608a8c8 +set "_key=XCVCF-2NXM9-723PB-MHCB7-2RYQQ" &:: Pro N +exit /b + +:a00018a3-f20f-4632-bf7c-8daa5351c914 +set "_key=GNBB8-YVD74-QJHX6-27H4K-8QHDG" &:: Pro with Media Center +exit /b + +:458e1bec-837a-45f6-b9d5-925ed5d299de +set "_key=32JNW-9KQ84-P47T8-D8GGY-CWCK7" &:: Enterprise +exit /b + +:e14997e7-800a-4cf7-ad10-de4b45b578db +set "_key=JMNMF-RHW7P-DMY6X-RF3DR-X2BQT" &:: Enterprise N +exit /b + +:10018baf-ce21-4060-80bd-47fe74ed4dab +set "_key=RYXVT-BNQG7-VD29F-DBMRY-HT73M" &:: Embedded Industry Pro +exit /b + +:18db1848-12e0-4167-b9d7-da7fcda507db +set "_key=NKB3R-R2F8T-3XCDP-7Q2KW-XWYQ2" &:: Embedded Industry Enterprise +exit /b + +:: Windows Server 2012 +:f0f5ec41-0d55-4732-af02-440a44a3cf0f +set "_key=XC9B7-NBPP2-83J2H-RHMBY-92BT4" &:: Standard +exit /b + +:d3643d60-0c42-412d-a7d6-52e6635327f6 +set "_key=48HP8-DN98B-MYWDG-T2DCC-8W83P" &:: Datacenter +exit /b + +:7d5486c7-e120-4771-b7f1-7b56c6d3170c +set "_key=HM7DN-YVMH3-46JC3-XYTG7-CYQJJ" &:: MultiPoint Standard +exit /b + +:95fd1c83-7df5-494a-be8b-1300e1c9d1cd +set "_key=XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G" &:: MultiPoint Premium +exit /b + +:: Windows 7 +:b92e9980-b9d5-4821-9c94-140f632f6312 +set "_key=FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4" &:: Professional +exit /b + +:54a09a0d-d57b-4c10-8b69-a842d6590ad5 +set "_key=MRPKT-YTG23-K7D7T-X2JMM-QY7MG" &:: Professional N +exit /b + +:5a041529-fef8-4d07-b06f-b59b573b32d2 +set "_key=W82YF-2Q76Y-63HXB-FGJG9-GF7QX" &:: Professional E +exit /b + +:ae2ee509-1b34-41c0-acb7-6d4650168915 +set "_key=33PXH-7Y6KF-2VJC9-XBBR8-HVTHH" &:: Enterprise +exit /b + +:1cb6d605-11b3-4e14-bb30-da91c8e3983a +set "_key=YDRBP-3D83W-TY26F-D46B2-XCKRJ" &:: Enterprise N +exit /b + +:46bbed08-9c7b-48fc-a614-95250573f4ea +set "_key=C29WB-22CC8-VJ326-GHFJW-H9DH4" &:: Enterprise E +exit /b + +:db537896-376f-48ae-a492-53d0547773d0 +set "_key=YBYF6-BHCR3-JPKRB-CDW7B-F9BK4" &:: Embedded POSReady 7 +exit /b + +:e1a8296a-db37-44d1-8cce-7bc961d59c54 +set "_key=XGY72-BRBBT-FF8MH-2GG8H-W7KCW" &:: Embedded Standard +exit /b + +:aa6dd3aa-c2b4-40e2-a544-a6bbb3f5c395 +set "_key=73KQT-CD9G6-K7TQG-66MRP-CQ22C" &:: Embedded ThinPC +exit /b + +:: Windows Server 2008 R2 +:a78b8bd9-8017-4df5-b86a-09f756affa7c +set "_key=6TPJF-RBVHG-WBW2R-86QPH-6RTM4" &:: Web +exit /b + +:cda18cf3-c196-46ad-b289-60c072869994 +set "_key=TT8MH-CG224-D3D7Q-498W2-9QCTX" &:: HPC +exit /b + +:68531fb9-5511-4989-97be-d11a0f55633f +set "_key=YC6KT-GKW9T-YTKYR-T4X34-R7VHC" &:: Standard +exit /b + +:7482e61b-c589-4b7f-8ecc-46d455ac3b87 +set "_key=74YFP-3QFB3-KQT8W-PMXWJ-7M648" &:: Datacenter +exit /b + +:620e2b3d-09e7-42fd-802a-17a13652fe7a +set "_key=489J6-VHDMP-X63PK-3K798-CPX3Y" &:: Enterprise +exit /b + +:8a26851c-1c7e-48d3-a687-fbca9b9ac16b +set "_key=GT63C-RJFQ3-4GMB6-BRFB9-CB83V" &:: Itanium +exit /b + +:f772515c-0e87-48d5-a676-e6962c3e1195 +set "_key=736RG-XDKJK-V34PF-BHK87-J6X3K" &:: MultiPoint Server ServerEmbeddedSolution +exit /b + +:: Office 2019 +:0bc88885-718c-491d-921f-6f214349e79c +set "_key=VQ9DP-NVHPH-T9HJC-J9PDT-KTQRG" &:: Professional Plus C2R-P +exit /b + +:fc7c4d0c-2e85-4bb9-afd4-01ed1476b5e9 +set "_key=XM2V9-DN9HH-QB449-XDGKC-W2RMW" &:: Project Professional C2R-P +exit /b + +:500f6619-ef93-4b75-bcb4-82819998a3ca +set "_key=N2CG9-YD3YK-936X4-3WR82-Q3X4H" &:: Visio Professional C2R-P +exit /b + +:85dd8b5f-eaa4-4af3-a628-cce9e77c9a03 +set "_key=NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP" &:: Professional Plus +exit /b + +:6912a74b-a5fb-401a-bfdb-2e3ab46f4b02 +set "_key=6NWWJ-YQWMR-QKGCB-6TMB3-9D9HK" &:: Standard +exit /b + +:2ca2bf3f-949e-446a-82c7-e25a15ec78c4 +set "_key=B4NPR-3FKK7-T2MBV-FRQ4W-PKD2B" &:: Project Professional +exit /b + +:1777f0e3-7392-4198-97ea-8ae4de6f6381 +set "_key=C4F7P-NCP8C-6CQPT-MQHV9-JXD2M" &:: Project Standard +exit /b + +:5b5cf08f-b81a-431d-b080-3450d8620565 +set "_key=9BGNQ-K37YR-RQHF2-38RQ3-7VCBB" &:: Visio Professional +exit /b + +:e06d7df3-aad0-419d-8dfb-0ac37e2bdf39 +set "_key=7TQNQ-K3YQQ-3PFH7-CCPPM-X4VQ2" &:: Visio Standard +exit /b + +:9e9bceeb-e736-4f26-88de-763f87dcc485 +set "_key=9N9PT-27V4Y-VJ2PD-YXFMF-YTFQT" &:: Access +exit /b + +:237854e9-79fc-4497-a0c1-a70969691c6b +set "_key=TMJWT-YYNMB-3BKTF-644FC-RVXBD" &:: Excel +exit /b + +:c8f8a301-19f5-4132-96ce-2de9d4adbd33 +set "_key=7HD7K-N4PVK-BHBCQ-YWQRW-XW4VK" &:: Outlook +exit /b + +:3131fd61-5e4f-4308-8d6d-62be1987c92c +set "_key=RRNCX-C64HY-W2MM7-MCH9G-TJHMQ" &:: PowerPoint +exit /b + +:9d3e4cca-e172-46f1-a2f4-1d2107051444 +set "_key=G2KWX-3NW6P-PY93R-JXK2T-C9Y9V" &:: Publisher +exit /b + +:734c6c6e-b0ba-4298-a891-671772b2bd1b +set "_key=NCJ33-JHBBY-HTK98-MYCV8-HMKHJ" &:: Skype for Business +exit /b + +:059834fe-a8ea-4bff-b67b-4d006b5447d3 +set "_key=PBX3G-NWMT6-Q7XBW-PYJGG-WXD33" &:: Word +exit /b + +:: Office 2016 +:829b8110-0e6f-4349-bca4-42803577788d +set "_key=WGT24-HCNMF-FQ7XH-6M8K7-DRTW9" &:: Project Professional C2R-P +exit /b + +:cbbaca45-556a-4416-ad03-bda598eaa7c8 +set "_key=D8NRQ-JTYM3-7J2DX-646CT-6836M" &:: Project Standard C2R-P +exit /b + +:b234abe3-0857-4f9c-b05a-4dc314f85557 +set "_key=69WXN-MBYV6-22PQG-3WGHK-RM6XC" &:: Visio Professional C2R-P +exit /b + +:361fe620-64f4-41b5-ba77-84f8e079b1f7 +set "_key=NY48V-PPYYH-3F4PX-XJRKJ-W4423" &:: Visio Standard C2R-P +exit /b + +:e914ea6e-a5fa-4439-a394-a9bb3293ca09 +set "_key=DMTCJ-KNRKX-26982-JYCKT-P7KB6" &:: MondoR +exit /b + +:9caabccb-61b1-4b4b-8bec-d10a3c3ac2ce +set "_key=HFTND-W9MK4-8B7MJ-B6C4G-XQBR2" &:: Mondo +exit /b + +:d450596f-894d-49e0-966a-fd39ed4c4c64 +set "_key=XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99" &:: Professional Plus +exit /b + +:dedfa23d-6ed1-45a6-85dc-63cae0546de6 +set "_key=JNRGM-WHDWX-FJJG3-K47QV-DRTFM" &:: Standard +exit /b + +:4f414197-0fc2-4c01-b68a-86cbb9ac254c +set "_key=YG9NW-3K39V-2T3HJ-93F3Q-G83KT" &:: Project Professional +exit /b + +:da7ddabc-3fbe-4447-9e01-6ab7440b4cd4 +set "_key=GNFHQ-F6YQM-KQDGJ-327XX-KQBVC" &:: Project Standard +exit /b + +:6bf301c1-b94a-43e9-ba31-d494598c47fb +set "_key=PD3PC-RHNGV-FXJ29-8JK7D-RJRJK" &:: Visio Professional +exit /b + +:aa2a7821-1827-4c2c-8f1d-4513a34dda97 +set "_key=7WHWN-4T7MP-G96JF-G33KR-W8GF4" &:: Visio Standard +exit /b + +:67c0fc0c-deba-401b-bf8b-9c8ad8395804 +set "_key=GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW" &:: Access +exit /b + +:c3e65d36-141f-4d2f-a303-a842ee756a29 +set "_key=9C2PK-NWTVB-JMPW8-BFT28-7FTBF" &:: Excel +exit /b + +:d8cace59-33d2-4ac7-9b1b-9b72339c51c8 +set "_key=DR92N-9HTF2-97XKM-XW2WJ-XW3J6" &:: OneNote +exit /b + +:ec9d9265-9d1e-4ed0-838a-cdc20f2551a1 +set "_key=R69KK-NTPKF-7M3Q4-QYBHW-6MT9B" &:: Outlook +exit /b + +:d70b1bba-b893-4544-96e2-b7a318091c33 +set "_key=J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6" &:: Powerpoint +exit /b + +:041a06cb-c5b8-4772-809f-416d03d16654 +set "_key=F47MM-N3XJP-TQXJ9-BP99D-8K837" &:: Publisher +exit /b + +:83e04ee1-fa8d-436d-8994-d31a862cab77 +set "_key=869NQ-FJ69K-466HW-QYCP2-DDBV6" &:: Skype for Business +exit /b + +:bb11badf-d8aa-470e-9311-20eaf80fe5cc +set "_key=WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6" &:: Word +exit /b + +:: Office 2013 +:dc981c6b-fc8e-420f-aa43-f8f33e5c0923 +set "_key=42QTK-RN8M7-J3C4G-BBGYM-88CYV" &:: Mondo +exit /b + +:b322da9c-a2e2-4058-9e4e-f59a6970bd69 +set "_key=YC7DK-G2NP3-2QQC3-J6H88-GVGXT" &:: Professional Plus +exit /b + +:b13afb38-cd79-4ae5-9f7f-eed058d750ca +set "_key=KBKQT-2NMXY-JJWGP-M62JB-92CD4" &:: Standard +exit /b + +:4a5d124a-e620-44ba-b6ff-658961b33b9a +set "_key=FN8TT-7WMH6-2D4X9-M337T-2342K" &:: Project Professional +exit /b + +:427a28d1-d17c-4abf-b717-32c780ba6f07 +set "_key=6NTH3-CW976-3G3Y2-JK3TX-8QHTT" &:: Project Standard +exit /b + +:e13ac10e-75d0-4aff-a0cd-764982cf541c +set "_key=C2FG9-N6J68-H8BTJ-BW3QX-RM3B3" &:: Visio Professional +exit /b + +:ac4efaf0-f81f-4f61-bdf7-ea32b02ab117 +set "_key=J484Y-4NKBF-W2HMG-DBMJC-PGWR7" &:: Visio Standard +exit /b + +:6ee7622c-18d8-4005-9fb7-92db644a279b +set "_key=NG2JY-H4JBT-HQXYP-78QH9-4JM2D" &:: Access +exit /b + +:f7461d52-7c2b-43b2-8744-ea958e0bd09a +set "_key=VGPNG-Y7HQW-9RHP7-TKPV3-BG7GB" &:: Excel +exit /b + +:fb4875ec-0c6b-450f-b82b-ab57d8d1677f +set "_key=H7R7V-WPNXQ-WCYYC-76BGV-VT7GH" &:: Groove +exit /b + +:a30b8040-d68a-423f-b0b5-9ce292ea5a8f +set "_key=DKT8B-N7VXH-D963P-Q4PHY-F8894" &:: InfoPath +exit /b + +:1b9f11e3-c85c-4e1b-bb29-879ad2c909e3 +set "_key=2MG3G-3BNTT-3MFW9-KDQW3-TCK7R" &:: Lync +exit /b + +:efe1f3e6-aea2-4144-a208-32aa872b6545 +set "_key=TGN6P-8MMBC-37P2F-XHXXK-P34VW" &:: OneNote +exit /b + +:771c3afa-50c5-443f-b151-ff2546d863a0 +set "_key=QPN8Q-BJBTJ-334K3-93TGY-2PMBT" &:: Outlook +exit /b + +:8c762649-97d1-4953-ad27-b7e2c25b972e +set "_key=4NT99-8RJFH-Q2VDH-KYG2C-4RD4F" &:: Powerpoint +exit /b + +:00c79ff1-6850-443d-bf61-71cde0de305f +set "_key=PN2WF-29XG2-T9HJ7-JQPJR-FCXK4" &:: Publisher +exit /b + +:d9f5b1c6-5386-495a-88f9-9ad6b41ac9b3 +set "_key=6Q7VD-NX8JD-WJ2VH-88V73-4GBJ7" &:: Word +exit /b + +:: Office 2010 +:09ed9640-f020-400a-acd8-d7d867dfd9c2 +set "_key=YBJTT-JG6MD-V9Q7P-DBKXJ-38W9R" &:: Mondo +exit /b + +:ef3d4e49-a53d-4d81-a2b1-2ca6c2556b2c +set "_key=7TC2V-WXF6P-TD7RT-BQRXR-B8K32" &:: Mondo2 +exit /b + +:6f327760-8c5c-417c-9b61-836a98287e0c +set "_key=VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB" &:: Professional Plus +exit /b + +:9da2a678-fb6b-4e67-ab84-60dd6a9c819a +set "_key=V7QKV-4XVVR-XYV4D-F7DFM-8R6BM" &:: Standard +exit /b + +:df133ff7-bf14-4f95-afe3-7b48e7e331ef +set "_key=YGX6F-PGV49-PGW3J-9BTGG-VHKC6" &:: Project Professional +exit /b + +:5dc7bf61-5ec9-4996-9ccb-df806a2d0efe +set "_key=4HP3K-88W3F-W2K3D-6677X-F9PGB" &:: Project Standard +exit /b + +:92236105-bb67-494f-94c7-7f7a607929bd +set "_key=D9DWC-HPYVV-JGF4P-BTWQB-WX8BJ" &:: Visio Premium +exit /b + +:e558389c-83c3-4b29-adfe-5e4d7f46c358 +set "_key=7MCW8-VRQVK-G677T-PDJCM-Q8TCP" &:: Visio Professional +exit /b + +:9ed833ff-4f92-4f36-b370-8683a4f13275 +set "_key=767HD-QGMWX-8QTDB-9G3R2-KHFGJ" &:: Visio Standard +exit /b + +:8ce7e872-188c-4b98-9d90-f8f90b7aad02 +set "_key=V7Y44-9T38C-R2VJK-666HK-T7DDX" &:: Access +exit /b + +:cee5d470-6e3b-4fcc-8c2b-d17428568a9f +set "_key=H62QG-HXVKF-PP4HP-66KMR-CW9BM" &:: Excel +exit /b + +:8947d0b8-c33b-43e1-8c56-9b674c052832 +set "_key=QYYW6-QP4CB-MBV6G-HYMCJ-4T3J4" &:: Groove (SharePoint Workspace) +exit /b + +:ca6b6639-4ad6-40ae-a575-14dee07f6430 +set "_key=K96W8-67RPQ-62T9Y-J8FQJ-BT37T" &:: InfoPath +exit /b + +:ab586f5c-5256-4632-962f-fefd8b49e6f4 +set "_key=Q4Y4M-RHWJM-PY37F-MTKWH-D3XHX" &:: OneNote +exit /b + +:ecb7c192-73ab-4ded-acf4-2399b095d0cc +set "_key=7YDC2-CWM8M-RRTJC-8MDVC-X3DWQ" &:: Outlook +exit /b + +:45593b1d-dfb1-4e91-bbfb-2d5d0ce2227a +set "_key=RC8FX-88JRY-3PF7C-X8P67-P4VTT" &:: Powerpoint +exit /b + +:b50c4f75-599b-43e8-8dcd-1081a7967241 +set "_key=BFK7F-9MYHM-V68C7-DRQ66-83YTP" &:: Publisher +exit /b + +:2d0882e7-a4e7-423b-8ccc-70d91e0158b1 +set "_key=HVHB3-C6FV7-KQX9W-YQG79-CRY7T" &:: Word +exit /b + +:ea509e87-07a1-4a45-9edc-eba5a39f36af +set "_key=D6QFG-VBYP2-XQHM7-J97RH-VVRCK" &:: Small Business Basics +exit /b + +:TheEnd +if %Unattend% EQU 0 echo Press any key to exit. +%_Pause% +exit /b 0 + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/_Info.txt b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/_Info.txt new file mode 100644 index 0000000..481bc7f --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/_Info.txt @@ -0,0 +1,16 @@ +==================================================================================================== + File Details: +==================================================================================================== + + d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66 + 39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66 + + Virus Total Report Date: 12-11-2019 + + These files are official Microsoft files and in this script, these are used in + cleaning office license in C2R Retail office to VL conversion process. + + The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab + You can get the original file here https://s.put.re/WFuXpyWA.zip + +==================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx64.exe b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx64.exe new file mode 100644 index 0000000..ad19905 Binary files /dev/null and b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx64.exe differ diff --git a/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx86.exe b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx86.exe new file mode 100644 index 0000000..248bf4a Binary files /dev/null and b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/BIN/cleanosppx86.exe differ diff --git a/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Renewal_Setup.cmd b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Renewal_Setup.cmd new file mode 100644 index 0000000..0eee8e6 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Renewal_Setup.cmd @@ -0,0 +1,657 @@ +@setlocal DisableDelayedExpansion +@echo off + + + + + + +:: ======================================================================================================= +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: ======================================================================================================= + + + + + + + + + + + + +::======================================================================================================================================== + +cls +set Unattended= +set _args= +set _elev= +set RenTask= +set RenActTask= +set DeskMenu= +set _SkipWinAct= +set _end= +set "_arg1=%~1" +if not defined _arg1 goto :NoProgArgs +set "_args=%~1" +set "_arg2=%~2" +set "_arg3=%~3" +if defined _arg2 set "_args=%~1 %~2" +if defined _arg3 set "_args=%~1 %~2 %~3" +for %%A in (%_args%) do ( +if /i "%%A"=="-el" set _elev=1 +if /i "%%A"=="/swa" set _SkipWinAct=1 +if /i "%%A"=="/rt" set RenTask=1&set Unattended=1 +if /i "%%A"=="/rat" set RenActTask=1&set Unattended=1 +if /i "%%A"=="/dcm" set DeskMenu=1&set Unattended=1) +:NoProgArgs +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "EchoRed=%_psc% write-host -back Black -fore Red" +set "EchoGreen=%_psc% write-host -back Black -fore Green" +set "EchoYellow=%_psc% write-host -back Black -fore DarkYellow" +set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:" + +::======================================================================================================================================== + +for %%i in (powershell.exe) do if "%%~$path:i"=="" ( +echo: &echo ==== ERROR ==== &echo: +echo Powershell is not installed in the system. +echo Aborting... +set _end=1 +goto Done +) + +::======================================================================================================================================== + +if %winbuild% LSS 7600 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent. +set _end=1 +goto Done +) + +::======================================================================================================================================== + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :Passed + ) || ( + if defined _elev goto :E_Admin +) + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el +if defined _args set _PSarg="""%~f0""" -el """%_args%""" + +setlocal EnableDelayedExpansion + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :E_Admin +) +) +exit /b + +:E_Admin +%ELine% +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +set _end=1 +goto Done + +:Passed + +::======================================================================================================================================== + +:: Fix for the special characters limitation in path name +:: Written by @abbodi1406 + +set "_work=%~dp0" +if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" + +set "_batf=%~f0" +set "_batp=%_batf:'=''%" + +setlocal EnableDelayedExpansion + +::======================================================================================================================================== + +if not exist "!_work!\Activate.cmd" ( +%ELine% +echo File [Activate.cmd] does not exist in current folder.. +echo It's required for the Task Creation. +set _end=1 +goto Done +) + +call :check cleanosppx64.exe cleanosppx86.exe +if defined _miss set _end=1&goto Done + +::======================================================================================================================================== + +set "_dest=%ProgramData%\Online_KMS_Activation" +set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" + +:ActivationRenewal + +cls +title Online KMS Activation Renewal +mode con cols=98 lines=30 +set ActTask= +set error_= +set DelDeskCont= +set error_1= + +if defined RenTask goto:Task +if defined RenActTask set ActTask=1&goto:Task +if defined DeskMenu goto:ContextMenu +echo: +echo: +echo: +echo You can apply the option [either 1 or 2] and [3]. +echo ______________________________________________________ +echo ^| ^| +echo ^| Auto Renewal via Task Scheduler ^| +echo ^| ^| +echo ^| [1] Create Renewal Task ^| +echo ^| ^| +echo ^| [2] Create Renewal and Activation Task ^| +echo ^|______________________________________________________^| +echo ^| ^| +echo ^| Manual Renewal via Desktop Context Menu ^| +echo ^| ^| +echo ^| [3] Add Desktop Context Menu ^| +echo ^|______________________________________________________^| +echo ^| ^| +echo ^| [4] Exit ^| +echo ^| ^| +echo ^|______________________________________________________^| +echo: +choice /C:1234 /N /M ". Enter Your Choice [1,2,3,4] : " + +if errorlevel 4 exit /b +if errorlevel 3 goto:ContextMenu +if errorlevel 2 set ActTask=1&goto:Task +if errorlevel 1 goto:Task + +:====================================================================================================================================================== + +:Task + +cls +if defined ActTask ( +title Create Renewal And Activation Tasks +) else ( +title Create Renewal Task +) + +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( +schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% +) +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( +schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% +) +If exist "%_dest%\" ( +@RD /s /q "%_dest%\" %nul% +) +If exist "%windir%\Online_KMS_Activation_Script\" ( +@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul% +) +If exist "%ProgramData%\Online_KMS_Activation.cmd" ( +Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% +del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul% +set DelDeskCont=1 +) + +md "%_dest%\BIN\" %nul% + +set "_temp=%SystemRoot%\Temp\_KMS_Task_Work" +if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul% +md "%_temp%\" %nul% + +call :Export renewal "%_temp%\Renewal.xml" Unicode +if defined ActTask (call :Export run_once "%_temp%\Run_Once.xml" Unicode) + +call :Export info "%_dest%\Info.txt" ASCII + +copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul% +copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul% + +cd /d "!_work!" + +if defined _SkipWinAct ( +%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1) +) else ( +copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul% +) +schtasks /create /tn "Online_KMS_Activation_Script-Renewal" /ru "SYSTEM" /xml "%_temp%\Renewal.xml" %nul% +if defined ActTask (schtasks /create /tn "Online_KMS_Activation_Script-Run_Once" /ru "SYSTEM" /xml "%_temp%\Run_Once.xml" %nul%) + +if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul% + +::======================================================================================================================================== + +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul || (set error_=1) +if defined ActTask reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul || (set error_=1) + +If not exist "%_dest%\Activate.cmd" (set error_=1) +If not exist "%_dest%\Info.txt" (set error_=1) +If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1) +If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1) + +if defined error_ ( +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( +schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% +) +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( +schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% +) +reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% +If exist "%_dest%\" ( +@RD /s /q "%_dest%\" %nul% +) +echo _________________________________________________________________ +echo: +%ELine% +echo Run the Online KMS Complete Uninstall script and then try again. +echo _________________________________________________________________ +) else ( +echo: +echo __________________________________________________________________________________________ +echo: +if defined DelDeskCont ( +%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted. +echo: +) +if defined _SkipWinAct ( +%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation. +echo: +) + +echo Files created: +echo %_dest%\BIN\cleanosppx64.exe +echo %_dest%\BIN\cleanosppx86.exe +echo %_dest%\Activate.cmd +echo %_dest%\Info.txt +echo: +echo Scheduled Tasks created: +echo \Online_KMS_Activation_Script-Renewal +if defined ActTask (echo \Online_KMS_Activation_Script-Run_Once) +echo: +echo It's recommended to set exclusion for the following file in your Antivirus Program. +echo: +echo %_dest%\Activate.cmd +echo __________________________________________________________________________________________ +echo: +if defined ActTask ( +%EchoGreen% Online KMS Activation - Renewal and Activation Tasks are successfully created. +) else ( +%EchoGreen% Online KMS Activation - Renewal Task is successfully created. +) +echo __________________________________________________________________________________________ +echo: +) + +goto Done + +::======================================================================================================================================== + +:ContextMenu + +cls +title Add Desktop Context Menu + +If exist "%ProgramData%\Online_KMS_Activation.cmd" ( +del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul% +set DelDeskCont=1 +) + +reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% + +if exist "%_dest%\BIN\" ( +@RD /s /q "%_dest%\BIN\" %nul% +) + +md "%_dest%\BIN\" %nul% +copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul% +copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul% + +if exist "%_dest%\Activate.cmd" ( +del /f /q "%_dest%\Activate.cmd" %nul% +) + +cd /d "!_work!" + +if defined _SkipWinAct ( +%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1) +) else ( +copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul% +) + +if exist "%_dest%\Info.txt" ( +del /f /q "%_dest%\Info.txt" %nul% +) + +call :Export info "%_dest%\Info.txt" ASCII + +reg add "HKCR\DesktopBackground\shell\Activate Windows - Office" /v "Icon" /t REG_SZ /d "%SystemRoot%%\System32\shell32.dll,71" /f >nul 2>&1 || (set error_1=1) +reg add "HKCR\DesktopBackground\shell\Activate Windows - Office\command" /ve /d "%_dest%\Activate.cmd" /f %nul% || (set error_1=1) + +If not exist "%_dest%\Activate.cmd" (set error_=1) +If not exist "%_dest%\Info.txt" (set error_=1) +If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1) +If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1) + +reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% || (set error_1=1) + +if defined error_1 ( +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( +schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% +) +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( +schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% +) +reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% +If exist "%_dest%\" ( +@RD /s /q "%_dest%\" %nul% +) +echo _________________________________________________________________ +echo: +%ELine% +echo Run the Online KMS Complete Uninstall script and then try again. +echo _________________________________________________________________ +) else ( +echo: +echo __________________________________________________________________________________________ +echo: +if defined DelDeskCont ( +%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted. +echo: +) +if defined _SkipWinAct ( +%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation. +echo: +) + +echo Files created: +echo %_dest%\BIN\cleanosppx64.exe +echo %_dest%\BIN\cleanosppx86.exe +echo %_dest%\Activate.cmd +echo %_dest%\Info.txt +echo: +echo Registry entry added: +echo HKCR\DesktopBackground\shell\Activate Windows - Office +echo HKCR\DesktopBackground\shell\Activate Windows - Office\command +echo __________________________________________________________________________________________ +echo: +%EchoGreen% Desktop context menu entry for Online KMS Activation is successfully created. +echo __________________________________________________________________________________________ +echo: +) + +::======================================================================================================================================== + +:Done +echo: +if defined Unattended ( +echo Exiting in 3 seconds... +if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) +exit /b +) +if defined _end ( +echo Press any key to exit... +pause >nul +exit /b +) else ( +echo Press any key to go back... +pause >nul +goto ActivationRenewal +) + +::======================================================================================================================================== + +:info: +==================================================================================================== + Online KMS Activation: +==================================================================================================== + + The use of this script is to activate / renew your Windows /Server /Office license + using online KMS. + + - Scheduled task name (If Renewal Task is created) (Weekly). + \Online_KMS_Activation_Script-Renewal + + - Scheduled task name (If Activation Task is created). + \Online_KMS_Activation_Script-Run_Once + + The scheduled task runs only if the system is connected to the Internet. + Activation Task will run on the system login and after successful activation, this task will + delete itself. + + - If system preactivation is done via HWID + Online KMS, and HWID was applied but was not + successful due to lack of internet at the time of installation of Windows, in that case, + Online KMS script will be set to skip Windows activation. + + - Registry entry name and location (If desktop context menu is created). + HKCR\DesktopBackground\shell\Activate Windows - Office + + For complete script and more info, browse the script homepage. + +==================================================================================================== + File Details: +==================================================================================================== + + d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66 + 39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66 + + Virus Total Report Date: 12-11-2019 + + These files are official Microsoft files and in this script, these are used in + cleaning office license in C2R Retail office to VL conversion process. + + The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab + You can get the original file here https://s.put.re/WFuXpyWA.zip + +==================================================================================================== + + Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project. + KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808 + + This fork was made to avoid having any KMS binary files and system can be activated using + some manual commands or transparent batch script files. + + Online KMS Activation script is a part of 'Microsoft Activation Scripts' + Maintained by @WindowsAddict + + Homepages- + NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts + GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts + +==================================================================================================== +:info: + +:renewal: + + + + Microsoft Corporation + 1999-01-01T12:00:00.34375 + RPO/WindowsAddict + 1.0 + Online_KMS_Activation_Script-Renewal - Weekly Activation Renewal Task + \Online_KMS_Activation_Script-Renewal + D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4) + + + + 1999-01-01T12:00:00 + true + + + + + 1 + + + + + + S-1-5-18 + HighestAvailable + + + + IgnoreNew + false + false + true + true + true + + false + false + + true + true + true + false + false + true + false + PT10M + 7 + + PT2M + 3 + + + + + %ProgramData%\Online_KMS_Activation\Activate.cmd + Task + + + +:renewal: + +:run_once: + + + + Microsoft Corporation + 1999-01-01T12:00:00.34375 + RPO/WindowsAddict + 1.0 + Online_KMS_Activation_Script-Run_Once - Run and Delete itself on first Internet Contact + \Online_KMS_Activation_Script-Run_Once + D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4) + + + + true + + + + + S-1-5-18 + HighestAvailable + + + + IgnoreNew + false + false + true + true + true + + false + false + + true + true + true + false + false + true + false + PT10M + 7 + + PT2M + 3 + + + + + %ProgramData%\Online_KMS_Activation\Activate.cmd + Task + + + +:run_once: + +::======================================================================================================================================== + +:: Echo all the missing files. +:: Written by @abbodi1406 (MDL) + +:check + +for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#"))) +if defined _miss ( +%ELine% +echo Following required file^(s^) is missing in 'BIN' folder. Aborting... +echo: +echo !_miss! +) +exit /b + +::======================================================================================================================================== + +:: Extract the text from batch script without character and file encoding issue +:: Thanks to @abbodi1406 + +:Export +%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);" &exit/b +exit /b + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Uninstall.cmd b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Uninstall.cmd new file mode 100644 index 0000000..702219b --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/Uninstall.cmd @@ -0,0 +1,264 @@ +@setlocal DisableDelayedExpansion +@echo off + +:: For unattended mode, run the script with /u parameter. + + + + + +:: ======================================================================================================= +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: ======================================================================================================= + + + + + + + + + + + + + + + + +::======================================================================================================================================== + +cls +title Online KMS Complete Uninstall +set Unattended= +set _args= +set _elev= +set "_arg1=%~1" +if not defined _arg1 goto :NoProgArgs +set "_args=%~1" +set "_arg2=%~2" +if defined _arg2 set "_args=%~1 %~2" +for %%A in (%_args%) do ( +if /i "%%A"=="-el" set _elev=1 +if /i "%%A"=="/u" set Unattended=1) +:NoProgArgs +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "EchoRed=%_psc% write-host -back Black -fore Red" +set "EchoGreen=%_psc% write-host -back Black -fore Green" +set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:" + +::======================================================================================================================================== + +for %%i in (powershell.exe) do if "%%~$path:i"=="" ( +echo: &echo ==== ERROR ==== &echo: +echo Powershell is not installed in the system. +echo Aborting... +goto UN_Done +) + +::======================================================================================================================================== + +if %winbuild% LSS 7600 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent. +goto UN_Done +) + +::======================================================================================================================================== + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :Passed + ) || ( + if defined _elev goto :E_Admin +) + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el +if defined _args set _PSarg="""%~f0""" -el """%_args%""" + +setlocal EnableDelayedExpansion + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :E_Admin +) +) +exit /b + +:E_Admin +%ELine% +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +goto UN_Done + +:Passed + +::======================================================================================================================================== + +mode con: cols=98 lines=30 +setlocal EnableDelayedExpansion +set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" + +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( +echo Deleting [Task] Online_KMS_Activation_Script-Renewal +schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% +) + +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( +echo Deleting [Task] Online_KMS_Activation_Script-Run_Once +schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% +) + +If exist "%windir%\Online_KMS_Activation_Script\" ( +echo Deleting [Folder] %windir%\Online_KMS_Activation_Script\ +@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul% +) + +If exist "%ProgramData%\Online_KMS_Activation\" ( +echo Deleting [Folder] %ProgramData%\Online_KMS_Activation\ +@RD /s /q "%ProgramData%\Online_KMS_Activation\" %nul% +) + +if exist "%ProgramData%\Online_KMS_Activation.cmd" ( +echo Deleting [File] %ProgramData%\Online_KMS_Activation.cmd +del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul% +) + +reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% && ( +echo Deleting [Context Menu Registry] HKCR\DesktopBackground\shell\Activate Windows - Office +Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% +) + +echo: + +::======================================================================================================================================== + +:: Clear-KMS-Cache.cmd +:: https://forums.mydigitallife.net/posts/1511883 +:: Written by @abbodi1406 (MDL) + +set "SysPath=%Windir%\System32" +if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative") +set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\" +set "OSPP=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" +set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" +wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Windows 1>nul && (set SppHook=1) || (set SppHook=0) +wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Office 1>nul && (set SppHook=1) +wmic path OfficeSoftwareProtectionService get Version >nul 2>&1 && (set OsppHook=1) || (set OsppHook=0) +if %SppHook% NEQ 0 call :UN_cKMS SoftwareLicensingProduct SoftwareLicensingService SPP +if %OsppHook% NEQ 0 call :UN_cKMS OfficeSoftwareProtectionProduct OfficeSoftwareProtectionService OSPP +call :UN_cREG >nul 2>&1 +echo: +goto UN_Verify + +:UN_cKMS +echo Clearing %3 KMS Cache... +set spp=%1 +set sps=%2 +for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do (set app=%%G&call :UN_cAPP) +for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE"') do set ver=%%A +wmic path %sps% where version='%ver%' call ClearKeyManagementServiceMachine >nul 2>&1 +wmic path %sps% where version='%ver%' call ClearKeyManagementServicePort >nul 2>&1 +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 1 >nul 2>&1 +wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 1 >nul 2>&1 +goto :eof + +:UN_cAPP +wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine >nul 2>&1 +wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort >nul 2>&1 +goto :eof + +:UN_cREG +reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f +reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName +reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort +reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f +reg delete "HKU\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f +reg delete "HKLM\%OSPP%" /f /v KeyManagementServiceName +reg delete "HKLM\%OSPP%" /f /v KeyManagementServicePort +if %OsppHook% NEQ 1 ( +reg delete "HKLM\%OSPP%" /f +reg delete "HKU\S-1-5-20\%OSPP%" /f +) +goto :eof + +::======================================================================================================================================== + +:UN_Verify + +set error_= +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (set error_=1) +reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (set error_=1) +If exist "%windir%\Online_KMS_Activation_Script\" (set error_=1) +if exist "%ProgramData%\Online_KMS_Activation\" (set error_=1) + +reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" >nul 2>&1 && (set error_=1) +if exist "%ProgramData%\Online_KMS_Activation.cmd" (set error_=1) + +if defined error_ ( +echo ______________________________________ +%ELine% +echo Try Again. +echo ______________________________________ +) else ( +echo _________________________________________________________________ +echo: +%EchoGreen% Online KMS Complete Uninstall is done successfully. +echo _________________________________________________________________ +) + +::======================================================================================================================================== + +:UN_Done + +echo: +if defined Unattended ( +echo Exiting in 3 seconds... +if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) +exit /b +) +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/_ReadMe.txt b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/_ReadMe.txt new file mode 100644 index 0000000..2849288 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/Online_KMS_Activation/_ReadMe.txt @@ -0,0 +1,657 @@ +==================================================================================================== + + Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project. + KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808 + + This fork was made to avoid having any KMS binary files and system can be activated using + some manual commands or transparent batch script files. + + This script is a part of 'Microsoft Activation Scripts' project. + + Homepages- + NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts + GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts + + Maintained by @WindowsAddict + +==================================================================================================== + Online KMS Activation: +==================================================================================================== + + - This KMS script skips the activation of any permanently / KMS38-activated product. + - This KMS script can activate both Retail and VL Windows / Server installation. + - This KMS script can activate C2R Retail and VL Office, but not 2010/2013 MSI Retail Office. + + ---------------------- + - Activation Renewal + ---------------------- + + - KMS activates Windows / Server / Office for 180 Days. (For Core/ProWMC edition it is 30/45 Days) + + - By design, using the KMS activation method, the system contacts the registered server every 7 + days, and if contacted successfully it will automatically renew and reset the activation for the + the full period of 180 days again, starting from the day of successful contact. + If the system cannot contact the server, it will be deactivated after 180 days and it will + remain deactivated until contact can be restored. + + - The KMS servers I've added have been working steadily for two to three years, but there can be + no guarantee that they will remain online indefinitely. If a registered server goes + down, you will need to create a renewal task, or do a manual renewal, for the lifetime of the + activation. + + There are 3 ways you can renew the KMS server and as a result, renew the activation. + + 1- Activate.cmd + + Run this file whenever the system needs activation. Depending upon the particular (never fully-knowable) + circumstances, a successful activation may last for a period of a MINIMUM of 180 days, + or a maximum of the full life of the machine it's running on, and you may never need to run it again. + + 2- Manual Renewal via Desktop Context Menu + + This method is exactly same as above but here we put the following files in, + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe + C:\ProgramData\Online_KMS_Activation\Activate.cmd + C:\ProgramData\Online_KMS_Activation\Info.txt + + and create registry entries in, + HKCR\DesktopBackground\shell\Activate Windows - Office + HKCR\DesktopBackground\shell\Activate Windows - Office\command + + It creates an easy to reach Desktop context menu for the manual activation renewal. + + 3- Automatic Renewal via Task Scheduler + + This method put the following files in, + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe + C:\ProgramData\Online_KMS_Activation\Activate.cmd + C:\ProgramData\Online_KMS_Activation\Info.txt + + And creates a scheduled task to run the script every 7 days. + + The scheduled task runs only if the system is connected to the Internet. + With this method, the Activation task can also be created which will run on the system login + and after successful activation, this task will delete itself. + + IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not + because of KMS, because for them it's suspicious to run long scripts in the background as Tasks. + + It's recommended to set exclusions in Antivirus for + C:\ProgramData\Online_KMS_Activation\Activate.cmd + or + use the 1st or 2nd option for activation renewal. + +---------------------------------------------------------------------------------------------------- + + ---------------------- + - Remarks + ---------------------- + + - This Online KMS Activation provides immediate global activation for Windows 8.1 and Windows 10, which + means that in the following three scenarios, the system will self-activate when connected to the + internet, and also means that users will not need to manually run the activation script again. + + Scenario 1: Subsequent installation or alteration of any 2013, 2016, or 2019 Volume License + (VL) Office product. + Scenario 2: Windows edition change (with GVLK). + Scenario 3: Date change, system hardware change, etc. + + - What is left in the system in the activation process? + - Activate.cmd + After activation, it leaves only the KMS Server name in the registry, which helps you to get the + above-mentioned global activation feature whereby the system auto-renews the activations, + so it's a good thing if you leave the server name in the registry. + However, you can clear this registered KMS Server name upon activation, and do that, open + the script with notepad and set Clear-KMS-Cache to 1 from 0. + What is left in the system when Renewal methods are installed, has been mentioned. + + - This script includes the most-stable KMS servers (6+) list. The server selection process is + fully automatic. You don't need to worry about the server's availability. + + - If your system date is incorrect (beyond 180 days) and you are offline, the system will be + deactivated, but will automatically reactivate when you correct the system date. + + - Why should you choose the Online KMS activation method over offline KMS? + The main benefit of Online KMS activation is that it doesn't need any KMS binary file and system + can be activated using some manual commands or transparent batch script files. + So this is for those who don't like/have difficulties/trust issue in offline KMS because of its + binary files and antivirus detections. + + If you prefer offline KMS then checkout an open-source activator, + @abbodi1406's KMS_VL_ALL https://forums.mydigitallife.net/posts/838808 + +---------------------------------------------------------------------------------------------------- + + -------------------------------------- + - Office C2R Retail to VL conversion + -------------------------------------- + + This activation script will convert Office C2R Retail to Volume without needing separate tools. + + - Supports: Office 365, Office 2019, Office 2016, Office 2013 + - Activated Retail products will be skipped from conversion + this includes valid Office 365 subscriptions, or perpetual Office (MAK, OEM, MSDN, Retail..) + - Current Office licenses will be cleaned up (unless retail-activated Office detected) + then, proper Volume licenses will be installed based on the detected Product IDs + - Office Mondo suite cover all products, if detected, only its licenses will be installed + - Office 365 products will be converted with Mondo licenses by default + also, corresponding Office 365 Retail Grace Key will be installed + - Office 2016 products will be converted with corresponding Office 2019 licenses + - Office Professional suite will be converted with Office 2019 ProPlus licenses + - Office HomeBusiness/HomeStudent suites will be converted with Office 2019 Standard licenses + - If Office 2019 RTM licenses are not detected, Office 2016 licenses will be used instead + - Office 2013 products follow the same logic but handled separately + - If main products SKUs are detected, single apps licenses will not be installed to avoid duplication + + - SKUs: + O365ProPlus, O365Business, O365SmallBusPrem, O365HomePrem, O365EduCloud + ProPlus, Professional, Standard, HomeBusiness, HomeStudent, Visio, Project + + * Apps: + Access, Excel, InfoPath, Onenote, Outlook, PowerPoint, Publisher, SkypeForBusiness, Word, + Groove (OneDrive for Business) + + - O365ProPlus, O365Business, O365SmallBusPrem, ProPlus cover all apps + Professional cover all apps except SkypeForBusiness + Standard cover all apps except Access, SkypeForBusiness + + ## Notice + + - On Windows 7, Office 2016/2019 licensing service require Universal C Runtime to work correctly + - UCRT is available in the latest Monthly Rollup, or the separate update KB3118401 + - Additionally, Office programs themselves require recent Windows 7 updates to start properly + +==================================================================================================== + File Details: +==================================================================================================== + + d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66 + 39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66 + + Virus Total Report Date: 12-11-2019 + + These files are official Microsoft files and in this script, these are used in + cleaning office license in C2R Retail office to VL conversion process. + + The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab + You can get the original file here https://s.put.re/WFuXpyWA.zip + +==================================================================================================== + + How does it work? + Is it safe? + + https://pastebin.com/raw/7Xyaf15Z + Mirror: + https://textuploader.com/1dg8d/raw + +==================================================================================================== + Products Compatibility: +==================================================================================================== + + Supported Products: [Only Volume-capable] + + Windows 8 / 8.1 / 10 (all official editions, except Windows 10 S) + Windows 7 (Enterprise /N/E, Professional /N/E, Embedded Standard/POSReady/ThinPC) + Windows Server 2008 R2 / 2012 / 2012 R2 / 2016 / 2019 + Office Volume 2010 / 2013 / 2016 / 2019 + + [Activation script will convert Office C2R Retail O365/2013/2016/2019 to Volume] + +---------------------------------------------------------------------------------------------------- + + Unsupported Products: + + Office Retail [Office MSI Retail 2010/2013] + Windows Editions which do not support KMS activation by design: + Windows Evaluation Editions + Windows 7 (Starter, HomeBasic, HomePremium, Ultimate) + Windows 10 (Cloud "S", IoTEnterprise, IoTEnterpriseS, ProfessionalSingleLanguage... etc) + Windows Server (Server Foundation, Storage Server, Home Server 2011... etc) + +---------------------------------------------------------------------------------------------------- + + These editions are only KMS-activatable for 45 days at max: + Windows 10 Home edition variants + Windows 8.1 Core edition variants, Pro with Media Center, Pro Student + + These editions are only KMS-activatable for 30 days at max: + Windows 8 Core edition variants, Pro with Media Center + + Notes: + Supported Windows products do need volume conversion, only the GVLK (KMS key) is needed, which + the script will install accordingly. + KMS Activation works in all (MBR, GPT, UEFI, BIOS) systems. + +==================================================================================================== + Switches in the Script: +==================================================================================================== + + * Applies to MAS Separate Files version + + - For unattended mode, run the scripts with /u parameter. + +Activate.cmd /u +Uninstall.cmd /u + +To create Renewal Task in unattended mode, +Renewal_Setup.cmd /rt + +To create Renewal and Activation Task in unattended mode, +Renewal_Setup.cmd /rat + +To create desktop context menu in unattended mode, +Renewal_Setup.cmd /dcm + +To skip Windows activation in renewal script, +Renewal_Setup.cmd /rat /swa +or +Renewal_Setup.cmd /dcm /swa + + ---------------------------------------------------------------------- + + - Activate.cmd + + - To run the script in Debug mode to find out the cause of errors in activation or just details, + search "set _Debug=" and change the value from 0 to 1. + + - To replace KMS38 activation with KMS activation, search "set SkipKMS38=" and change the value + from 1 to 0. + + - To skip Windows activation, search "set ActWindows=" and change the value from 1 to 0. + - To skip Office activation, search "set ActOffice=" and change the value from 1 to 0. + - This is not effective if Windows and/or Office installation is already Volume (GVLK installed) + - In [Online KMS + HWID] $OEM$ preactivation, Windows KMS activation is turned off + by default. + + - To turn OFF auto conversion for Office C2R Retail to Volume, search "set AutoR2V=" and + change the value from 1 to 0. + + - To set the script to use only one specific KMS server address, search "set KMS_Server=" + paste the server address after the = sign. + + - To clear the KMS cache, search "set Clear-KMS-Cache=" and change the value from 0 to 1. + - Registered KMS server address (cache) enables the system to automatically renew the license + (for next 180 days) every 7 days, as long as the server is online. + - This process is the same as how the legal KMS works, so no security program will flag + this behavior. + - Changing this option here won't have any effect if manual (Desktop Context menu) and/or auto, + renewal activation script is installed. [default (0)]. + - I recommend leaving this option as default (0). + +==================================================================================================== + Manual Activation Process: +==================================================================================================== + + - Prerequisite: + + online Public KMS Server List: + + kms.srv.crsoo.com + kms.loli.beer + kms8.MSGuides.com + + kms9.MSGuides.com + kms.zhuxiaole.org + kms.lolico.moe + kms.moeclub.org + + Generic Volume License Key (GVLK): + Thanks to @abbodi1406 for the Key collection. + + GVLK Edition + + Windows 10 + + TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Home + 3KHY7-WNT83-DGQKR-F7HPR-844BM Home N + 7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH Home Single Language + PVMJN-6DFY6-9CCP6-7BKTT-D3WVR Home China + W269N-WFGWX-YVC9B-4J6C9-T83GX Pro + MH37W-N47XK-V7XM9-C7227-GCQG9 Pro N + 6TP4R-GNPTD-KYYHQ-7B7DP-J447Y Pro Education + YVWGF-BXNMC-HTQYQ-CPQ99-66QFC Pro Education N + NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J Pro Workstation + 9FNHH-K3HBT-3W4TD-6383H-6XYWF Pro Workstation N + NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education + 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ Education N + NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise + DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 Enterprise N + YYVX9-NTFWV-6MDM3-9PT4T-4M68B Enterprise G + 44RPN-FTY23-9VTTB-MP9BX-T84FV Enterprise G N + WNMTR-4C88C-JK8YV-HQ7T2-76DF9 Enterprise 2015 LTSB + 2F77B-TNFGY-69QQF-B8YKP-D69TJ Enterprise 2015 LTSB N + DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ Enterprise 2016 LTSB + QFFDN-GRT3P-VKWWX-X7T3R-8B639 Enterprise 2016 LTSB N + M7XTQ-FN8P6-TTKYV-9D4CC-J462D Enterprise LTSC 2019 + 92NFX-8DJQP-P6BBQ-THF9C-7CG2H Enterprise LTSC 2019 N + CPWHC-NT2C7-VYW78-DHDB2-PG3GK Enterprise for Virtual Desktops + 7NBT4-WGBQX-MP4H7-QXFF8-YP3KX Remote Server + NBTWJ-3DR69-3C4V8-C26MC-GQ9M6 Lean + + Windows 8.1 + + M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK Core + 7B9N3-D94CG-YTVHR-QBPX3-RJP64 Core N + BB6NG-PQ82V-VRDPW-8XVD2-V8P66 Core Single Language + NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 Core China + XYTND-K6QKT-K2MRH-66RTM-43JKP Core ARM + GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 Pro + HMCNV-VVBFX-7HMBH-CTY9B-B4FXY Pro N + 789NJ-TQK6T-6XTH8-J39CJ-J8D3P Pro with Media Center + MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 Enterprise + TT4HM-HN7YT-62K67-RGRQJ-JFFXW Enterprise N + NMMPB-38DD4-R2823-62W8D-VXKJB Embedded Industry Pro + FNFKF-PWTVT-9RC8H-32HB2-JB34X Embedded Industry Enterprise + VHXM3-NR6FT-RY6RT-CK882-KW2CJ Embedded Industry Automotive + 3PY8R-QHNP9-W7XQD-G6DPH-3J2C9 with Bing + Q6HTR-N24GM-PMJFP-69CD8-2GXKR with Bing N + KF37N-VDV38-GRRTV-XH8X6-6F3BB with Bing Single Language + R962J-37N87-9VVK2-WJ74P-XTMHR with Bing China + MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B Pro for Students + TNFGH-2R6PB-8XM3K-QYHX2-J4296 Pro for Students N + + Windows 8 + + BN3D2-R7TKB-3YPBD-8DRP2-27GG4 Core + 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY Core N + 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ Core Single Language + 4K36P-JN4VD-GDC6V-KDT89-DYFKP Core China + DXHJF-N9KQX-MFPVR-GHGQK-Y7RKV Core ARM + NG4HW-VH26C-733KW-K6F98-J8CK4 Pro + XCVCF-2NXM9-723PB-MHCB7-2RYQQ Pro N + GNBB8-YVD74-QJHX6-27H4K-8QHDG Pro with Media Center + 32JNW-9KQ84-P47T8-D8GGY-CWCK7 Enterprise + JMNMF-RHW7P-DMY6X-RF3DR-X2BQT Enterprise N + RYXVT-BNQG7-VD29F-DBMRY-HT73M Embedded Industry Pro + NKB3R-R2F8T-3XCDP-7Q2KW-XWYQ2 Embedded Industry Enterprise + + Windows 7 + + FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 Professional + MRPKT-YTG23-K7D7T-X2JMM-QY7MG Professional N + W82YF-2Q76Y-63HXB-FGJG9-GF7QX Professional E + 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH Enterprise + YDRBP-3D83W-TY26F-D46B2-XCKRJ Enterprise N + C29WB-22CC8-VJ326-GHFJW-H9DH4 Enterprise E + YBYF6-BHCR3-JPKRB-CDW7B-F9BK4 Embedded POSReady 7 + XGY72-BRBBT-FF8MH-2GG8H-W7KCW Embedded Standard + 73KQT-CD9G6-K7TQG-66MRP-CQ22C Embedded ThinPC + + Windows Server 2019 + + N69G4-B89J2-4G8F4-WWYCC-J464C Standard + WMDGN-G9PQG-XVVXX-R3X43-63DFG Datacenter + WVDHN-86M7X-466P6-VHXV7-YY726 Essentials + FDNH6-VW9RW-BXPJ7-4XTYG-239TB Azure Core + N2KJX-J94YW-TQVFB-DG9YT-724CC Standard ACor + 6NMRW-2C8FM-D24W7-TQWMY-CWH2D Datacenter ACor + GRFBW-QNDC4-6QBHG-CCK3B-2PR88 ServerARM64 + + Windows Server 2016 + + WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY Standard + CB7KF-BWN84-R7R2Y-793K2-8XDDG Datacenter + JCKRF-N37P4-C2D82-9YXRT-4M63B Essentials + QN4C6-GBJD2-FB422-GHWJK-GJG2R Cloud Storage + VP34G-4NPPG-79JTQ-864T4-R3MQX Azure Core + PTXN8-JFHJM-4WC78-MPCBR-9W4KR Standard ACor + 2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG Datacenter ACor + K9FYF-G6NCK-73M32-XMVPY-F9DRR ServerARM64 + + Windows Server 2012 R2 + + D2N9P-3P6X9-2R39C-7RTCD-MDVJX Standard + W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 Datacenter + KNC87-3J2TX-XB4WP-VCPJV-M4FWM Essentials + 3NPTF-33KPT-GGBPR-YX76B-39KDD Cloud Storage + + Windows Server 2012 + + XC9B7-NBPP2-83J2H-RHMBY-92BT4 Standard + 48HP8-DN98B-MYWDG-T2DCC-8W83P Datacenter + HM7DN-YVMH3-46JC3-XYTG7-CYQJJ MultiPoint Standard + XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G MultiPoint Premium + + Windows Server 2008 R2 + + 6TPJF-RBVHG-WBW2R-86QPH-6RTM4 Web + TT8MH-CG224-D3D7Q-498W2-9QCTX HPC + YC6KT-GKW9T-YTKYR-T4X34-R7VHC Standard + 74YFP-3QFB3-KQT8W-PMXWJ-7M648 Datacenter + 489J6-VHDMP-X63PK-3K798-CPX3Y Enterprise + GT63C-RJFQ3-4GMB6-BRFB9-CB83V Itanium + 736RG-XDKJK-V34PF-BHK87-J6X3K MultiPoint Server + + ---------------------------------------------------------------------------------------------------- + + ---------------------------------------------- + Windows /Server (All VL Supported Versions) + ---------------------------------------------- + + - Connect to the internet. + - Open CMD as Admin, and enter the following listed commands in the sequence in which they are given. + - Enter Generic Volume License Key (GVLK) (Replace %key% with the key from above list) with + the following command: + +slmgr.vbs /ipk %key% + + - Register the KMS Server, (Replace %server% with one of the above-listed servers) + (If activation is unsuccessful then try a different server) with the following command: + +slmgr.vbs /skms %server% + + - Activate Windows with the following command: + +slmgr.vbs /ato + + - Check Activation Status with the following command: + +slmgr.vbs /dli + + - Check Activation Expiry Date with the following command: + +slmgr.vbs /xpr + + - Clear the name of the KMS server (Optional) (It'll prevent activation auto-renewal) with the following command: + +slmgr.vbs /ckms + + - Done. + + ---------------------------------------------------------------------------- + Office VL Activation (Office 2010, 2013, 2016, 2019) - + ---------------------------------------------------------------------------- + + - Connect to the internet. + - Open CMD as Admin, and enter the following listed commands in the sequence in which they are given. + - If Office is installed as VL (Volume License) then there is no need to enter its key. + - If Office is installed as Retail, then you need to convert it to VL, by using C2R-R2V by @abbodi1406 + https://forums.mydigitallife.net/posts/1150042 + + - Change to the directory where Office is installed. + If your system is 32-bit Office on 32-bit Windows or 64-bit Office on 64-bit Windows use the following: + + For Office 2016 or 2019 enter the command: + +cd "C:\Program Files\Microsoft Office\Office16" + + For Office 2013 enter the command: + +cd "C:\Program Files\Microsoft Office\Office15" + + For Office 2010 enter the command: + +cd "C:\Program Files\Microsoft Office\Office14" + + -------------------------------------------------------------------------------- + + If your system is 32-bit Office on 64-bit Windows, use the following: + + For Office 2016 or 2019 enter the command: + +cd "C:\Program Files (x86)\Microsoft Office\Office16" + + For Office 2013 enter the command: + +cd "C:\Program Files (x86)\Microsoft Office\Office15" + + For Office 2010 enter the command: + +cd "C:\Program Files (x86)\Microsoft Office\Office14" + + -------------------------------------------------------------------------------- + + - Once all of that is done correctly, you must register the KMS Server, (In the following, + replace %server% with one of the above-listed servers.) (If activation is unsuccessful + then try a different server.) with the following command: + +cscript ospp.vbs /sethst:%server% + + - Activate Office with the following command: + +cscript ospp.vbs /act + + - Check Activation Status with the following command: + +cscript ospp.vbs /dstatus + + - Clear the name of the KMS server, (Optional) (It'll prevent activation auto-renewal) + with the appropriate following commands: + + To clear the KMS Server name for Office in Win 7, or Office 2010 on Win 8 or Win 10, + enter each of the following commands in the sequence which is given: + +set "OSPP=HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" +reg delete "%OSPP%" /f /v KeyManagementServiceName 2>nul +reg delete "%OSPP%" /f /v KeyManagementServicePort 2>nul +reg delete "%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f 2>nul +reg delete "%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul + + To clear the KMS server name for Office (except Office 2010) on Win 8 or Win 10, run the following command: + +set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" +reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName 2>nul +reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort 2>nul +reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul +reg delete "HKEY_USERS\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul + + - Done. + +==================================================================================================== + Troubleshoot activation issues: +==================================================================================================== + + - Make sure the Internet is connected. + + - Reboot the system and run the activation script, and if unsuccessful, + Open CMD as Admin, and enter the following command: (For Windows 10\8\8.1) + +Dism /online /Cleanup-Image /RestoreHealth + + - After its done, reboot the system and open CMD as Admin and enter the following command: + +sfc.exe /scannow + + - After it's done, reboot the system and run the activation script, and if unsuccessful, + open CMD as administrator again, and enter the following command: + +slmgr.vbs /rearm + + - Reboot the system and run the activation script, and if unsuccessful, + You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303 + (this will require to repair Office afterwards.) + + - Reboot the system and run the activation script, and if unsuccessful, + Try KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808/ + If still unsuccessful, it may be time to start over from the very beginning + and do a clean install of windows :D + + ------------------------------- + + - If you have issues with Office activation, or got undesired or duplicate licenses (e.g. Office 2016 and 2019): + Download Office Scrubber pack from https://forums.mydigitallife.net/posts/1466365/ + To get rid of any conflicted licenses, run Uninstall_Licenses.cmd, then you must start any + Office program to repair the licensing. You may also try Uninstall_Keys.cmd for similar manner. + + If you wish to remove Office and leftovers completely and start clean: + Uninstall Office normally from Control Panel / Programs and Feature then run Full_Scrub.cmd + afterwards, install new Office. + + - Can't activate Windows 7 with KMS: [Error 0xC004F035] + Some OEM licensed computers cannot be activated with KMS on WINDOWS 7. + Quote from the MS page https://tinyurl.com/yy8wfu5m + 'Computers obtained through OEM channels that have an ACPI_SLIC table in the (BIOS) are + required to have a valid Windows marker in the same ACPI_SLIC table. + ---Computers that have an ACPI_SLIC table without a valid Windows marker generate an error + when a volume edition of Windows 7 is installed.' + +==================================================================================================== + Credits: +==================================================================================================== + + @abbodi1406 Activate.cmd (KMS_VL_ALL) + https://forums.mydigitallife.net/posts/838808 + (* With the great help from @RPO, Forked it to work with Multi KMS Servers, + Renewal task, Desktop context menu, $OEM$, etc for Online KMS) + + Clear-KMS-Cache.cmd + https://forums.mydigitallife.net/posts/1511883 + (*Applied it as it is) + + Check-Activation-Status-wmic.cmd + https://forums.mydigitallife.net/posts/838808 + (*Applied it as it is) + +---------------------------------------------------------------------------------------------------- + + Online Public KMS Servers: + + kms.srv.crsoo.com + kms.loli.beer + kms8.MSGuides.com + + kms9.MSGuides.com + kms.zhuxiaole.org + kms.lolico.moe + kms.moeclub.org + +---------------------------------------------------------------------------------------------------- + + Special Thanks to @RPO + + For providing great support in making and improvements of this script, + To name a few, + + Internet test with Powershell (No ping) + KMS server 1688 port test with Powershell + Multi KMS server integration + Scheduled task to renew the activation + + And for solving countless problems in this batch script. + +---------------------------------------------------------------------------------------------------- + + Kind Help:- + + Thanks for having my back and answering all of my queries. (In no particular order) + + @AveYo aka @BAU, @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 + + @BorrowedWifi For providing support in fixing English grammar errors in the Read Me. + +---------------------------------------------------------------------------------------------------- + + This script is a part of 'Microsoft Activation Scripts' project. + + Homepages- + NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts + GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts + + Maintained by @WindowsAddict + +==================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Activators/ReadMe.txt b/MAS_1.3/Separate-Files-Version/Activators/ReadMe.txt new file mode 100644 index 0000000..8c73eb6 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Activators/ReadMe.txt @@ -0,0 +1,12 @@ +---------------------------------------------------------------------------------------------- +Activation Type Supported Product Activation Period +---------------------------------------------------------------------------------------------- + +Digital License - Windows 10 - Permanent +KMS38 - Windows 10 / Server - Until the year 2038 +Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be + created for lifetime auto activation. + +---------------------------------------------------------------------------------------------- + +* For more details, use the ReadMe.txt included in the respective activation folders. \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Credits.txt b/MAS_1.3/Separate-Files-Version/Credits.txt new file mode 100644 index 0000000..c0931f0 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Credits.txt @@ -0,0 +1,120 @@ +==================================================================================================== + Credits: +==================================================================================================== + + Microsoft Activation Scripts (MAS): + + A collection of scripts for activating Microsoft products using HWID / KMS38 / Online KMS + activation methods with a focus on open-source code, less antivirus detection and user-friendliness. + + These scripts are mostly a fork of other honourable developer's tools and scripts. + + Homepages- + NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts + GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts + + Maintained by @WindowsAddict + + To achieve this I have used the following projects as the base of this activator. + I would like to say thanks to the following authors for making such awesome projects. + +==================================== + HWID and KMS38 Activation: +==================================== + + @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. + and Created various methods for HWID/KMS38 Activation + *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 + https://github.com/massgravel/MASSGRAVE + https://gitlab.com/massgrave/massgrave + + @vyvojar Original slshim (slc.dll) + https://github.com/vyvojar/slshim/releases + +==================================== + + HWID/KMS38 methods Suggestions and improvements:- + + @sponpa New ideas for the HWID/KM38 Generation + https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 + + @leitek8 Improvements for the slc.dll + https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 + +==================================== + Online KMS Activation: +==================================== + + @abbodi1406 Activate.cmd (KMS_VL_ALL) + https://forums.mydigitallife.net/posts/838808 + (* With the great help from @RPO, Forked it to work with Multi KMS Servers, + Renewal task, Desktop context menu, $OEM$, etc for Online KMS) + + Clear-KMS-Cache.cmd + https://forums.mydigitallife.net/posts/1511883 + (*Applied it as it is) + + Check-Activation-Status-wmic.cmd + https://forums.mydigitallife.net/posts/838808 + (*Applied it as it is) + +==================================== + + Online Public KMS Servers: + + kms.srv.crsoo.com + kms.loli.beer + kms8.MSGuides.com + + kms9.MSGuides.com + kms.zhuxiaole.org + kms.lolico.moe + kms.moeclub.org + +==================================== + Useful scripts and ideas I used : +==================================== + + @AveYo (@BAU) Compressed2TXT + https://github.com/AveYo/Compressed2TXT + (For storing the files in text format) + + Reg_takeownership snippet + pastebin.com/XTPt0JSC + (*Applied in KMS38 Protection) + + @hearywarlot Elevate program as admin with vbs method + https://forums.mydigitallife.net/threads/.74332/ + + @dbenham Set buffer height independently of window height + https://stackoverflow.com/a/13351373 + + @Ratiborus Ratiborus Tools + http://forum.ru-board.com/topic.cgi?forum=2&topic=5734#1 + + @abbodi1406 Continuously providing best solutions for tons of issues. + + abbodi1406's Batch Scripts Repo + https://forums.mydigitallife.net/threads/74197/ + + @s1ave77 slave77s S-M-R-T JATDevice MkIII + https://forums.mydigitallife.net/threads/44717/ + +==================================== + Kind Help: +==================================== + + Thanks to the following people for answering all of my queries. (In no particular order) + + @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 + + @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. + @Chibi ANUBIS for testing scripts for ARM64 system. + +---------------------------------------------------------------------------------------------------- + + Special thanks to @RPO and @abbodi1406, + For providing great support and solving countless issues in this tool. + +==================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Extras/Download_Genuine_Installation_Media.url b/MAS_1.3/Separate-Files-Version/Extras/Download_Genuine_Installation_Media.url new file mode 100644 index 0000000..5bb4e74 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Extras/Download_Genuine_Installation_Media.url @@ -0,0 +1,6 @@ +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,11 +[InternetShortcut] +IDList= +URL=https://pastebin.com/raw/jduBSazJ +HotKey=0 diff --git a/MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/Extract_OEM_Folder.cmd b/MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/Extract_OEM_Folder.cmd new file mode 100644 index 0000000..5c79a8f --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/Extract_OEM_Folder.cmd @@ -0,0 +1,621 @@ +@setlocal DisableDelayedExpansion +@echo off + + + + + +:: ======================================================================================================= +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: ======================================================================================================= + + + + + + + + + + + + + +::======================================================================================================================================== + +cls +title Extract $OEM$ Folder +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "EchoRed=%_psc% write-host -back Black -fore Red" +set "EchoGreen=%_psc% write-host -back Black -fore Green" +set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:" + +::======================================================================================================================================== + +for %%i in (powershell.exe) do if "%%~$path:i"=="" ( +echo: &echo ==== ERROR ==== &echo: +echo Powershell is not installed in the system. +echo Aborting... +goto Done +) + +::======================================================================================================================================== + +if %winbuild% LSS 7600 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent. +goto Done +) + +::======================================================================================================================================== + +:: Fix for the special characters limitation in path name +:: Written by @abbodi1406 + +set "_work=%~dp0" +if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" + +set "_batf=%~f0" +set "_batp=%_batf:'=''%" + +setlocal EnableDelayedExpansion + +::======================================================================================================================================== + +mode con cols=98 lines=30 + +:: Get correct Desktop Location with powershell +:: Written by @dcshoecomp (superuser.com) +:: https://superuser.com/a/1413170 + +for /f "delims=" %%a in ('%_psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do Set "desktop=%%a" + +if exist "%desktop%\$OEM$\" ( +echo _____________________________________________________ +%ELine% +echo $OEM$ folder already exists on the Desktop. +echo _____________________________________________________ +goto Done2 +) + +set "_dir=%desktop%\$OEM$\$$\Setup\Scripts" +set _nofile= + +set "_fdir1=Activators\HWID-KMS38_Activation" +set "HWID_Activation.cmd=%_fdir1%\HWID_Activation.cmd" +set "KMS38_Activation.cmd=%_fdir1%\KMS38_Activation.cmd" +set "ClipUp.exe=%_fdir1%\BIN\ClipUp.exe" +set "gatherosstate.exe=%_fdir1%\BIN\gatherosstate.exe" +set "slc.dll=%_fdir1%\BIN\slc.dll" +set "ARM64_gatherosstate.exe=%_fdir1%\BIN\ARM64_gatherosstate.exe" +set "ARM64_slc.dll=%_fdir1%\BIN\ARM64_slc.dll" + +set "_fdir2=Activators\Online_KMS_Activation" +set "Activate.cmd=%_fdir2%\Activate.cmd" +set "Renewal_Setup.cmd=%_fdir2%\Renewal_Setup.cmd" +set "cleanosppx64.exe=%_fdir2%\BIN\cleanosppx64.exe" +set "cleanosppx86.exe=%_fdir2%\BIN\cleanosppx86.exe" + +cd /d "!_work!" +pushd "!_work!" +cd .. +cd .. + +if not exist "%HWID_Activation.cmd%" set _nofile=1 +if not exist "%KMS38_Activation.cmd%" set _nofile=1 +if not exist "%ClipUp.exe%" set _nofile=1 +if not exist "%gatherosstate.exe%" set _nofile=1 +if not exist "%slc.dll%" set _nofile=1 +if not exist "%ARM64_gatherosstate.exe%" set _nofile=1 +if not exist "%ARM64_slc.dll%" set _nofile=1 + +if not exist "%Activate.cmd%" set _nofile=1 +if not exist "%Renewal_Setup.cmd%" set _nofile=1 +if not exist "%cleanosppx64.exe%" set _nofile=1 +if not exist "%cleanosppx86.exe%" set _nofile=1 + +if defined _nofile ( +echo _____________________________________________________ +%ELine% +echo Some files are missing in the 'Activators' folder. +echo _____________________________________________________ +goto Done +) + +::======================================================================================================================================== + +:Menu + +cls +echo: +echo: +echo Extract the $OEM$ Folder on your desktop. +echo For more details use Read me. +echo _______________________________________________________ +echo ^| ^| +echo ^| ^| +echo ^| [1] HWID ^| +echo ^| ^| +echo ^| [2] KMS38 ^| +echo ^| ^| +echo ^| [3] HWID, Fallback to KMS38 ^| +echo ^| ^| +echo ^| [4] Online KMS ^| +echo ^| ^| +echo ^| [5] HWID ^+ Online KMS ^| +echo ^| ^| +echo ^| [6] KMS38 ^+ Online KMS ^| +echo ^| ^| +echo ^| [7] HWID, Fallback to KMS38 ^+ Online KMS ^| +echo ^| ^| +echo ^| [8] Exit ^| +echo ^| ^| +echo ^|_______________________________________________________^| +echo: +choice /C:12345678 /N /M "> Enter Your Choice [1,2,3,4,5,6,7,8] : " + +if errorlevel 8 exit /b +if errorlevel 7 goto:$OEM$HWID_FB_KMS38-KMS +if errorlevel 6 goto:$OEM$KMS38KMS +if errorlevel 5 goto:$OEM$HWIDKMS +if errorlevel 4 goto:$OEM$KMS +if errorlevel 3 goto:$OEM$HWID_FB_KMS38 +if errorlevel 2 goto:$OEM$KMS38 +if errorlevel 1 goto:$OEM$HWID + +::======================================================================================================================================== + +:$OEM$HWID + +cls +call :Prep +call :HWIDPrep +call :export HWIDSetup "%_dir%\SetupComplete.cmd" +set error_= +call :HWIDPrep2 + +if defined error_ goto ErrorFound +set "_oem=HWID" +goto Done + +:HWIDSetup: +@echo off + +reg query HKU\S-1-5-19 1>nul 2>nul || ( +echo ==== Error ==== +echo Right click on this file and select 'Run as administrator' +echo Press any key to exit... +pause >nul +exit /b +) + +call "%~dp0HWID_Activation.cmd" /u + +cd /d "%SystemRoot%\Setup\" +if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" +exit /b +:HWIDSetup: + +::======================================================================================================================================== + +:$OEM$KMS38 + +cls +call :Prep +call :KMS38Prep +call :export KMS38Setup "%_dir%\SetupComplete.cmd" +set error_= +call :KMS38Prep2 + +if defined error_ goto ErrorFound +set "_oem=KMS38" +goto Done + +:KMS38Setup: +@echo off + +reg query HKU\S-1-5-19 1>nul 2>nul || ( +echo ==== Error ==== +echo Right click on this file and select 'Run as administrator' +echo Press any key to exit... +pause >nul +exit /b +) + +call "%~dp0KMS38_Activation.cmd" /u + +cd /d "%SystemRoot%\Setup\" +if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" +exit /b +:KMS38Setup: + +::======================================================================================================================================== + +:$OEM$HWID_FB_KMS38 + +cls +call :Prep + +copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul% +call :KMS38Prep +call :export HWID_FB_KMS38 "%_dir%\SetupComplete.cmd" + +set error_= +If not exist "%_dir%\HWID_Activation.cmd" (set error_=1) +call :KMS38Prep2 + +if defined error_ goto ErrorFound +set "_oem=HWID`, Fallback to KMS38" +goto Done + +:HWID_FB_KMS38: +@echo off + +setlocal EnableDelayedExpansion +reg query HKU\S-1-5-19 1>nul 2>nul || ( +echo ==== Error ==== +echo Right click on this file and select 'Run as administrator' +echo Press any key to exit... +pause >nul +exit /b +) + +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G + +:: Check Windows Edition +set osedition= +for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a" +if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a" + +:: Check Installation type +set instype= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b" + +set KMS38= +if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1 +if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1 +if "%osedition%"=="EnterpriseG" set KMS38=1 +if "%osedition%"=="EnterpriseGN" set KMS38=1 +if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1 + +if defined KMS38 ( +call "%~dp0KMS38_Activation.cmd" /u +) else ( +call "%~dp0HWID_Activation.cmd" /u +) + +cd /d "%SystemRoot%\Setup\" +if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" +exit /b +:HWID_FB_KMS38: + +::======================================================================================================================================== + +:$OEM$KMS + +cls +call :Prep +call :KMSPrep +call :export KMSSetup "%_dir%\SetupComplete.cmd" +set error_= +call :KMSPrep2 + +if defined error_ goto ErrorFound +set "_oem=Online KMS" +goto Done + +:KMSSetup: +@echo off + +============================================================================ + +:: Change value from 1 to 0 to disable KMS Renewal And Activation Task +set Renewal_And_Activation_Task=1 + +:: Change value from 1 to 0 to disable KMS activation desktop context menu +set Desktop_context_menu=1 + +============================================================================ + +reg query HKU\S-1-5-19 1>nul 2>nul || ( +echo ==== Error ==== +echo Right click on this file and select 'Run as administrator' +echo Press any key to exit... +pause >nul +exit /b +) + +if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat +if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm + +cd /d "%SystemRoot%\Setup\" +if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" +exit /b +:KMSSetup: + +::======================================================================================================================================== + +:$OEM$HWIDKMS + +cls +call :Prep +call :HWIDPrep +call :KMSPrep + +call :export HWIDKMSSetup "%_dir%\SetupComplete.cmd" + +set error_= +call :HWIDPrep2 +call :KMSPrep2 + +if defined error_ goto ErrorFound +set "_oem=HWID `+ Online KMS" +goto Done + +:HWIDKMSSetup: +@echo off + +============================================================================ + +:: Change value from 1 to 0 to disable KMS Renewal And Activation Task +set Renewal_And_Activation_Task=1 + +:: Change value from 1 to 0 to disable KMS activation desktop context menu +set Desktop_context_menu=1 + +============================================================================ + +reg query HKU\S-1-5-19 1>nul 2>nul || ( +echo ==== Error ==== +echo Right click on this file and select 'Run as administrator' +echo Press any key to exit... +pause >nul +exit /b +) + +call "%~dp0HWID_Activation.cmd" /u +if defined HWIDAct set SkipWinAct=/swa + +if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct% +if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct% + +cd /d "%SystemRoot%\Setup\" +if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" +exit /b +:HWIDKMSSetup: + +::======================================================================================================================================== + +:$OEM$KMS38KMS + +cls +call :Prep +call :KMS38Prep +call :KMSPrep +call :export KMS38KMSSetup "%_dir%\SetupComplete.cmd" +set error_= +call :KMS38Prep2 +call :KMSPrep2 + +if defined error_ goto ErrorFound +set "_oem=KMS38 `+ Online KMS" +goto Done + +:KMS38KMSSetup: +@echo off + +============================================================================ + +:: Change value from 1 to 0 to disable KMS Renewal And Activation Task +set Renewal_And_Activation_Task=1 + +:: Change value from 1 to 0 to disable KMS activation desktop context menu +set Desktop_context_menu=1 + +============================================================================ + +reg query HKU\S-1-5-19 1>nul 2>nul || ( +echo ==== Error ==== +echo Right click on this file and select 'Run as administrator' +echo Press any key to exit... +pause >nul +exit /b +) + +call "%~dp0KMS38_Activation.cmd" /u + +if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat +if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm + +cd /d "%SystemRoot%\Setup\" +if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" +exit /b +:KMS38KMSSetup: + +::======================================================================================================================================== + +:$OEM$HWID_FB_KMS38-KMS + +cls +call :Prep + +copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul% +call :KMS38Prep +call :KMSPrep +call :export HWID_FB_KMS38-KMSSetup "%_dir%\SetupComplete.cmd" + +set error_= +If not exist "%_dir%\HWID_Activation.cmd" (set error_=1) +call :KMS38Prep2 +call :KMSPrep2 + +if defined error_ goto ErrorFound +set "_oem=HWID`, Fallback to KMS38 `+ Online KMS" +goto Done + +:HWID_FB_KMS38-KMSSetup: +@echo off + +============================================================================ + +:: Change value from 1 to 0 to disable KMS Renewal And Activation Task +set Renewal_And_Activation_Task=1 + +:: Change value from 1 to 0 to disable KMS activation desktop context menu +set Desktop_context_menu=1 + +============================================================================ + +setlocal EnableDelayedExpansion +reg query HKU\S-1-5-19 1>nul 2>nul || ( +echo ==== Error ==== +echo Right click on this file and select 'Run as administrator' +echo Press any key to exit... +pause >nul +exit /b +) + +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G + +:: Check Windows Edition +set osedition= +for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a" +if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a" + +:: Check Installation type +set instype= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b" + +set KMS38= +if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1 +if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1 +if "%osedition%"=="EnterpriseG" set KMS38=1 +if "%osedition%"=="EnterpriseGN" set KMS38=1 +if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1 + +if defined KMS38 ( +call "%~dp0KMS38_Activation.cmd" /u +) else ( +call "%~dp0HWID_Activation.cmd" /u +if defined HWIDAct set SkipWinAct=/swa +) + +if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct% +if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct% + +cd /d "%SystemRoot%\Setup\" +if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" +exit /b +:HWID_FB_KMS38-KMSSetup: + +::======================================================================================================================================== + +:ErrorFound + +%ELine% +echo $OEM$ Folder was not created successfully... +goto :Done2 +:Done +echo ________________________________________________________________________________________________ +echo: +%EchoGreen% %_oem% `$OEM`$ folder is successfully created on the Desktop. +echo ________________________________________________________________________________________________ +:Done2 +echo: +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== + +:Prep + +cd /d "%desktop%" +md "%desktop%\$OEM$\$$\Setup\Scripts\" +md "%desktop%\$OEM$\$$\Setup\Scripts\BIN" + +cd /d "!_work!" +pushd "!_work!" +cd .. +cd .. + +exit /b + +:HWIDPrep + +copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul% +copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul% +copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul% +copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul% +copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul% +exit /b + +:KMS38Prep + +copy /y /b "%KMS38_Activation.cmd%" "%_dir%\KMS38_Activation.cmd" %nul% +copy /y /b "%ClipUp.exe%" "%_dir%\BIN\ClipUp.exe" %nul% +copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul% +copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul% +copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul% +copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul% +exit /b + +:KMSPrep + +copy /y /b "%Activate.cmd%" "%_dir%\Activate.cmd" %nul% +copy /y /b "%Renewal_Setup.cmd%" "%_dir%\Renewal_Setup.cmd" %nul% +copy /y /b "%cleanosppx64.exe%" "%_dir%\BIN\cleanosppx64.exe" %nul% +copy /y /b "%cleanosppx86.exe%" "%_dir%\BIN\cleanosppx86.exe" %nul% +exit /b + +:HWIDPrep2 + +If not exist "%_dir%\HWID_Activation.cmd" (set error_=1) +If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1) +If not exist "%_dir%\BIN\slc.dll" (set error_=1) +If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1) +If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1) +If not exist "%_dir%\SetupComplete.cmd" (set error_=1) +exit /b + +:KMS38Prep2 + +If not exist "%_dir%\KMS38_Activation.cmd" (set error_=1) +If not exist "%_dir%\BIN\ClipUp.exe" (set error_=1) +If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1) +If not exist "%_dir%\BIN\slc.dll" (set error_=1) +If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1) +If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1) +If not exist "%_dir%\SetupComplete.cmd" (set error_=1) +exit /b + +:KMSPrep2 + +If not exist "%_dir%\Activate.cmd" (set error_=1) +If not exist "%_dir%\Renewal_Setup.cmd" (set error_=1) +If not exist "%_dir%\BIN\cleanosppx64.exe" (set error_=1) +If not exist "%_dir%\BIN\cleanosppx86.exe" (set error_=1) +If not exist "%_dir%\SetupComplete.cmd" (set error_=1) +exit /b + +::======================================================================================================================================== + +:: Extract the text from batch script without character and file encoding issue +:: Thanks to @abbodi1406 + +:export +%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::ASCII);" &exit/b + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/ReadMe.txt b/MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/ReadMe.txt new file mode 100644 index 0000000..ad122ab --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Extras/Extract_OEM_Folder/ReadMe.txt @@ -0,0 +1,123 @@ +==================================================================================================== + $OEM$ Folders [Windows Pre-Activation]: +==================================================================================================== + + - To create a Preactivated Windows installation .iso, do the following things: + Copy the "$OEM$" folder to the "sources" folder in the Windows installation media (.iso or USB). + The directory will appear like this: \sources\$OEM$ in your altered .iso or on your bootable + USB drive. + Now use this .iso or bootable USB drive to install Windows and it will either already be activated + (KMS38) as soon as it boots, or will self-activate at first internet contact. + +---------------------------------------------------------------------------------------------------- + HWID: +---------------------------------------------------------------------------------------------------- + + - When using Digital License (HWID), no files are stored on the system, and when connected to the + internet for the first time, the system will self-activate at that time. + +---------------------------------------------------------------------------------------------------- + KMS38: +---------------------------------------------------------------------------------------------------- + + - When using KMS38, no files are stored on the system, and Windows becomes activated immediately + without further actions or connectivity of any kind being required. + +---------------------------------------------------------------------------------------------------- + Online KMS (separately, or in combination with HWID or KMS38): +---------------------------------------------------------------------------------------------------- + + - It creates the following 2 Activation/Renewal Methods. You can turn off any of them in + setupcomplete.cmd file + + ---------------------------------------------------------- + + 1- Automatic Renewal via Task Scheduler--- + + It creates following files and tasks, + + Files: + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe + C:\ProgramData\Online_KMS_Activation\Activate.cmd + C:\ProgramData\Online_KMS_Activation\Info.txt + + Scheduled Tasks: + \Online_KMS_Activation_Script-Renewal (Weekly) + \Online_KMS_Activation_Script-Run_Once (Activation Task) + + The scheduled task runs only if the system is connected to the Internet. + Activation Task will run on the system login and after successful activation and registering + online KMS server, this task will delete itself. leaving behind only one task to run weekly + for the lifetime of the system. + + ---------------------------------------------------------- + + 2- Manual Renewal via Desktop Context Menu--- + + It creates Desktop context Menu for manual activation and renewal. + It creates the following files and registry entries. + + Files: + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe + C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe + C:\ProgramData\Online_KMS_Activation\Activate.cmd + C:\ProgramData\Online_KMS_Activation\Info.txt + + Registry entries: + HKCR\DesktopBackground\shell\Activate Windows - Office + HKCR\DesktopBackground\shell\Activate Windows - Office\command + + It creates an easy to reach the Desktop context menu for the manual activation renewal. + + ---------------------------------------------------------- + + d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66 + 39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66 + + Virus Total Report Date: 12-11-2019 + + These files are official Microsoft files and in this script, these are used in + cleaning office license in C2R Retail office to VL conversion process. + + The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab + You can get the original file here https://s.put.re/WFuXpyWA.zip + + ---------------------------------------------------------- + + IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not + because of KMS, because for them it's suspicious to run long scripts in the background as Tasks. + + It's recommended to set exclusions in Antivirus for + C:\ProgramData\Online_KMS_Activation\Activate.cmd + + ---------------------------------------------------------- + + - When using Online KMS plus HWID Digital License, Online KMS script will be set to skip Windows + activation (if the HWID activation was applied but was not successful due to lack of internet + at the time of installation of Windows) but will register the KMS for other products, and all + later installed Volume License (VL) products (MS Office) will self-activate when going online. + + - When using Online KMS plus KMS38, Online KMS will not skip Windows activation but skip KMS38 + activation and will register the KMS for other products, and all subsequently-installed Volume + License (VL) products (MS Office) will self-activate when going online. + +---------------------------------------------------------------------------------------------------- + HWID (Fallback to KMS38): +---------------------------------------------------------------------------------------------------- + + - In this method, KMS38 will be used for the activation in case the Windows version is not + supported by HWID. For example, Windows 10 LTSC and Windows server. + +---------------------------------------------------------------------------------------------------- + Activation Type Supported Product Activation Period +---------------------------------------------------------------------------------------------------- + + Digital License - Windows 10 - Permanent + KMS38 - Windows 10 / Server - Until the year 2038 + Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be + created for lifetime auto-activation. + +---------------------------------------------------------------------------------------------------- + + * For more details, use the ReadMe.txt included in the respective activation folders. \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/Protect_Unprotect-KMS38.cmd b/MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/Protect_Unprotect-KMS38.cmd new file mode 100644 index 0000000..a35fee2 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/Protect_Unprotect-KMS38.cmd @@ -0,0 +1,412 @@ +@setlocal DisableDelayedExpansion +@echo off + + + + + +:: ======================================================================================================= +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: ======================================================================================================= + + + + + + + + + + + + + +::======================================================================================================================================== + +title Protect / Unprotect KMS38 Activation +set _elev= +if /i "%~1"=="-el" set _elev=1 +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "Red="white" "DarkRed"" +set "Green="white" "DarkGreen"" +set "Magenta="white" "darkmagenta"" +set "Gray="white" "darkgray"" +set "Black="white" "Black"" +set "ELine=echo: &call :PU_color "==== ERROR ====" %Red% &echo:" +set line=__________________________________________________________________________________________________ + +::======================================================================================================================================== + +for %%i in (powershell.exe) do if "%%~$path:i"=="" ( +echo: &echo ==== ERROR ==== &echo: +echo Powershell is not installed in the system. +echo Aborting... +goto PU_Done +) + +::======================================================================================================================================== + +if %winbuild% LSS 14393 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 10 / Server 1607 [14393] and later builds. +goto PU_Done +) + +::======================================================================================================================================== + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :Passed + ) || ( + if defined _elev goto :E_Admin +) + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el + +setlocal EnableDelayedExpansion + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :E_Admin +) +) +exit /b + +:E_Admin +%ELine% +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +goto PU_Done + +:Passed + +::======================================================================================================================================== + +mode con: cols=98 lines=30 + +set slp=SoftwareLicensingProduct +set sls=SoftwareLicensingService +set wApp=55c92734-d682-4d71-983e-d6ec3f16059f +set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" + +:: Fix for the special characters limitation in path name +:: Written by @abbodi1406 + +set "_batf=%~f0" +set "_batp=%_batf:'=''%" + +setlocal EnableDelayedExpansion + +:: Check Windows OS name + +set winos= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" +if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" + +::======================================================================================================================================== + +cls +echo: +echo %line% +echo: +echo [1] Protect KMS38 Activation from being overwritten by 180 days KMS Activators +echo: +echo [2] Undo changes +echo: +echo [3] Exit +echo: +echo %line% +echo: +choice /C:123 /N /M "> Enter Your Choice [1,2,3] : " + +if errorlevel 3 exit /b +if errorlevel 2 goto Undo +if errorlevel 1 goto Protect + +::======================================================================================================================================== + +:Protect + +cls + +:: Check KMS client setup key + +set _gvlk= +wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _gvlk=1) + +if not defined _gvlk ( +%ELine% +echo System is not activated with KMS38. ^(KMS Key is not installed^) Aborting... +goto PU_Done +) + +:: Check Activation Grace Period + +set gpr= +for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#" + +if "%gpr%" LEQ "259200" ( +%ELine% +echo System is not activated with KMS38. Aborting... +goto PU_Done +) + +:: Check SKU value + +set SKU= +for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) +if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) + +if "%osSKU%"=="" ( +%ELine% +echo SKU value was not detected properly. Aborting... +goto PU_Done +) + +:: Check Windows Edition with SKU value for better accuracy + +set osedition= +call :K38_CheckEdition %nul% + +if "%osedition%"=="" ( +%ELine% +echo OS Edition was not detected properly. Aborting... +goto PU_Done +) + +:: Check Activation ID + +set app= +for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a" + +if "%app%"=="" ( +%ELine% +echo Activation ID was not detected properly. Aborting... +goto PU_Done +) + +::======================================================================================================================================== + +wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServiceMachine %nul% +wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServicePort %nul% + +reg query "HKLM\%SPPk%\%wApp%" %nul% && ( +%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544 +reg delete "HKLM\%SPPk%\%wApp%" /f %nul% +reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% +) + +reg query "HKLM\%SPPk%\%wApp%" %nul% && ( +%ELine% +echo Registry Key was not cleared successfully. Aborting... +goto PU_Done +) + +:: Set specific KMS host to Local Host +:: Thanks to @abbodi1406 + +set setkms_error= + +wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1) +wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1) +wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1) +wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1) + +if defined setkms_error ( +reg delete "HKLM\%SPPk%\%wApp%" /f %nul% +reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% +%ELine% +echo Specific KMS host to Local Host was not properly applied. Aborting... +goto PU_Done +) + +%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" "SetValue, Delete" Deny S-1-5-32-544 + +reg delete "HKLM\%SPPk%\%wApp%" /f %nul% +reg query "HKLM\%SPPk%\%wApp%" %nul% || ( +%ELine% +echo Registry Key was not protected properly. Aborting... +goto PU_Done +) + +:: Check Activation Grace Period + +set gpr= +for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#" + +if "%gpr%" LEQ "259200" ( +%ELine% +echo System is not activated with KMS38. +goto PU_Done +) + +cls +echo: +echo %line% +echo: +echo Specific KMS host set to 127.0.0.2 ^(Local Host^) successfully. +echo: +echo Registry item locked successfully. +echo HKLM\%SPPk%\%wApp% +echo: +call :PU_color "%winos% - KMS38 Activation is now protected." %Green% +echo: +echo Now you need to activate Office with KMS ^(If required^) +echo: +echo %line% + +goto PU_Done + +::======================================================================================================================================== + +:Undo + +cls +set exist_= +reg query "HKLM\%SPPk%\%wApp%" %nul% && (set exist_=1) + +if defined exist_ ( +%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544 +reg delete "HKLM\%SPPk%\%wApp%" /f %nul% +reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% +) + +reg query "HKLM\%SPPk%\%wApp%" %nul% && ( +%ELine% +echo Registry Key was not cleared successfully. Aborting... +goto PU_Done +) + +echo: +echo %line% +echo: +if defined exist_ ( +echo Registry item deleted successfully. +echo HKLM\%SPPk%\%wApp% +echo: +call :PU_color "KMS38 Activation is now unprotected [set to default]" %Green% +) else ( +call :PU_color "It is already unprotected [set to default]" %Green% +) +echo: +echo %line% + +::======================================================================================================================================== + +:PU_Done +echo: +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== + +:PU_color + +%_psc% write-host '%1' -fore '%2' -back '%3' +exit /b + +::======================================================================================================================================== + +:: Check Windows Edition with SKU value for better accuracy + +:K38_CheckEdition + +for %%# in ( +4-Enterprise +7-ServerStandard +8-ServerDatacenter +27-EnterpriseN +48-Professional +49-ProfessionalN +50-ServerSolution +98-CoreN +99-CoreCountrySpecific +100-CoreSingleLanguage +101-Core +110-ServerCloudStorage +120-ServerARM64 +121-Education +122-EducationN +125-EnterpriseS +126-EnterpriseSN +145-ServerDatacenterACor +146-ServerStandardACor +161-ProfessionalWorkstation +162-ProfessionalWorkstationN +164-ProfessionalEducation +165-ProfessionalEducationN +168-ServerAzureCor +171-EnterpriseG +172-EnterpriseGN +175-ServerRdsh +183-CloudE +) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( +if %osSKU%==%%A set "osedition=%%B" +) +exit /b + +::======================================================================================================================================== + +:: Reg_takeownership snippet +:: Written by @AveYo aka @BAU +:: pastebin.com/XTPt0JSC + +:reg_takeownership +set "pargs=$regkey='%~1'; $p='%~2'; $a='%~3'; $u='%~4'; $o='%~5';" +%_psc% "%pargs%; $f=[io.file]::ReadAllText('!_batp!') -split ':ps_reg_own\:.*';iex ($f[1]);" & exit/b:ps_reg_own: +$dll0='[DllImport("ntdll.dll")]public static extern IntPtr RtlAdjustPrivilege(int a,bool b,bool c,ref bool d);'; +$nt=Add-Type -Member $dll0 -Name Nt -PassThru; foreach($i in @(9,17,18)){$null=$nt::RtlAdjustPrivilege($i,1,0,[ref]0)} +$root=$true; if($o -eq ''){$o=$u}; $rk=$regkey -split '\\',2; $key=$rk[1]; +switch -regex ($rk[0]){ '[mM]'{$HK='LocalMachine'};'[uU]'{$HK='CurrentUser'};default{$HK='ClassesRoot'}; } +$usr=0,0,0; $sec=0,0,0; $rule=0,0,0; $perm='FullControl',$p,$p; $access='Allow',$a,$a; $s=$o,$u,'S-1-5-32-544'; +for($i=0;$i -le 2;$i++){ $usr[$i]=[System.Security.Principal.SecurityIdentifier]$s[$i]; +$rule[$i]=[System.Security.AccessControl.RegistryAccessRule]::new($usr[$i], $perm[$i], 3, 0, $access[$i]); +$sec[$i]=[System.Security.AccessControl.RegistrySecurity]::new(); } +function Reg_TakeOwnership { param($hive, $key, $root=$false); +$reg=[Microsoft.Win32.Registry]::$hive.OpenSubKey($key,'ReadWriteSubTree','TakeOwnership'); $sec[2].SetOwner($usr[2]); +$reg.SetAccessControl($sec[2]); if($root){ $reg=$reg.OpenSubKey('','ReadWriteSubTree','ChangePermissions'); +$acl=$reg.GetAccessControl(); $acl.SetAccessRuleProtection($false,$false); $acl.ResetAccessRule($rule[1]); +$reg.SetAccessControl($acl); } $sec[0].SetOwner($usr[0]); $reg.SetAccessControl($sec[0]); } +Reg_TakeOwnership $HK $key $true; if($root){ $r=[Microsoft.Win32.Registry]::$HK.OpenSubKey($key); +foreach($sk in $r.GetSubKeyNames()){try{ Reg_TakeOwnership $HK "$($key+'\\'+$sk)" $false}catch{} }} +Get-Acl "$($rk[0]+':\\'+$rk[1])" | fl:ps_reg_own: + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/ReadMe.txt b/MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/ReadMe.txt new file mode 100644 index 0000000..0d2f7b2 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Extras/KMS38_Protection/ReadMe.txt @@ -0,0 +1,48 @@ +==================================================================================================== + KMS38 Protection: +==================================================================================================== + + - If you don't know what KMS38 is, then first check it in the Read Me. + + - By default, a KMS38 Activation is vulnerable to unintended overwriting/replacement and + neutralization by a 180-Day KMS Activator (non-KMS38 Activator). + However, with a few tricks you can ensure that no alternative KMS Activator can replace KMS38 + Activation by accident or even on purpose. This script demonstrate how to do/undo that. + + - Protect KMS38: + - How does KMS38 Protection work? + In the KMS activation method, the Windows Operating System first checks the KMS IP registered + as a specific KMS, and if that is not defined then it checks the Global KMS IP. + Another fact is that if LocalHost (127.0.0.2) is defined as KMS IP in the Windows 8.1 and 10 OS's + then Windows will not accept it as a valid KMS IP. + This script simply utilizes the above facts to protect the KMS38 activation from being + overwritten by any alternative 'normal' 180-Day KMS Activation. + + Script steps- + - Check if Windows is activated with KMS38, if yes, + - Set that Windows edition specific KMS IP to LocalHost (127.0.0.2), +HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX +where X is Windows edition Activation ID. + + - Lock this Registry with Reg_takeownership snippet by @AveYo aka @BAU + pastebin.com/XTPt0JSC + - Done. + + - Unprotect KMS38: + - Just undo above steps, + - Give administrator full control of that mentioned registry key. + - Delete that registry key. + - Done. + +======================================================================================================= + + This script is a part of 'Microsoft Activation Scripts' project. + + Homepages- + NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ + GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts + GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts + + Maintained by @WindowsAddict + +======================================================================================================= \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Extras/OEMRET-Change_W10_Edition.cmd b/MAS_1.3/Separate-Files-Version/Extras/OEMRET-Change_W10_Edition.cmd new file mode 100644 index 0000000..4249bf5 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Extras/OEMRET-Change_W10_Edition.cmd @@ -0,0 +1,291 @@ +@setlocal DisableDelayedExpansion +@echo off + + + + + +:: ======================================================================================================= +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: ======================================================================================================= + + + + + + + + + + + + + +::======================================================================================================================================== + +cls +title Change Windows 10 Edition with Retail/OEM Key +set _elev= +if /i "%~1"=="-el" set _elev=1 +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "ELine=echo: &echo ==== ERROR ==== &echo:" + +::======================================================================================================================================== + +if %winbuild% LSS 17134 ( +%ELine% +echo Unsupported OS version Detected. +echo OS Requirement - Windows 10 [17134] 1803 and later builds. +goto Ced_Done +) + +::======================================================================================================================================== + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :Passed + ) || ( + if defined _elev goto :E_Admin +) + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el + +setlocal EnableDelayedExpansion + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :E_Admin +) +) +exit /b + +:E_Admin +%ELine% +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +goto Ced_Done + +:Passed + +::======================================================================================================================================== + +:: Set buffer height independently of window height +:: https://stackoverflow.com/a/13351373 +:: Written by @dbenham + +mode con: cols=98 lines=31 +%nul% %_psc% "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.height=36;$W.buffersize=$B;}" + +::======================================================================================================================================== + +set slp=SoftwareLicensingProduct +set sls=SoftwareLicensingService +set wApp=55c92734-d682-4d71-983e-d6ec3f16059f +setlocal EnableDelayedExpansion + +:: Check Installation type +set instype= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b" + +if not "%instype%"=="Client" ( +%ELine% +echo Unsupported OS version [Server] Detected. +echo OS Requirement - Windows 10 [17134] 1803 and later builds. +goto Ced_Done +) + +:: Check Windows Edition +set osedition= +for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a" +if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a" + +cls +if "%osedition%"=="" ( +%ELine% +echo OS Edition was not detected properly. Aborting... +goto Ced_Done +) + +::======================================================================================================================================== + +echo _______________________________________________________________________________________________ +echo: +echo Note 1 - This script can not change 'Core'(Home) to 'Non-Core' (Pro) Editions. +echo You'll have to do the above manually, Follow these steps. +echo - Disable internet. +echo - Go to Settings ^> Update ^& Security ^> Activation and +echo Insert 'Pro' Edition Product Key VK7JG-NPHTM-C97JM-9MPGT-3V66T +echo - Follow on screen instructions, Done. +echo: +echo Note 2 - Following option works only in W10 17134 (RS4) and later builds. +echo _______________________________________________________________________________________________ +echo: +echo You can change the Current Edition '%osedition%' to one of the following : +echo _______________________________________________________________________________________________ + +REM Thanks to @RPO for the help in codes + +echo: +for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do echo %%a +echo: +choice /C:21 /N /M "[1] Continue [2] Exit : " +if %errorlevel%==1 exit /b +echo: + +for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do ( + +choice /C:NY /N /M "Do you want to change to the %%a edition? [Y,N] : " +if errorlevel 2 ( + +call :%%a %nul% +if "!key!"=="" cls &%ELine% &echo [%%a ^| %winbuild%] HWID Activation is Not Supported. &goto Ced_Done + +cls +echo ____________________________________________________________________ + +REM Thanks to @abbodi1406 for the WMI methods + +echo: +echo Changing the Edition to Windows 10 %%a +wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="!key!" %nul% && ( +for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" +wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% +echo: +call echo Installing %%_channel%% Key [!key!] +echo [Successful] +echo: +echo Reboot is required to properly change the Edition. +) || ( +%ELine% +echo Installing Retail/OEM Key [!key!] +echo [Unsuccessful] +) +echo ____________________________________________________________________ + +goto Ced_Done +)) + +::======================================================================================================================================== + +:Ced_Done + +echo: +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== + +:: Retail_OEM Key List + +:Core +set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7" +exit /b + +:CoreCountrySpecific +set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD" +exit /b + +:CoreN +set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW" +exit /b + +:CoreSingleLanguage +set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT" +exit /b + +:Education +set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY" +exit /b + +:EducationN +set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H" +exit /b + +:Enterprise +set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C" +exit /b + +:EnterpriseN +set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT" +exit /b + +:EnterpriseS +if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW" +if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX" +exit /b + +:EnterpriseSN +if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K" +if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4" +exit /b + +:Professional +set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T" +exit /b + +:ProfessionalEducation +set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB" +exit /b + +:ProfessionalEducationN +set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P" +exit /b + +:ProfessionalN +set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT" +exit /b + +:ProfessionalWorkstation +set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77" +exit /b + +:ProfessionalWorkstationN +set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ" +exit /b + +:ServerRdsh +set "key=NJCF7-PW8QT-3324D-688JX-2YV66" +exit /b + +:IoTEnterprise +set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD" +exit /b + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Extras/OEMRET-Install_W10_Key.cmd b/MAS_1.3/Separate-Files-Version/Extras/OEMRET-Install_W10_Key.cmd new file mode 100644 index 0000000..8766fe3 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Extras/OEMRET-Install_W10_Key.cmd @@ -0,0 +1,322 @@ +@setlocal DisableDelayedExpansion +@echo off + +:: For unattended mode, run the script with /u parameter. + + + + + +:: ======================================================================================================= +:: +:: This script is a part of 'Microsoft Activation Scripts' project. +:: +:: Homepages- +:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ +:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts +:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts +:: +:: Maintained by @WindowsAddict +:: +:: ======================================================================================================= + + + + + + + + + + + +::======================================================================================================================================== + +cls +title Install Windows 10 Retail/OEM Key +set Unattended= +set _args= +set _elev= +set "_arg1=%~1" +if not defined _arg1 goto :NoProgArgs +set "_args=%~1" +set "_arg2=%~2" +if defined _arg2 set "_args=%~1 %~2" +for %%A in (%_args%) do ( +if /i "%%A"=="-el" set _elev=1 +if /i "%%A"=="/u" set Unattended=1) +:NoProgArgs +for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G +set "_psc=powershell -nop -ep bypass -c" +set "nul=1>nul 2>nul" +set "ELine=echo: &echo ==== ERROR ==== &echo:" + +::======================================================================================================================================== + +if %winbuild% LSS 10240 ( +%ELine% +echo Unsupported OS version Detected. +echo Project is supported only for Windows 10. +goto Ins_Done +) + +::======================================================================================================================================== + +:: Elevate script as admin and pass arguments and preventing loop +:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. +:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. + +%nul% reg query HKU\S-1-5-19 && ( + goto :Passed + ) || ( + if defined _elev goto :E_Admin +) + +set "_batf=%~f0" +set "_vbsf=%temp%\admin.vbs" +set _PSarg="""%~f0""" -el +if defined _args set _PSarg="""%~f0""" -el """%_args%""" + +setlocal EnableDelayedExpansion + +( +echo Set strArg=WScript.Arguments.Named +echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) +echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) +echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then +echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) +echo End If +echo End With +echo .Terminate +echo End With +echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 +)>"!_vbsf!" + +(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( +del /f /q "!_vbsf!" +exit /b +) || ( +del /f /q "!_vbsf!" +%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( +exit /b +) || ( +goto :E_Admin +) +) +exit /b + +:E_Admin +%ELine% +echo This script require administrator privileges. +echo To do so, right click on this script and select 'Run as administrator'. +goto Ins_Done + +:Passed + +mode con: cols=98 lines=30 +setlocal EnableDelayedExpansion + +::======================================================================================================================================== + +:: Check Windows OS name + +set winos= +for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" +if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" + +:: Check SKU value + +set SKU= +for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) +if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) + +if "%osSKU%"=="" ( +%ELine% +echo SKU value was not detected properly. Aborting... +goto Ins_Done +) + +:: Check Windows Edition with SKU value for better accuracy + +set osedition= +call :CheckEdition %nul% + +if "%osedition%"=="" ( +%ELine% +echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported. +goto Ins_Done +) + +set key= +call :%osedition% %nul% + +if "%key%"=="" ( +%ELine% +echo [%winos% ^| %winbuild%] HWID Activation is Not Supported. +goto Ins_Done +) + +::======================================================================================================================================== + +if defined Unattended goto ContinueKeyInsert + +cls +echo ___________________________________________________________________________________________ +echo: +echo Install [%winos% ^| %winbuild%] Retail/OEM Key +echo [%key%] +echo ___________________________________________________________________________________________ +echo: +choice /C:12 /N /M "[1] Continue [2] Exit : " + +if errorlevel 2 exit /b +if errorlevel 1 goto ContinueKeyInsert + +:ContinueKeyInsert + +cls +echo ___________________________________________________________________________________________ + +:: Thanks to @abbodi1406 for the WMI methods + +set slp=SoftwareLicensingProduct +set sls=SoftwareLicensingService +set wApp=55c92734-d682-4d71-983e-d6ec3f16059f + +wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && ( +for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" +wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% +echo: +echo [%winos% ^| %winbuild%] +call echo Installing %%_channel%% Key [%key%] +echo [Successful] +) || ( +%ELine% +echo Installing Retail/OEM Key [%key%] +echo [Unsuccessful] +) +echo ___________________________________________________________________________________________ + +::======================================================================================================================================== + +:Ins_Done +echo: +if defined Unattended ( +echo Exiting in 3 seconds... +if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) +exit /b +) +echo Press any key to exit... +pause >nul +exit /b + +::======================================================================================================================================== + +:: Check Windows Edition with SKU value for better accuracy + +:CheckEdition + +for %%# in ( +4-Enterprise +27-EnterpriseN +48-Professional +49-ProfessionalN +98-CoreN +99-CoreCountrySpecific +100-CoreSingleLanguage +101-Core +121-Education +122-EducationN +125-EnterpriseS +126-EnterpriseSN +161-ProfessionalWorkstation +162-ProfessionalWorkstationN +164-ProfessionalEducation +165-ProfessionalEducationN +175-ServerRdsh +188-IoTEnterprise +) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( +if %osSKU%==%%A set "osedition=%%B" +) +exit /b + +::======================================================================================================================================== + +:: Retail/OEM Key List + +:Core +set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7" +exit /b + +:CoreCountrySpecific +set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD" +exit /b + +:CoreN +set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW" +exit /b + +:CoreSingleLanguage +set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT" +exit /b + +:Education +set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY" +exit /b + +:EducationN +set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H" +exit /b + +:Enterprise +set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C" +exit /b + +:EnterpriseN +set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT" +exit /b + +:EnterpriseS +if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW" +if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX" +exit /b + +:EnterpriseSN +if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K" +if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4" +exit /b + +:Professional +set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T" +exit /b + +:ProfessionalEducation +set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB" +exit /b + +:ProfessionalEducationN +set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P" +exit /b + +:ProfessionalN +set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT" +exit /b + +:ProfessionalWorkstation +set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77" +exit /b + +:ProfessionalWorkstationN +set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ" +exit /b + +:ServerRdsh +set "key=NJCF7-PW8QT-3324D-688JX-2YV66" +exit /b + +:IoTEnterprise +set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD" +exit /b + +::======================================================================================================================================== \ No newline at end of file diff --git a/MAS_1.3/Separate-Files-Version/Homepages.cmd b/MAS_1.3/Separate-Files-Version/Homepages.cmd new file mode 100644 index 0000000..bdb31bd --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/Homepages.cmd @@ -0,0 +1,4 @@ +@echo off +start https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ &:: Login required +start https://gitlab.com/massgrave/microsoft-activation-scripts +start https://github.com/massgravel/Microsoft-Activation-Scripts diff --git a/MAS_1.3/Separate-Files-Version/checksums.sha1 b/MAS_1.3/Separate-Files-Version/checksums.sha1 new file mode 100644 index 0000000..4e97a29 --- /dev/null +++ b/MAS_1.3/Separate-Files-Version/checksums.sha1 @@ -0,0 +1,31 @@ +Use the tool 'HashCheck' to compare hashes. +https://github.com/gurnec/HashCheck/releases/latest + +9d5b4b3e761cca9531d64200dfbbfa0dec94f5b0 *Activators\Online_KMS_Activation\BIN\_Info.txt +c1a44a54b4d53092de243d3af068fdbbda3c27de *Activators\Online_KMS_Activation\Renewal_Setup.cmd +502d0705dcb06900ca3700271bc33eb3fdc83769 *Activators\Online_KMS_Activation\Uninstall.cmd +2ca8daf456c858d58d51d20ccf6857da7460bcae *Activators\Online_KMS_Activation\_ReadMe.txt +68de64a326cdf1b0336c2ecd42a62fec8e7110f2 *Activators\ReadMe.txt +8b81e4db09cf7800d678b0ff8569df7c8ca278f1 *Extras\Download_Genuine_Installation_Media.url +ba656804fd4c58dbf34b0b195a00d14cf84a790e *Extras\Extract_OEM_Folder\Extract_OEM_Folder.cmd +1fd8374d9cad3b71b69162adbad4eab009ceb029 *Activators\Check_Activation_Status.cmd +6c0697f17d1a7d8589eaaf37a4275fa745615f30 *Extras\Extract_OEM_Folder\ReadMe.txt +b5b0f7c0bc677d4ca381e41cccf06e8ee6f97f00 *Extras\KMS38_Protection\Protect_Unprotect-KMS38.cmd +a8443a4aa8d1956ea893557e18b3d8ec8056269f *Extras\KMS38_Protection\ReadMe.txt +578364cb2319da7999acd8c015b4ce8da8f1b282 *Activators\HWID-KMS38_Activation\BIN\ARM64_gatherosstate.exe +5dbea3a580cf60391453a04a5c910a3ceca2b810 *Activators\HWID-KMS38_Activation\BIN\ARM64_slc.dll +48d928b1bec25a56fe896c430c2c034b7866aa7a *Activators\HWID-KMS38_Activation\BIN\ClipUp.exe +fabb5a0fc1e6a372219711152291339af36ed0b5 *Activators\HWID-KMS38_Activation\BIN\gatherosstate.exe +ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *Activators\HWID-KMS38_Activation\BIN\slc.dll +be0392be7ee0a78c7d1e8903cd29ea76cbafe201 *Activators\HWID-KMS38_Activation\BIN\_Info.txt +5786bd332d1e08ed8a8bd264f7f085ff83aec778 *Activators\HWID-KMS38_Activation\HWID_Activation.cmd +497300df6bcf4bc64cc4065cd81a856fb54a3851 *Activators\HWID-KMS38_Activation\KMS38_Activation.cmd +bd37bf2122cc34f3680bbf17e89e8634b3654661 *Activators\HWID-KMS38_Activation\ReadMe_HWID.txt +a53371e73405ba9c1c4fa6a29c604bf3b954117c *Activators\HWID-KMS38_Activation\ReadMe_KMS38.txt +2898e59d908fd2ff38cc1b57f0ce453f2250b8af *Activators\Online_KMS_Activation\Activate.cmd +d30a0e4e5911d3ca705617d17225372731c770e2 *Activators\Online_KMS_Activation\BIN\cleanosppx64.exe +39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *Activators\Online_KMS_Activation\BIN\cleanosppx86.exe +86748a866ebd11766fe71ff12b63d2525d6f28be *Extras\OEMRET-Change_W10_Edition.cmd +9838babe8091dad9574be5606fe88618b85dca3a *Extras\OEMRET-Install_W10_Key.cmd +b470dc10afa63feebc1d8c1249b59f0a299026a6 *Credits.txt +36075a49f50c915b3878f60460a3bb0301f3b257 *Homepages.cmd -- cgit v1.2.3