Как определить начало открытия сессии rdp?
В настройках терминального сервера есть пункт, в котором можно указать, что будет использоваться вместо оболочки (explorer) в терминальной сессии. Если это что-то сразу после запуска самозакроется, сессия оборвется.
Навскидку есть несколько способов - 
1) Парсить логи сервера
2) Поставить в автозагрузку (в настройках терминального доступа есть опция "Запускать при открытии") программу которая по имени подключающегося компьютера (или по его адресу, или по имени пользователя) будет делать запрограммированные действия.  (Вот к примеру получение имени компьютера который подключился - pastebin.com/bLejYpzs )
PS: ИМХО архитектурно у вас неверный подход - в механизме rdp уже есть механизм который решает можно или нет создавать соединение :) Аутентификация называется. Ну и встроенный файрволл windows позволяет указать какие компьютеры могут подключаться.