Можно сделать так:
в logon script каждому пользователю прописать net use \\имя сервера\имя расшаренного ресурса$.
Имя расшаренного ресурса сделать скрытым (окончание на $).
Доступ к расшаренному ресурсу сделать только на чтение.
Теперь, когда юзер будет логиниться на любой машине, он будет устанавливать пустую сетевую сессию с сервером, соответственно, когда будет завершать сеанс, эта сессия будет завершаться.
А Вы по состоянию активных сетевых сессий на этом сервере всегда будете знать где и когда залогинен пользователь.