¿Puede una aplicación detectar que se está ejecutando como RemoteApp?

¿Puede una aplicación detectar que se está ejecutando como RemoteApp?

Información de contexto

Recientemente instalé Microsoft Office 2013 en mi servidor para implementarlo usando RemoteApp en todas las computadoras de mi hogar. Después de la instalación, cuando intenté ejecutar los programas, me dio un error que indicaba que para ejecutar Office en una PC con Terminal Services instalado, debía usar una versión de licencia por volumen de Office. Luego, desinstalé todas las funciones del servidor de Escritorio remoto y, en su lugar, las implementé manualmente deshabilitando la lista de permitidos, y funcionó bien, ya sea ejecutándolo localmente o implementándolo como RemoteApps.

¿Cuál es la lista de permitidos?

En una implementación normal de RemoteApp, hay una lista de aplicaciones que pueden ejecutarse como RemoteApps y la única forma de configurarla es utilizar la función del servidor Terminal Services. Sin embargo, es posible ingresar al Registro de Windows y deshabilitar la lista para que cualquiera pueda acceder a cualquier aplicación en el servidor como RemoteApp conociendo la ruta a la misma, sin tener que instalar la función del servidor Terminal Services.

Esto me hizo sentir curiosidad por algo...

Mi pregunta

¿Puede una aplicación detectar que se está ejecutando como RemoteApp de esta manera (con la lista permitida deshabilitada) y negarse a iniciarse si es así, y solo iniciarse si se está ejecutando en el escritorio del servidor local?

Respuesta1

¿Cómo puede una aplicación detectar que se está ejecutando como RemoteApp?

Las sesiones de RemoteApp se inician en el servidor terminal mediante RDPINIT.EXE. Entonces la aplicación puede verificar si RDPINIT.EXE es elproceso padre.

Detalles:

Se ejecuta una instancia de RDPINIT.EXE en Terminal Server para cada sesión de RemoteApp de los usuarios. USERINIT.EXE carga RDPINIT.EXE como una implementación específica de RemoteApp de USERINIT.EXE. RDPINIT.EXE actúa como perro guardián para iniciar RDPSHELL.EXE y monitorear el inicio y cierre del proceso. RDPSHELL.EXE es el shell que se utiliza en lugar de EXPLORER.EXE para proporcionar la funcionalidad RemoteApp. RDPINIT.EXE monitorea el ciclo de vida del proceso de RDPSHELL.EXE y lo reinicia en caso de que finalice de manera anormal. RDPSHELL.EXE carga un conjunto de enlaces de eventos de Windows en el escritorio de cada usuario de la sesión. Estos enlaces de eventos permiten a RDPSHELL.EXE monitorear el estado de todas las ventanas en el escritorio. ...

(citado detecnet)

información relacionada