Код, запущенный в службе, не может напрямую взаимодействовать с интерактивным сеансом.
Однако код, выполняющийся как служба с достаточными привилегиями, может создать новый процесс, выполняющийся на рабочем столе конкретного пользователя - например, получить токен пользователя интерактивного сеанса и вызвать CreateProcessAsUser.
Вы можете использовать WTSGetActiveConsoleSessionId для получения активного сеанса консоли, сеанса пользователя, который фактически находится на компьютере. Затем WTSQueryUserToken можно использовать для получения токена.
Ваша служба также может использовать уведомления об изменении сеанса в своей функции обработчика, чтобы видеть, когда пользователи входят / выходят из системы, разблокируют свой сеанс и т. Д.