Sim. Primeiro, descubra como você vai implementar a pesquisa. Você pode apenas usar as respostas do prompt de comando e enviá-las para um arquivo em um local de rede, você pode usar algum software ou criar seu próprio, etc. Isso está bem fora do escopo do ServerFault. Um requisito básico é que ele seja capaz de fornecer códigos de saída com base no fato de o usuário concluir ou não a pesquisa.
Depois de descobrir como você vai entregar a pesquisa, escreva um script que lance o programa / subscript, aguarde um código de saída e atue a partir daí. Ele também deve detectar se a janela do programa ficou fora de foco. Se o código de saída estiver ruim ou a janela ficar fora de foco (ou até mesmo um limite de tempo for atingido), force um logout.
Você pode querer primeiro entregar uma caixa de mensagem que informe ao usuário o requisito da janela para manter o foco; caso contrário, eles podem ficar muito frustrados. Alternativamente, seu programa ou sub-script pode apenas forçar a janela a ficar em foco.
Se tudo correr bem, permita que o usuário continue apenas terminando o script.
Por fim, use os scripts de Login de Diretiva de Grupo para entregar o script aos usuários de destino.
Esse método ainda permitirá que o usuário veja sua área de trabalho, e talvez faça um pouco antes que o programa seja executado, portanto, não é perfeito. Mas esta é a melhor maneira que posso pensar em cima da minha cabeça.