@ECHO off
REM V1.0 2022-01-27 
cd /d %windir%
ECHO ----------------------------------------------------------------
ECHO 　　　　　　　　　Office 2021 啟用程式(v1.0)
ECHO 　　　　　　　MS Office 2021 Activation Program
ECHO ----------------------------------------------------------------
ECHO.
REM Check OS edition
For /F "tokens=2 delims=[]" %%G in ('ver') Do (set _version=%%G) 
For /F "tokens=2 delims=. " %%G in ('echo %_version%') Do (set _major=%%G) 
if "%_major%"=="5" (
goto actxp
) else (
goto goact
)

REM Windows XP without IP check and isact
:actxp
if exist "%systemdrive%\office19rpt.pdf" (
cd "%systemdrive%\"
ren office19rpt.pdf office19.log
) 
ECHO.  >>"%systemdrive%\office19.log"
ECHO ***************************************************** >>"%systemdrive%\office19.log"
ECHO    %date% %time% 執行啟用程式(v1.0) >>"%systemdrive%\office19.log"
ECHO ***************************************************** >>"%systemdrive%\office19.log"
ECHO ===WinXP=== >>"%systemdrive%\office19.log"
ECHO 啟用中，請稍候...
cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /sethst:cckms.nccu.edu.tw >> "%systemdrive%\office19.log"
cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /act >>"%systemdrive%\xpact.log"
type "%systemdrive%\xpact.log">>"%systemdrive%\office19.log"
type "%systemdrive%\xpact.log"
cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /dstatus >>"%systemdrive%\office19.log"
ECHO.
ECHO   《Office 2021啟用程序結束》
ECHO.
ECHO   分隔線上方如有【Product activation successful】字樣表示啟用成功，
ECHO 　如出現錯誤訊息則啟用失敗，請記下ERROR CODE，查看常見問題：
ECHO　　"https://support.video.nccu.edu.tw/faq/376#faq376"
ECHO.
ECHO   或至線上服務台提問，並上傳系統碟(通常為C槽)中的office19rpt.pdf檔案作為附件。
START %systemdrive%
ECHO   (office19rpt.pdf無法開啟為正常現象）
ECHO.
DEL /q "%systemdrive%\xpact.log"
ipconfig >>"%systemdrive%\office19.log"
cd "%systemdrive%\"
ren office19.log office19rpt.pdf
pause
exit

:goact
if exist "%systemdrive%\office19rpt.pdf" (
cd "%systemdrive%\"
ren office19rpt.pdf office19.log
) 
ECHO.  >>"%systemdrive%\office19.log"
ECHO ***************************************************** >>"%systemdrive%\office19.log"
ECHO    %date% %time% 執行啟用程式(v1.0) >>"%systemdrive%\office19.log"
ECHO ***************************************************** >>"%systemdrive%\office19.log"
ECHO 步驟1：檢查是否已連上校園網路
ECHO.
ipconfig >"%systemdrive%\ip.log"
find /C /I "140.119" "%systemdrive%\ip.log" >nul
if %ERRORLEVEL% EQU 0 (
DEL /q "%systemdrive%\ip.log"
goto act
) else (
DEL /q "%systemdrive%\ip.log"
ECHO 　                    您可能尚未連上網校園網路
ECHO 　           ┌－－－－－－－－－－－－－－－－－－┐
ECHO 　           │如在在校外，請關閉此程式，連上VPN後 │
ECHO 　           │再執行一次，否則將啟用失敗。　　　　│
ECHO 　           └－－－－－－－－－－－－－－－－－－┘
ECHO.
ECHO 是否關閉此程式？（如您已連上校園無線網路，請按 N） 
CHOICE /C yn /M "Y)是  N)否"
if ERRORLEVEL 2 goto act
if ERRORLEVEL 1 goto cnct
)

:act
ECHO 步驟2：檢查是否已安裝Office 2021
ECHO.
if exist "%installdir%\Program Files\Microsoft Office\root\Office16\WINWORD.EXE" (
set OfficePath="%installdir%\Program Files\Microsoft Office\Office16\"
ECHO ===SameByte=== >>"%systemdrive%/office19.log"
goto acta
) else if exist "%installdir%\Program Files (x86)\Microsoft Office\root\Office16\WINWORD.EXE" (
set OfficePath="%installdir%\Program Files (x86)\Microsoft Office\Office16\"
ECHO ===DifByte=== >>"%systemdrive%/office19.log"
goto acta
) else (
goto msg
)

:acta
ECHO 步驟3：指定連線主機
ECHO.
cscript %OfficePath%ospp.vbs /sethst:cckms.nccu.edu.tw >> "%systemdrive%\office19.log"
ECHO 步驟4：啟用Office 2021
ECHO.
cscript %OfficePath%ospp.vbs /act >>"%systemdrive%\isact.log"
type "%systemdrive%\isact.log" >> "%systemdrive%\office19.log"
type "%systemdrive%\isact.log"
cd "%systemdrive%\"
FIND /c /i "No installed product keys detected" "%systemdrive%\isact.log" >nul
if %ERRORLEVEL% EQU 0 (
ECHO Fixing No installed product keys detected >>"%systemdrive%\office19.log"
cscript %OfficePath%ospp.vbs /inpkey:FXYTK-NJJ8C-GB6DW-3DYQT-6F7TH >>"%systemdrive%\office19.log"
cscript %OfficePath%ospp.vbs /act >>"%systemdrive%\isact.log"
ECHO No installed product keys detected problem fixed
)
cscript %OfficePath%ospp.vbs /dstatus >>"%systemdrive%\office19.log"
goto isact

:msg
ECHO ===NoOffice=== >>"%systemdrive%\office19.log"
cd "%systemdrive%\"
ren office19.log office19rpt.pdf
ECHO   　您可能尚未安裝Office 2021 Pro Plus 
ECHO     (請至控制台→「解除安裝程式」查看)
ECHO.
ECHO   　如您已安裝Office 2021 Pro Plus，請參考下列網址進行手動啟用：
ECHO   　"https://support.video.nccu.edu.tw/media/72"
ECHO.
START microsoftedge.exe "https://support.video.nccu.edu.tw/media/72#doc-tabs-faq"
ECHO.
ECHO 本程式即將關閉
pause
exit

:cnct
ECHO ===IP issue=== >>"%systemdrive%\office19.log"
netstat -n -p tcp >>"%systemdrive%\office19.log"
cd "%systemdrive%\"
ren office19.log office19rpt.pdf
exit

:isact
ipconfig >>"%systemdrive%\office19.log"
cd "%systemdrive%\"
ren office19.log office19rpt.pdf
ECHO.
ECHO 啟用結果：
FIND /c /i "Product activation successful" "%systemdrive%\isact.log" >nul
if ERRORLEVEL 1 (
DEL /Q "%systemdrive%\isact.log"
ECHO.
ECHO   《Office 2021啟用失敗》
ECHO.
ECHO 　啟用過程中出現錯誤訊息(分隔線上方），請記下ERROR CODE，查看常見問題：
ECHO　　"https://support.video.nccu.edu.tw/media/72#doc-tabs-faq"
START microsoftedge.exe "https://support.video.nccu.edu.tw/faq/376#faq376"
ECHO.
ECHO   或至線上服務台提問，並上傳桌面上的office19rpt.pdf檔案作為附件。
START %systemdrive%
ECHO   (office19rpt.pdf無法開啟為正常現象）
START %systemdrive%
ECHO.
pause
exit
) else (
DEL /Q "%systemdrive%\isact.log"
ECHO.
ECHO   《Office 2021啟用成功》
ECHO.
pause
exit
)