RDP客户端可以启动远程应用程序而不是桌面吗


82

RDP客户端可以启动远程应用程序,然后仅显示该应用程序(而不显示桌面)吗?该应用程序将在客户端中全屏显示,如果关闭该应用程序,则会话将结束。


1
我一直在寻找...谢谢您的询问!
Gishu

1
@ user172681的答案提供了最新链接。现在,还有一个名为“ RemoteApp Tool”的漂亮工具(请参阅页面顶部更新部分中的链接),用于配置远程应用程序并生成RDP文件...在Win7上对我来说非常完美。
约翰·里克斯

Answers:


19

使用RDP连接文件,您可以将备用Shell设置为您的应用程序。文件语法就像

alternate shell:s:c:\winnt\system32\notepad.exe

并将其作为命令行参数传递给mstsc.exe;这类似于chrissr的解决方案,但不影响您启动的每个RDP会话。 此处提供了更完整的设置摘要


6
不适用于我...我在.rdp文件中看到了该属性,但是进行更改(似乎应该可以进行),但在启动连接时未进行任何更改。从Vista x64升级为7 x64。
sonjz 2012年

3
不幸的是,链接已死。
NikolaMalešević2015年

1
您能否用更多详细信息更新它,或者至少修复链接?
WhiteHotLoveTiger


在Windows 10上对我不起作用。他们是否删除了此功能?
مسعود

37

解决方案:“替代外壳”似乎在Windows的最新版本中不再起作用RemoteApp

remoteapplicationmode:i:1
remoteapplicationname:s:Purpose of the app shown to user...
remoteapplicationprogram:s:C:\...\some.exe
remoteapplicationcmdline:s:

为了使此功能在Windows 10 Professional下运行,需要启用一些策略

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnlistedRemotePrograms"=dword:00000001

7
只是为了提高精度:以上更改(从第一部分开始)必须在.rdp文件本身以及服务器上的注册表中进行。
picrap

为了记录,有两个类似的RDP密钥:remoteapplicationfile:sremoteapplicationprogram:s。该*file键指定的全路径的可执行的上本地(主机)计算机,而*program密钥指定可执行的上远程计算机。
Moshe Rubin

10

这称为“无缝”模式。rdesktop,用于Unix的RDP客户端可以做到这一点。从联机帮助页:

   -A     Enable SeamlessRDP. In this mode, rdesktop creates a X11 window for each window on the server
          side.  This  mode  requires  the  SeamlessRDP  server side component, which is available from
          http://www.cendio.com/seamlessrdp/.  When using this option, you  should  specify  a  startup
          shell which launches the desired application through SeamlessRDP.

有关更多信息,请参见提到的Cendio网站


2
Windows上有类似的功能吗?
ScottC

7

这是很容易实现的。

  1. 我们需要允许所有未列出的程序从RDP开始。
    1.1将以下脚本保存在桌面上,扩展名必须以.reg结尾。
Windows注册表编辑器版本5.00

    [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Terminal Server \ TSAppAllowList]
    “ fDisabledAllowList” = dword:00000001


       1.2该文件,点击右键MergeYesOk

  1. 修改我们的.rdp文件。
    2.1在文件末尾,添加以下代码:
远程应用程序模式:i:1
remoteapplicationname:s:这是应用程序的可选说明
remoteapplicationprogram:s:应用程序的相对或绝对路径
                           (示例:taskmgr或C:\ Windows \ system32 \ taskmgr.exe)
remoteapplicationcmdline:s:在此放置任何可选的应用程序参数


或仅使用此一项以确保其有效:

远程应用程序模式:i:1
远程应用程序名称:s:
远程应用程序:s:mspaint
remoteapplicationcmdline:s:

        2.2输入您的用户名和密码并连接。


    3.现在,您可以像使用本地计算机一样正常使用RemoteApp了。


上面的一个很好的答案使用remoteapplicationprogram:s密钥来指定驻留在远程计算机上的应用程序。要在远程计算机上运行本地主机端应用程序,请改用remoteapplicationfile:s键。
Moshe Rubin

6

是的,您可以将默认Shell从Explorer.exe更改为特定的应用程序。

在Regedit中,导航到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon。当前的shell应该是Explorer.exe。将其更改为YourApp.exe。这将更改所有登录到该计算机的用户的外壳。如果只想为特定用户更改它,请转至HKEY_CURRENT_USER中的相同键。


注意:用户仍然可以CTRL-Alt-Del并访问其他应用程序。您可能要为将通过RDP登录的帐户或组禁用CTRL-Alt-Del。
chrissr

3
这实际上使用户无法定期登录。
ypnos


1

我认为Citrix会做这种事情。尽管我不确定具体细节,因为我只使用了几次。我认为我使用的是XenApp,但我不确定那是否是您想要的。


XenApp似乎更多地是关于应用程序虚拟化,而不是远程访问(尽管我看到它具有远程选项)。我还在开源阵营中寻找某种东西(例如rdesktop)。
理查德·多曼

2
在底层,XenApp的关键组件仍然是基于服务器的计算(就像十年前该产品称为MetaFrame一样)。仅仅是营销方式已经改变,产品范围已经扩展到不仅包含应用程序远程处理核心。
史蒂夫·吉勒姆


0

RDP本身不会这样做。

正如其他答案所说的那样-您需要做一些脚本编写工作并进行策略更改,以使RDP登录难以运行除预期应用程序以外的任何内容。

但是,自2008年起,Microsoft已通过终端服务发布了应用程序虚拟化技术,使您可以无缝地进行此操作。


0

至少在2008R2上,如果帐户仅用于RDP而不用于本地登录,则可以基于每个帐户进行设置。这应该适用于瘦客户机。如果这些帐户也用于本地桌面,则这也会影响这些登录。

在ADUsers&Computers中,打开该帐户的属性,然后转到“环境”选项卡。在该选项卡上,选中“在登录时启动以下程序”,然后指定该程序的路径和可执行文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.