Hi LinChaoTTDC,
You have hit a classic RDS security boundary trap. By stripping the default folder permissions, you inadvertently removed the system identities that the Remote Desktop infrastructure relies on to validate and publish the application.
Here is the architectural difference: While a full desktop session (MSTSC) executes the app purely under the logged-in user's token via explorer.exe, a RemoteApp is initialized by the Remote Desktop Services (TermService), which runs locally under the NETWORK SERVICE account.
The Fix: To allow the RDWeb process to authorize and launch the virtualized application, you must explicitly grant Read & Execute permissions to the following two built-in principals on your application's executable and directory:
NETWORK SERVICE
SYSTEM
Without NETWORK SERVICE having read access to the binary, the connection broker cannot bridge the gap to spawn the rdpshell.exe process for the RemoteApp feed. It fails before the user's specific departmental permissions are even evaluated.
Tracy Le.