Sim ... Eu estive nessa mesma situação. Acabei escrevendo um serviço do Windows que verificava sessões desconectadas usando a API exposta em wtsapi32.dll e, em seguida, para cada sessão desconectada, se o processo que eu queria não estivesse em execução nessa sessão, usaria o token dessa pessoa ( que eu posso roubar sem precisar saber a senha dessa pessoa, o motivo pelo qual as sessões desconectadas são indesejáveis do ponto de vista de segurança) para iniciar um processo como esse usuário em sua área de trabalho usando CreateProcessAsUser. Dessa forma, quando o usuário se reconectar à sessão desconectada, o programa desejado estará sendo executado na área de trabalho do usuário sempre que se reconectar.