应用程序未在 Windows Server 终端服务 RemoteApp 会话中启动

本文为无法在终端服务 RemoteApp 会话中运行依赖于 Explorer.exe 文件的应用程序的问题提供了解决方法。

适用于: Windows Server 2012 R2
原始 KB 编号: 951048

症状

请考虑以下应用场景: 登录到 Windows Server 终端服务 RemoteApp (TS RemoteApp) 会话。 TS RemoteApp 会话包括启动应用程序和运行注册表项或 RunOnce 注册表项。 然后,尝试在 TS RemoteApp 会话中启动应用程序。 在此方案中,应用程序不会启动。

原因

出现此问题的原因是,尝试启动依赖于 Explorer.exe 文件的应用程序。 根据设计,TS RemoteApp 会话实现了有限的功能。 例如,TS RemoteApp 会话不处理以下项:

  • 运行注册表项
  • RunOnce 注册表项
  • 启动应用程序

解决方法

要解决此问题,请使用下列方法之一。

方法 1:在用户的登录设置中运行启动应用程序

若要在 TS RemoteApp 会话中运行启动应用程序,可以在 组策略 中将启动应用程序指定为用户登录设置的一部分。 由于组策略控制这些设置,因此指定的任何启动应用程序在用户登录时按预期运行。

若要将启动应用程序指定为用户登录设置的一部分,请执行以下步骤:

  1. 在服务器组策略管理控制台 (GPMC) 中,依次单击“本地计算机策略”、“计算机配置”和“管理模板”。

  2. 单击“ 系统”,双击“登录”,然后双击“ 在用户登录时运行这些程序”。

  3. 在“ 在用户登录时运行这些程序属性 ”对话框中,单击“ 启用”。

  4. 单击“ 显示”,然后单击“ 添加”。

  5. 键入启动应用程序的名称。

    注意

    除非启动应用程序位于 %SystemRoot% 文件夹中,否则必须指定文件的完全限定路径。

  6. 单击“确定”

方法 2:使用 /AlternateShellStartup 开关一起启动 Runonce.exe 文件

如果将 Runonce.exe 文件添加到用户的登录脚本,则依赖于 Explorer.exe 文件的某些应用程序可能会在 TS RemoteApp 会话中运行。 为此,请按照下列步骤操作:

  1. 在服务器 GPMC 中,依次单击“ 本地计算机策略”、“ 用户配置”和“ Windows 设置”。

  2. 单击“ (登录/注销) 的脚本 ”,然后双击“ 登录”。

  3. 单击“添加”

  4. “脚本名称 ”框中,键入“runonce.exe”。

  5. “脚本参数 ”框中,键入 /AlternateShellStartup。

  6. 单击 “确定” 两次。