From f5adea47ba5f2b310a0f81973727eaafbd23c974 Mon Sep 17 00:00:00 2001
From: Sharukh mithagari <45158663+imsharukh1994@users.noreply.github.com>
Date: Thu, 22 Aug 2024 05:36:37 +0530
Subject: [PATCH] Update Check-Activation-Status-vbs.cmd

---
 .../Check-Activation-Status-vbs.cmd           | 293 ++++++++----------
 1 file changed, 128 insertions(+), 165 deletions(-)

diff --git a/MAS/Separate-Files-Version/Check-Activation-Status-vbs.cmd b/MAS/Separate-Files-Version/Check-Activation-Status-vbs.cmd
index c0d7507..e69c47e 100644
--- a/MAS/Separate-Files-Version/Check-Activation-Status-vbs.cmd
+++ b/MAS/Separate-Files-Version/Check-Activation-Status-vbs.cmd
@@ -2,83 +2,94 @@
 @echo off
 @cls
 
-
-::
-::  Check-Activation-Status
-::  Written by @abbodi1406
-::  forums.mydigitallife.net/posts/838808
-
-
+:: 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
+    if /i "%%A"=="-wow" set _rel1=1
+    if /i "%%A"=="-arm" set _rel2=1
 )
+
 set "_cmdf=%~f0"
+
+:: Handle WOW64 and ARM scenarios
 if exist "%SystemRoot%\Sysnative\cmd.exe" if not defined _rel1 (
-setlocal EnableDelayedExpansion
-start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" -wow"
-exit /b
+    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
+    setlocal EnableDelayedExpansion
+    start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" -arm"
+    exit /b
 )
+
+:: Set console appearance
 color 07
 title Check Activation Status [vbs]
+
+:: Update system paths for running commands
 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%"
+    set "SysPath=%SystemRoot%\Sysnative"
+    set "Path=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\Wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%Path%"
 )
 
-::  Check LF line ending
-
+:: Check for LF line ending issues
 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
+    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
 
+:: Detect Office Ohook installation
 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 %%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
-)
-)
+    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
+        )
+    )
 )
 
+:: Determine system architecture
 set "_bit=64"
 set "_wow=1"
 if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "_wow=0"&set "_bit=32"
+
+:: Initialize variables
 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
+
+:: Check for Office 2013/2016/2019/2021 installations
+for %%v in (15 16) do (
+    for %%P in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do (
+        if exist "%%~P\Microsoft Office\Office%%v\ospp.vbs" (
+            if %%v==15 set _sO15vbs=1
+            if %%v==16 set _sO16vbs=1
+        )
+    )
 )
+
+:: Display Windows activation status
 setlocal EnableDelayedExpansion
 echo %line2%
 echo ***                   Windows Status                     ***
@@ -86,174 +97,126 @@ 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 /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%
 
+:: Display Office activation status if Ohook is installed
 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.
+    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.
 )
 
+:: Check Office 2016 and 2019 activation status
 :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")
+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
+    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")
+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
-)
-
+    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
+)
+
+:: Check Office 2013 activation status
 :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")
+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
+    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")
+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
+    echo.
+    echo %line2%
+    echo ***              Office 2013 32-bit Status               ***
+    echo %line2%
+    cscript //nologo "!office!\ospp.vbs" /dstatus
 )
 
+:: Check Office 2010 activation status
 :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")
+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
+    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")
+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
+    echo.
+    echo %line2%
+    echo ***              Office 2010 32-bit Status               ***
+    echo %line2%
+    cscript //nologo "!office!\ospp.vbs" /dstatus
 )
 
+:: Check Office Click-to-Run activation status
 :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
+    reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath >nul 2>&1 && set "install32=1"
 )
-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             ***
+if defined install32 (
+    for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do set "office=%%b"
 ) else (
-echo ***                Office 2013-2021 Status               ***
-)
-echo %line2%
-cscript //nologo "!office!\ospp.vbs" /dstatus
+    for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do set "office=%%b"
 )
-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
+    echo.
+    echo %line2%
+    echo ***         Office Click-to-Run %_bit%-bit Status         ***
+    echo %line2%
+    cscript //nologo "!office!\ospp.vbs" /dstatus
 )
 
+:: End script
 :casVend
 echo.
-echo Press any key to exit.
-pause >nul
+echo %line3%
+echo ***                Script Ended                          ***
+echo %line3%
 exit /b
-:: Leave empty line below