@setlocal DisableDelayedExpansion @echo off @cls :: :: Check-Activation-Status :: Written by @abbodi1406 :: forums.mydigitallife.net/posts/838808 set _args= set _args=%* for %%A in (%_args%) do ( if /i "%%A"=="-wow" set _rel1=1 if /i "%%A"=="-arm" set _rel2=1 ) set "_cmdf=%~f0" if exist "%SystemRoot%\Sysnative\cmd.exe" if not defined _rel1 ( setlocal EnableDelayedExpansion start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" -wow" exit /b ) if exist "%SystemRoot%\SysArm32\cmd.exe" if /i %PROCESSOR_ARCHITECTURE%==AMD64 if not defined _rel2 ( setlocal EnableDelayedExpansion start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" -arm" exit /b ) color 07 title Check Activation Status [vbs] set "SysPath=%SystemRoot%\System32" set "Path=%SystemRoot%\System32;%SystemRoot%\System32\Wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\" if exist "%SystemRoot%\Sysnative\reg.exe" ( set "SysPath=%SystemRoot%\Sysnative" set "Path=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\Wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%Path%" ) :: Check LF line ending pushd "%~dp0" >nul findstr /v "$" "%~nx0" && ( echo: echo Error: Script either has LF line ending issue or an empty line at the end of the script is missing. echo: ping 127.0.0.1 -n 6 >nul popd exit /b ) popd set ohook= for %%# in (15 16) do ( for %%A in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do ( if exist "%%~A\Microsoft Office\Office%%#\sppc*dll" set ohook=1 ) ) for %%# in (System SystemX86) do ( for %%G in ("Office 15" "Office") do ( for %%A in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do ( if exist "%%~A\Microsoft %%~G\root\vfs\%%#\sppc*dll" set ohook=1 ) ) ) set "_bit=64" set "_wow=1" if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "_wow=0"&set "_bit=32" set "_utemp=%TEMP%" set "line2=************************************************************" set "line3=____________________________________________________________" set _sO16vbs=0 set _sO15vbs=0 if exist "%ProgramFiles%\Microsoft Office\Office15\ospp.vbs" ( set _sO15vbs=1 ) else if exist "%ProgramW6432%\Microsoft Office\Office15\ospp.vbs" ( set _sO15vbs=1 ) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\ospp.vbs" ( set _sO15vbs=1 ) setlocal EnableDelayedExpansion echo %line2% echo *** Windows Status *** echo %line2% pushd "!_utemp!" copy /y %SystemRoot%\System32\slmgr.vbs . >nul 2>&1 net start sppsvc /y >nul 2>&1 cscript //nologo slmgr.vbs /dli || (echo Error executing slmgr.vbs&del /f /q slmgr.vbs&popd&goto :casVend) cscript //nologo slmgr.vbs /xpr del /f /q slmgr.vbs >nul 2>&1 popd echo %line3% if defined ohook ( echo. echo. echo %line2% echo *** Office Ohook Activation Status *** echo %line2% echo. powershell "write-host -back 'Black' -fore 'Yellow' 'Ohook for permanent Office activation is installed.'; write-host -back 'Black' -fore 'Yellow' 'You can ignore below Office activation status.'" echo. ) :casVo16 set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\16.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b") if exist "!office!\ospp.vbs" ( set _sO16vbs=1 echo. echo %line2% if %_sO15vbs% EQU 0 ( echo *** Office 2016 %_bit%-bit Status *** ) else ( echo *** Office 2013/2016 Status *** ) echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) if %_wow%==0 goto :casVo13 set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b") if exist "!office!\ospp.vbs" ( set _sO16vbs=1 echo. echo %line2% if %_sO15vbs% EQU 0 ( echo *** Office 2016 32-bit Status *** ) else ( echo *** Office 2013/2016 Status *** ) echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) :casVo13 if %_sO16vbs% EQU 1 goto :casVo10 set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b") if exist "!office!\ospp.vbs" ( echo. echo %line2% echo *** Office 2013 %_bit%-bit Status *** echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) if %_wow%==0 goto :casVo10 set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b") if exist "!office!\ospp.vbs" ( echo. echo %line2% echo *** Office 2013 32-bit Status *** echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) :casVo10 set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b") if exist "!office!\ospp.vbs" ( echo. echo %line2% echo *** Office 2010 %_bit%-bit Status *** echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) if %_wow%==0 goto :casVc16 set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b") if exist "!office!\ospp.vbs" ( echo. echo %line2% echo *** Office 2010 32-bit Status *** echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) :casVc16 reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath >nul 2>&1 || ( reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath >nul 2>&1 || goto :casVc13 ) set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do (set "office=%%b\Office16") if exist "!office!\ospp.vbs" ( set _sO16vbs=1 echo. echo %line2% if %_sO15vbs% EQU 0 ( echo *** Office 2016-2021 C2R Status *** ) else ( echo *** Office 2013-2021 Status *** ) echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) if %_wow%==0 goto :casVc13 set office= for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do (set "office=%%b\Office16") if exist "!office!\ospp.vbs" ( set _sO16vbs=1 echo. echo %line2% if %_sO15vbs% EQU 0 ( echo *** Office 2016-2021 C2R Status *** ) else ( echo *** Office 2013-2021 Status *** ) echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) :casVc13 if %_sO16vbs% EQU 1 goto :casVc10 reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun /v InstallPath >nul 2>&1 || ( reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\15.0\ClickToRun /v InstallPath >nul 2>&1 || goto :casVc10 ) set office= if exist "%ProgramFiles%\Microsoft Office\Office15\ospp.vbs" ( set "office=%ProgramFiles%\Microsoft Office\Office15" ) else if exist "%ProgramW6432%\Microsoft Office\Office15\ospp.vbs" ( set "office=%ProgramW6432%\Microsoft Office\Office15" ) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\ospp.vbs" ( set "office=%ProgramFiles(x86)%\Microsoft Office\Office15" ) if exist "!office!\ospp.vbs" ( echo. echo %line2% echo *** Office 2013 C2R Status *** echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) :casVc10 if %_wow%==0 reg query HKLM\SOFTWARE\Microsoft\Office\14.0\CVH /f Click2run /k >nul 2>&1 || goto :casVend if %_wow%==1 reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\CVH /f Click2run /k >nul 2>&1 || goto :casVend set office= if exist "%ProgramFiles%\Microsoft Office\Office14\ospp.vbs" ( set "office=%ProgramFiles%\Microsoft Office\Office14" ) else if exist "%ProgramW6432%\Microsoft Office\Office14\ospp.vbs" ( set "office=%ProgramW6432%\Microsoft Office\Office14" ) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office14\ospp.vbs" ( set "office=%ProgramFiles(x86)%\Microsoft Office\Office14" ) if exist "!office!\ospp.vbs" ( echo. echo %line2% echo *** Office 2010 C2R Status *** echo %line2% cscript //nologo "!office!\ospp.vbs" /dstatus ) :casVend echo. echo Press any key to exit. pause >nul exit /b :: Leave empty line below