@echo off setlocal EnableDelayedExpansion :: ------------------------------------------------- :: Admin privilege check (ALWAYS keep window open) :: ------------------------------------------------- net session >nul 2>&1 if %errorLevel% neq 0 ( powershell -Command "Start-Process '%~f0' -Verb RunAs" exit /b ) :: ================= Admin mode ================= echo ===================================== echo Firewall port open check (Admin) echo ===================================== echo. set RESULT=0 call :OPEN_PORT 17000 MC_Port_17000 call :OPEN_PORT 17001 Kapplets_Port_17001 echo ===================================== echo Summary: echo Port 17000 : !RESULT_17000! echo Port 17001 : !RESULT_17001! echo ===================================== if "%RESULT%"=="0" ( echo ALL PORTS OK ) else ( echo SOME PORTS FAILED ) echo. echo You can close this window manually. pause >nul goto :EOF :: ------------------------------------------------- :: Subroutine :: ------------------------------------------------- :OPEN_PORT set PORT=%1 set RULENAME=%2 set STATUS=UNKNOWN echo ---- Port %PORT% ---- netsh advfirewall firewall show rule name="%RULENAME%" >nul 2>&1 if %errorLevel%==0 ( set STATUS=ALREADY_EXISTS echo Result : ALREADY EXISTS goto SET_RESULT ) netsh advfirewall firewall add rule ^ name="%RULENAME%" ^ dir=in action=allow protocol=TCP localport=%PORT% >nul 2>&1 netsh advfirewall firewall show rule name="%RULENAME%" >nul 2>&1 if %errorLevel%==0 ( set STATUS=SUCCESS echo Result : SUCCESS ) else ( set STATUS=FAILED echo Result : FAILED set RESULT=1 ) :SET_RESULT if "%PORT%"=="17000" set RESULT_17000=%STATUS% if "%PORT%"=="17001" set RESULT_17001=%STATUS% echo. goto :EOF ``