Todos os processos do modo de usuário no Windows são executados como "um usuário", mesmo que esse "usuário" seja "Sistema local". Portanto, todos os serviços do Windows são executados como "um usuário". IIS ou Apache, o que quer que você esteja usando, é executado como usuário.
Esse usuário não é você.
Mesmo que você tenha executado o servidor da Web (o serviço do Windows) na sua conta de usuário, uma nova sessão de logon que não seja "sua" sessão de logon ainda será criada porque o sistema está fazendo logon em outra instância da sua conta de usuário. Contas de usuário e sessões de logon são coisas diferentes. Cada sessão de logon interativo tem uma área de trabalho separada, portanto, qualquer coisa que o serviço envolvesse mostrando coisas em sua área de trabalho aconteceria em sua área de trabalho, e não na sua.
O arquivo em lote e o executável funcionam como deveriam quando você clica neles porque eles são iniciados na sua sessão. Quando o Windows detecta que um programa em execução como um serviço está tentando interagir com uma área de trabalho, a Detecção de Serviço Interativo é acionada (que é executada como um serviço do Windows.) O raciocínio é que os serviços do Windows não devem ser totalmente interativos e não têm GUI requer entrada de um humano. Caso contrário, você provavelmente está lidando com um executável que não foi bem projetado para ser um serviço do Windows. Mesmo assim, você deve ser capaz de clicar em "Exibir a Mensagem" ou qualquer que seja o prompt da Detecção de Serviços Interativos e levará você temporariamente para a área de trabalho da Sessão 0 para interagir com a GUI "serviço", mas também interromperá sua área de trabalho enquanto você está na área de trabalho da Sessão 0. (Ele cria um novo processo em sua sessão para informá-lo de que algo na sessão 0 quer sua atenção.)
Tudo bem, então o que você realmente pode fazer sobre isso? Bem, você realmente não deu nenhum detalhe sobre o que este executável que você está executando como um serviço do Windows é ou o que ele faz, mas parece que você quer que ele seja executado em sua sessão, em seu desktop, para que você possa interagir com ele como faria com o Solitaire.exe.
Bem, lançar coisas em sessões de outros usuários não é uma ação rotineira no Windows, mas o psexec deve ser capaz de fazê-lo.
psexec.exe \computername -i 1 program.exe
No exemplo acima, o número 1 especifica em qual sessão o programa.exe será executado. Se você quiser disparar manualmente a Detecção de serviços interativos, use a sessão 0.
Para ler mais: link