Windows_Addict
5 years ago
commit
d076838483
30 changed files with 32692 additions and 0 deletions
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,226 @@ |
|||||||
|
@setlocal DisableDelayedExpansion |
||||||
|
@echo off |
||||||
|
@cls |
||||||
|
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 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,44 @@ |
|||||||
|
==================================================================================================== |
||||||
|
File Details: |
||||||
|
==================================================================================================== |
||||||
|
|
||||||
|
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/68 |
||||||
|
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 1/67 |
||||||
|
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/70 |
||||||
|
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/69 |
||||||
|
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/67 |
||||||
|
|
||||||
|
Virus Total Report Date: 08-12-2019 |
||||||
|
|
||||||
|
- 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://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. |
||||||
|
|
||||||
|
==================================================================================================== |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,746 @@ |
|||||||
|
@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://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/ |
||||||
|
:: 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 |
||||||
|
) |
||||||
|
|
||||||
|
start /wait "" "%temp_%/%_gather%" %nul% |
||||||
|
if not exist "%temp_%\GenuineTicket.xml" ( |
||||||
|
call "%temp_%/%_gather%" %nul% |
||||||
|
) |
||||||
|
|
||||||
|
set "GenTicket=Generating GenuineTicket.xml " |
||||||
|
if not exist "%temp_%\GenuineTicket.xml" ( |
||||||
|
call :DL_color "%GenTicket% [Unsuccessful] Aborting..." %Red% |
||||||
|
goto :DL_Act_Cont |
||||||
|
) else ( |
||||||
|
echo %GenTicket% [Successful] |
||||||
|
) |
||||||
|
|
||||||
|
:: clipup -v -o -altto <Ticket path> 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 |
||||||
|
) |
||||||
|
|
||||||
|
%_psc% Restart-Service ClipSVC %nul% |
||||||
|
|
||||||
|
if exist "%TDir%\GenuineTicket.xml" ( |
||||||
|
net stop ClipSVC %nul% |
||||||
|
net start ClipSVC %nul% |
||||||
|
) |
||||||
|
|
||||||
|
if exist "%TDir%\GenuineTicket.xml" ( |
||||||
|
%nul% clipup -v -o |
||||||
|
set "fallback_=[Fallback method: clipup -v -o]" |
||||||
|
) |
||||||
|
|
||||||
|
if not exist "%TDir%\GenuineTicket.xml" ( |
||||||
|
echo %InsTicket% [Successful] %fallback_% |
||||||
|
) else ( |
||||||
|
call :DL_color "%InsTicket% [Unsuccessful] Aborting..." %Red% |
||||||
|
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% |
||||||
|
goto :DL_Act_Cont |
||||||
|
) |
||||||
|
|
||||||
|
::======================================================================================================================================== |
||||||
|
|
||||||
|
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 |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -0,0 +1,868 @@ |
|||||||
|
@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://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/ |
||||||
|
:: 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 *.* |
||||||
|
|
||||||
|
::======================================================================================================================================== |
||||||
|
|
||||||
|
start /wait "" "%temp_%/gatherosstate.exe" %nul% |
||||||
|
if not exist "%temp_%\GenuineTicket.xml" ( |
||||||
|
call "%temp_%/gatherosstate.exe" %nul% |
||||||
|
) |
||||||
|
|
||||||
|
set "GenTicket=Generating GenuineTicket.xml " |
||||||
|
if not exist "%temp_%\GenuineTicket.xml" ( |
||||||
|
call :K38_color "%GenTicket% [Unsuccessful] Aborting..." %Red% |
||||||
|
goto K38_Act_Cont |
||||||
|
) else ( |
||||||
|
echo %GenTicket% [Successful] |
||||||
|
) |
||||||
|
|
||||||
|
:: clipup -v -o -altto <Ticket path> 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 |
||||||
|
) |
||||||
|
|
||||||
|
%_psc% Restart-Service ClipSVC %nul% |
||||||
|
|
||||||
|
if exist "%TDir%\GenuineTicket.xml" ( |
||||||
|
net stop ClipSVC %nul% |
||||||
|
net start ClipSVC %nul% |
||||||
|
) |
||||||
|
|
||||||
|
if exist "%TDir%\GenuineTicket.xml" ( |
||||||
|
%nul% clipup -v -o |
||||||
|
set "fallback_=[Fallback method: clipup -v -o]" |
||||||
|
) |
||||||
|
|
||||||
|
if not exist "%TDir%\GenuineTicket.xml" ( |
||||||
|
echo %InsTicket% [Successful] %fallback_% |
||||||
|
) else ( |
||||||
|
call :K38_color "%InsTicket% [Unsuccessful] Aborting..." %Red% |
||||||
|
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% |
||||||
|
goto K38_Act_Cont |
||||||
|
) |
||||||
|
|
||||||
|
::======================================================================================================================================== |
||||||
|
|
||||||
|
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 |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -0,0 +1,332 @@ |
|||||||
|
==================================================================================================== |
||||||
|
[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 |
||||||
|
|
||||||
|
==================================================================================================== |
||||||
|
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/68 |
||||||
|
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 1/67 |
||||||
|
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/70 |
||||||
|
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/69 |
||||||
|
|
||||||
|
Virus Total Report Date: 08-12-2019 |
||||||
|
|
||||||
|
- File Sources: |
||||||
|
|
||||||
|
- 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://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. |
||||||
|
|
||||||
|
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 <ticket_path>] 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://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/ |
||||||
|
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. |
||||||
|
|
||||||
|
========================================================================================================= |
@ -0,0 +1,350 @@ |
|||||||
|
==================================================================================================== |
||||||
|
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 |
||||||
|
|
||||||
|
==================================================================================================== |
||||||
|
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/68 |
||||||
|
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 1/67 |
||||||
|
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/70 |
||||||
|
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/69 |
||||||
|
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/67 |
||||||
|
|
||||||
|
Virus Total Report Date: 08-12-2019 |
||||||
|
|
||||||
|
- 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://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://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/ |
||||||
|
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. |
||||||
|
|
||||||
|
========================================================================================================= |
File diff suppressed because it is too large
Load Diff
@ -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 |
||||||
|
|
||||||
|
==================================================================================================== |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,652 @@ |
|||||||
|
@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/ |
||||||
|
:: 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 |
||||||
|
Homepage: https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ |
||||||
|
|
||||||
|
==================================================================================================== |
||||||
|
:info: |
||||||
|
|
||||||
|
:renewal: |
||||||
|
<?xml version="1.0" encoding="UTF-16"?> |
||||||
|
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> |
||||||
|
<RegistrationInfo> |
||||||
|
<Source>Microsoft Corporation</Source> |
||||||
|
<Date>1999-01-01T12:00:00.34375</Date> |
||||||
|
<Author>RPO/WindowsAddict</Author> |
||||||
|
<Version>1.0</Version> |
||||||
|
<Description>Online_KMS_Activation_Script-Renewal - Weekly Activation Renewal Task</Description> |
||||||
|
<URI>\Online_KMS_Activation_Script-Renewal</URI> |
||||||
|
<SecurityDescriptor>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)</SecurityDescriptor> |
||||||
|
</RegistrationInfo> |
||||||
|
<Triggers> |
||||||
|
<CalendarTrigger> |
||||||
|
<StartBoundary>1999-01-01T12:00:00</StartBoundary> |
||||||
|
<Enabled>true</Enabled> |
||||||
|
<ScheduleByWeek> |
||||||
|
<DaysOfWeek> |
||||||
|
<Sunday /> |
||||||
|
</DaysOfWeek> |
||||||
|
<WeeksInterval>1</WeeksInterval> |
||||||
|
</ScheduleByWeek> |
||||||
|
</CalendarTrigger> |
||||||
|
</Triggers> |
||||||
|
<Principals> |
||||||
|
<Principal id="LocalSystem"> |
||||||
|
<UserId>S-1-5-18</UserId> |
||||||
|
<RunLevel>HighestAvailable</RunLevel> |
||||||
|
</Principal> |
||||||
|
</Principals> |
||||||
|
<Settings> |
||||||
|
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> |
||||||
|
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> |
||||||
|
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> |
||||||
|
<AllowHardTerminate>true</AllowHardTerminate> |
||||||
|
<StartWhenAvailable>true</StartWhenAvailable> |
||||||
|
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable> |
||||||
|
<IdleSettings> |
||||||
|
<StopOnIdleEnd>false</StopOnIdleEnd> |
||||||
|
<RestartOnIdle>false</RestartOnIdle> |
||||||
|
</IdleSettings> |
||||||
|
<AllowStartOnDemand>true</AllowStartOnDemand> |
||||||
|
<Enabled>true</Enabled> |
||||||
|
<Hidden>true</Hidden> |
||||||
|
<RunOnlyIfIdle>false</RunOnlyIfIdle> |
||||||
|
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> |
||||||
|
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine> |
||||||
|
<WakeToRun>false</WakeToRun> |
||||||
|
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit> |
||||||
|
<Priority>7</Priority> |
||||||
|
<RestartOnFailure> |
||||||
|
<Interval>PT2M</Interval> |
||||||
|
<Count>3</Count> |
||||||
|
</RestartOnFailure> |
||||||
|
</Settings> |
||||||
|
<Actions Context="LocalSystem"> |
||||||
|
<Exec> |
||||||
|
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command> |
||||||
|
<Arguments>Task</Arguments> |
||||||
|
</Exec> |
||||||
|
</Actions> |
||||||
|
</Task> |
||||||
|
:renewal: |
||||||
|
|
||||||
|
:run_once: |
||||||
|
<?xml version="1.0" encoding="UTF-16"?> |
||||||
|
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> |
||||||
|
<RegistrationInfo> |
||||||
|
<Source>Microsoft Corporation</Source> |
||||||
|
<Date>1999-01-01T12:00:00.34375</Date> |
||||||
|
<Author>RPO/WindowsAddict</Author> |
||||||
|
<Version>1.0</Version> |
||||||
|
<Description>Online_KMS_Activation_Script-Run_Once - Run and Delete itself on first Internet Contact</Description> |
||||||
|
<URI>\Online_KMS_Activation_Script-Run_Once</URI> |
||||||
|
<SecurityDescriptor>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)</SecurityDescriptor> |
||||||
|
</RegistrationInfo> |
||||||
|
<Triggers> |
||||||
|
<LogonTrigger> |
||||||
|
<Enabled>true</Enabled> |
||||||
|
</LogonTrigger> |
||||||
|
</Triggers> |
||||||
|
<Principals> |
||||||
|
<Principal id="LocalSystem"> |
||||||
|
<UserId>S-1-5-18</UserId> |
||||||
|
<RunLevel>HighestAvailable</RunLevel> |
||||||
|
</Principal> |
||||||
|
</Principals> |
||||||
|
<Settings> |
||||||
|
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> |
||||||
|
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> |
||||||
|
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> |
||||||
|
<AllowHardTerminate>true</AllowHardTerminate> |
||||||
|
<StartWhenAvailable>true</StartWhenAvailable> |
||||||
|
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable> |
||||||
|
<IdleSettings> |
||||||
|
<StopOnIdleEnd>false</StopOnIdleEnd> |
||||||
|
<RestartOnIdle>false</RestartOnIdle> |
||||||
|
</IdleSettings> |
||||||
|
<AllowStartOnDemand>true</AllowStartOnDemand> |
||||||
|
<Enabled>true</Enabled> |
||||||
|
<Hidden>true</Hidden> |
||||||
|
<RunOnlyIfIdle>false</RunOnlyIfIdle> |
||||||
|
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> |
||||||
|
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine> |
||||||
|
<WakeToRun>false</WakeToRun> |
||||||
|
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit> |
||||||
|
<Priority>7</Priority> |
||||||
|
<RestartOnFailure> |
||||||
|
<Interval>PT2M</Interval> |
||||||
|
<Count>3</Count> |
||||||
|
</RestartOnFailure> |
||||||
|
</Settings> |
||||||
|
<Actions Context="LocalSystem"> |
||||||
|
<Exec> |
||||||
|
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command> |
||||||
|
<Arguments>Task</Arguments> |
||||||
|
</Exec> |
||||||
|
</Actions> |
||||||
|
</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 |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -0,0 +1,263 @@ |
|||||||
|
@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/ |
||||||
|
:: 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 |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -0,0 +1,655 @@ |
|||||||
|
==================================================================================================== |
||||||
|
|
||||||
|
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/ |
||||||
|
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/ |
||||||
|
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts |
||||||
|
|
||||||
|
Maintained by @WindowsAddict |
||||||
|
|
||||||
|
==================================================================================================== |
@ -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. |
@ -0,0 +1,129 @@ |
|||||||
|
==================================================================================================== |
||||||
|
Credits: |
||||||
|
==================================================================================================== |
||||||
|
|
||||||
|
Microsoft Activation Scripts (MAS): |
||||||
|
|
||||||
|
It is a collection of scripts for activating Microsoft products, these scripts are mostly a fork |
||||||
|
of other honourable developer's tools and scripts. |
||||||
|
|
||||||
|
This project consists of the following three activation methods: |
||||||
|
|
||||||
|
* HWID Activation - Windows 10 |
||||||
|
* KMS38 Activation - Windows 10 /Server |
||||||
|
* Online KMS Activation - Windows /Server /Office |
||||||
|
|
||||||
|
The primary focus of this project is the following features: |
||||||
|
|
||||||
|
* Open-source. |
||||||
|
* Batch scripts for better transparency. |
||||||
|
* Clean from antivirus detections (*As much as possible, but it's not completely clean). |
||||||
|
* Easy to use. |
||||||
|
|
||||||
|
Homepages:- |
||||||
|
Discussion Forum: https://www.nsaneforums.com/topic/316668-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://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. |
||||||
|
|
||||||
|
==================================================================================================== |
@ -0,0 +1,6 @@ |
|||||||
|
[{000214A0-0000-0000-C000-000000000046}] |
||||||
|
Prop3=19,11 |
||||||
|
[InternetShortcut] |
||||||
|
IDList= |
||||||
|
URL=https://pastebin.com/raw/jduBSazJ |
||||||
|
HotKey=0 |
@ -0,0 +1,620 @@ |
|||||||
|
@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/ |
||||||
|
:: 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 |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -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. |
@ -0,0 +1,402 @@ |
|||||||
|
@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/ |
||||||
|
:: 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=__________________________________________________________________________________________________ |
||||||
|
|
||||||
|
::======================================================================================================================================== |
||||||
|
|
||||||
|
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: |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -0,0 +1,37 @@ |
|||||||
|
==================================================================================================== |
||||||
|
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. |
||||||
|
|
||||||
|
==================================================================================================== |
@ -0,0 +1,290 @@ |
|||||||
|
@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/ |
||||||
|
:: 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 |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -0,0 +1,321 @@ |
|||||||
|
@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/ |
||||||
|
:: 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 |
||||||
|
|
||||||
|
::======================================================================================================================================== |
@ -0,0 +1,3 @@ |
|||||||
|
@echo off |
||||||
|
start https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ &:: Login required |
||||||
|
start https://gitlab.com/massgrave/microsoft-activation-scripts |
@ -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 |
||||||
|
378f9fceabbc4ddd6df9f8e33dbd93a1bc94e3ed *Activators\Online_KMS_Activation\Renewal_Setup.cmd |
||||||
|
d9f0a4b850060929c2c8195dc5e739ba613ab1f5 *Activators\Check_Activation_Status.cmd |
||||||
|
40a7a78e629f6610de3dd41d91c153503ee2da08 *Activators\Online_KMS_Activation\Uninstall.cmd |
||||||
|
c2eaf29daa0e7c021a45c95584b036040da52b04 *Activators\Online_KMS_Activation\_ReadMe.txt |
||||||
|
f9aa119dbe10d54dab5d99c51e937eaf9727fa41 *Extras\KMS38_Protection\Protect_Unprotect-KMS38.cmd |
||||||
|
68de64a326cdf1b0336c2ecd42a62fec8e7110f2 *Activators\ReadMe.txt |
||||||
|
8b81e4db09cf7800d678b0ff8569df7c8ca278f1 *Extras\Download_Genuine_Installation_Media.url |
||||||
|
232e158d5a1c27ea4222f5557c8a979ba8403b34 *Extras\KMS38_Protection\ReadMe.txt |
||||||
|
7656476fc6c572c8a6e8777c13ed8b5bf07e35a0 *Extras\OEMRET-Change_W10_Edition.cmd |
||||||
|
136379c8bee42fb65f1ba7ab5390ec7245df82f0 *Extras\OEMRET-Install_W10_Key.cmd |
||||||
|
dab684c73a4301b35e2feb09292b5626268f7b5f *Credits.txt |
||||||
|
4e996f40bfface2d3c65027e61489ac74b5a0264 *Homepages.cmd |
||||||
|
83fc81d5103c83ef31e447f96da27fe1f6458913 *Extras\Extract_OEM_Folder\Extract_OEM_Folder.cmd |
||||||
|
578364cb2319da7999acd8c015b4ce8da8f1b282 *Activators\HWID-KMS38_Activation\BIN\ARM64_gatherosstate.exe |
||||||
|
6c0697f17d1a7d8589eaaf37a4275fa745615f30 *Extras\Extract_OEM_Folder\ReadMe.txt |
||||||
|
5dbea3a580cf60391453a04a5c910a3ceca2b810 *Activators\HWID-KMS38_Activation\BIN\ARM64_slc.dll |
||||||
|
68da9ab497c6c1e126607a73f3a638749aa0bc88 *Activators\HWID-KMS38_Activation\KMS38_Activation.cmd |
||||||
|
8fd232b2a0166c6dc015ff427a55966b731c5907 *Activators\HWID-KMS38_Activation\ReadMe_HWID.txt |
||||||
|
ec3bf25a42b39b6b1b18cfbde14df4bc517f7913 *Activators\HWID-KMS38_Activation\ReadMe_KMS38.txt |
||||||
|
f5397a68b2afc2453ed61ee3f2f66fb04c03aaca *Activators\Online_KMS_Activation\Activate.cmd |
||||||
|
48d928b1bec25a56fe896c430c2c034b7866aa7a *Activators\HWID-KMS38_Activation\BIN\ClipUp.exe |
||||||
|
d30a0e4e5911d3ca705617d17225372731c770e2 *Activators\Online_KMS_Activation\BIN\cleanosppx64.exe |
||||||
|
fabb5a0fc1e6a372219711152291339af36ed0b5 *Activators\HWID-KMS38_Activation\BIN\gatherosstate.exe |
||||||
|
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *Activators\Online_KMS_Activation\BIN\cleanosppx86.exe |
||||||
|
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *Activators\HWID-KMS38_Activation\BIN\slc.dll |
||||||
|
43eaf2c93e4e5850a24e8abf69f7b037f3f39187 *Activators\HWID-KMS38_Activation\BIN\_Info.txt |
||||||
|
808b6cc1c96027594a66cfb0e2f118357ae93f31 *Activators\HWID-KMS38_Activation\HWID_Activation.cmd |
Loading…
Reference in new issue