mirror of
				https://github.com/massgravel/Microsoft-Activation-Scripts.git
				synced 2025-10-30 08:01:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			259 lines
		
	
	
	
		
			8.3 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			259 lines
		
	
	
	
		
			8.3 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
| @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
 | 
