Bugfix

Thanks for this code, it is very helpful for monitoring our RDP farm!

In the code above I found 2 bugs:

Introduced in version 0.6. In this version the checks for WARNING and CRITICAL were turned around. As a result the program is creating a warning when the warning level is reached and exits instead of checking if the critical level is reached.

@Napsty: Your addon displays the count again instead of the usernames of the connected users, correct command: ECHO Number of active sessions = %COUNT%^|usersconnected=!USER!

New code (based on version 0.6 and added unnumbered addons from lumezit and Napsty) and some personal changes:

@ECHO OFF
setlocal EnableDelayedExpansion
REM ——————————————-
REM – Version 0.4 – By [email protected]
REM – Original Version
REM ——————————————-
REM – Version 0.5 – By [email protected]
REM – ADD CRITICAL AND WARNING STATUS
REM ——————————————-
REM – Version 0.6 – By [email protected]
REM – ADD USERNAME LOGGED IN
REM ——————————————-
REM – Version 0.7 – By [email protected]
REM – Bugfix
REM – Formatting changes
REM ——————————————-
REM USAGE: check_user_count warn crit
REM warn: Number of session before warning
REM crit: Number of session before Critical
REM Example: check_user_count 2 4
REM ——————————————-
REM CALLING SEQUENCE:
REM command[nrpe_nt_check_users]=c:nrpe_ntpluginscheck_user_count.bat $ARG1$ $ARG2$
REM ——————————————-
set EX=0
set MS=OK
SET /a COUNT=0
SET USER=
FOR /f “TOKENS=1” %%i IN (‘query session ^|find “rdp-tcp#”‘) DO SET /a COUNT+=1
FOR /f “TOKENS=2” %%G IN (‘query session ^|find “rdp-tcp#”‘) DO (
call :subroutine %%G
)

REM – CRITICAL (COUNT => $2)
if %COUNT% GEQ %2 ( set EX=2 && set MS=CRITICAL && goto end )

REM – WARNING (COUNT => $1)
if %COUNT% GEQ %1 ( set EX=1 && set MS=WARNING && goto end )

REM – NOT CRITICAL / WARNING
set EX=0
set MS=OK
goto end

:subroutine
SET USER=%USER% %1
GOTO :eof

:end
ECHO %MS% – Number of active sessions = %COUNT% ^| Logged Users = !USER!
EXIT /b %EX%