Um aplicativo pode detectar que está sendo executado como um RemoteApp?

Um aplicativo pode detectar que está sendo executado como um RemoteApp?

Informações básicas

Instalei recentemente o Microsoft Office 2013 em meu servidor para implantar usando o RemoteApp em todos os meus computadores domésticos. Após a instalação, quando tentei executar os programas, ocorreu um erro informando que, para executar o Office em um PC com Serviços de Terminal instalados, você deve estar usando uma versão de Licença por Volume do Office. Em seguida, desinstalei todas as funções de servidor da Área de Trabalho Remota e, em vez disso, implantei-as manualmente, desativando a lista de permissões, e funcionou bem, seja executado localmente ou implantado como RemoteApps.

Qual é a lista de permissões?

Em uma implantação normal do RemoteApp, há uma lista de aplicativos que podem ser executados como RemoteApps e a única maneira de configurar isso é usar a função de servidor dos Serviços de Terminal. Porém, é possível entrar no Registro do Windows e desabilitar a lista para que qualquer pessoa possa acessar qualquer aplicativo no servidor como um RemoteApp sabendo o caminho para ele, sem ter que instalar a função de servidor Terminal Services.

Isso me deixou curioso sobre uma coisa...

Minha pergunta

Um aplicativo pode detectar que está sendo executado como um RemoteApp dessa maneira (com a lista de permissões desativada) e se recusar a iniciar, se estiver, e somente iniciar se estiver em execução na área de trabalho do servidor local?

Responder1

Como um aplicativo pode detectar que está sendo executado como RemoteApp?

As sessões RemoteApp são iniciadas no servidor de terminal por RDPINIT.EXE. Assim o aplicativo pode verificar se RDPINIT.EXE é oprocesso pai.

Detalhes:

Uma instância do RDPINIT.EXE é executada no Terminal Server para cada sessão RemoteApp do usuário. RDPINIT.EXE é carregado por USERINIT.EXE como uma implementação específica do RemoteApp de USERINIT.EXE. RDPINIT.EXE atua como um cão de guarda para iniciar o RDPSHELL.EXE e monitorar a inicialização e o encerramento do processo. RDPSHELL.EXE é o shell usado em vez de EXPLORER.EXE para fornecer funcionalidade RemoteApp. RDPINIT.EXE monitora o ciclo de vida do processo de RDPSHELL.EXE e o reinicia caso seja encerrado de forma anormal. RDPSHELL.EXE carrega um conjunto de ganchos de eventos do Windows na área de trabalho de cada usuário na sessão. Esses ganchos de eventos permitem que o RDPSHELL.EXE monitore o estado de todas as janelas na área de trabalho. ...

(citado deTecnologia)

informação relacionada