@echo off ::======================================================================================================================================== : ====================================================================== : Thanks to @RPO (MDL) for providing the help in this script : ====================================================================== : ================================================================= : This script is a part of 'Microsoft Activation Scripts' : Maintained by @WindowsAddict : Homepage - https://www.nsaneforums.com/topic/316668--/ : ================================================================= ::======================================================================================================================================== ::======================================================================================================================================== cls title Change Windows 10 Edition with Retail_OEM Key for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G set "ELine=echo. &echo ==== ERROR ==== &echo." setlocal EnableDelayedExpansion ::======================================================================================================================================== : =========================================================== : Check if the file path name contains special characters : https://stackoverflow.com/a/33626625 : Written by @jeb (stackoverflow) : Thanks to @abbodi1406 (MDL) for the help. : =========================================================== setlocal setlocal DisableDelayedExpansion set "param=%~f0" cmd /v:on /c echo(^^!param^^!| findstr /R "[| ` ~ ! @ %% \^ & ( ) \[ \] { } + = ; ' , |]*^" endlocal if %errorlevel% EQU 0 ( %ELine% echo Disallowed special characters detected in file path name. echo Make sure file path name do not have following special characters, echo ^` ^~ ^! ^@ %% ^^ ^& ^( ^) [ ] { } ^+ ^= ^; ^' ^, goto Done ) ::======================================================================================================================================== if %winbuild% LSS 17134 ( %ELine% echo Unsupported OS version Detected. echo OS Requirement - Windows 10 1803 and later builds. goto Done ) ::======================================================================================================================================== : ================================================ : Self-elevate passing args and preventing loop : Written by @AveYo aka @BAU : ================================================ reg query HKEY_USERS\S-1-5-20 1>nul 2>nul && goto GotPrivileges If "%ElevError%"=="Y" goto Elev_Err set "args="%~f0" %*" & call set "args=%%args:"=\"%%" echo Initializing... powershell -c "start cmd -ArgumentList '/c set ElevError=Y& call %args%' -verb runas" && exit /b :Elev_Err %ELine% echo Right click on this file and select 'Run as administrator' goto Done :GotPrivileges ::======================================================================================================================================== : ====================================================== : Set buffer height independently of window height : https://stackoverflow.com/a/13351373 : Written by @dbenham (stackoverflow) : ====================================================== mode con: cols=98 lines=30 powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.width=98;$B.height=36;$W.buffersize=$B;}" ::======================================================================================================================================== FOR /F "TOKENS=2 DELIMS==" %%A IN ('"WMIC PATH SoftwareLicensingProduct WHERE (Name LIKE 'Windows%%' AND PartialProductKey is not NULL) GET LicenseFamily /VALUE"') 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 Done ) ::======================================================================================================================================== 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:EC /N /M "[C] Continue [E] 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 2>&1 if "!Key!"=="" cls &%ELine% &echo [%%a ^| %winbuild%] Digital License ^(HWID^) Activation is Not Supported. &goto Done cls echo ----------------------------------------------------------------- echo. echo Changing the Edition to Windows 10 %%a cscript /nologo %windir%\system32\slmgr.vbs -ipk !Key! echo ----------------------------------------------------------------- echo. echo Reboot is required to properly change the Edition. goto Done )) ::======================================================================================================================================== :: 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 ::======================================================================================================================================== :Done echo. echo Press any key to exit... pause >nul exit /b ::========================================================================================================================================