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

时间:2009-08-04 10:36:42

标签: rdp

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

10 个答案:

答案 0 :(得分:18)

使用RDP连接文件,您可以将备用shell设置为您的应用程序;文件语法类似于

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

并将其作为命令行参数传递给mstsc.exe;这与chrissr的解决方案类似,但不会影响您启动的每个RDP会话。 A fuller summary of settings here

答案 1 :(得分:11)

"备用shell"在最近的Windows版本doesn't seem to work中,RemoteApp是可行的方法。

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

要使其在例如Windows 10 Professional,需要enable some policy

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

答案 2 :(得分:8)

这称为“无缝”模式。 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 website

答案 3 :(得分:8)

这很容易实现。

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

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


1.2右键单击文件,然后单击合并确定

  1. 修改我们的.rdp文件。
    2.1在文件末尾,添加以下代码:
remoteapplicationmode:i:1
remoteapplicationname:s:This will be the optional description of the app
remoteapplicationprogram:s:Relative or absolute path to the app
                           (Example: taskmgr or C:\Windows\system32\taskmgr.exe)
remoteapplicationcmdline:s:Here you'd put any optional application parameters


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

remoteapplicationmode:i:1
remoteapplicationname:s:
remoteapplicationprogram:s:mspaint
remoteapplicationcmdline:s:

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


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

答案 4 :(得分:6)

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

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

答案 5 :(得分:2)

我认为思杰做了那样的事情。虽然我不确定具体细节,因为我只使用了几次。我认为我使用的那个被称为XenApp,但我不确定那是不是你想要的。

答案 6 :(得分:2)

这称为RemoteApp。要使用它,您需要安装终端服务,现在称为远程桌面服务。

https://social.technet.microsoft.com/wiki/contents/articles/10817.publishing-remoteapps-in-windows-server-2012.aspx

答案 7 :(得分:1)

此CodeProject文章中显示了另一种方式:

http://www.codeproject.com/KB/IP/tswindowclipper.aspx

基本思路是创建一个虚拟通道,发送你想要显示的应用程序的窗口位置,然后只渲染客户端窗口的那一部分。

答案 8 :(得分:0)

RDP本身不会这样做。

正如其他答案所说 - 你需要做一些脚本并将策略更改作为一个kludge,使RDP登录很难运行除了预期的应用程序以外的任何东西。

然而,截至2008年,Microsoft已通过终端服务发布了应用程序虚拟化技术,可以让您无缝地完成此任务。

答案 9 :(得分:0)

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

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