ChatGPT解决这个技术问题 Extra ChatGPT

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

rdp

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

正是我正在寻找的...感谢您的提问!
@user172681 的回答提供了最新的链接。现在还有一个名为“RemoteApp Tool”的漂亮工具(请参阅页面顶部更新部分中的链接),用于配置远程应用程序和生成 RDP 文件……在 Win7 上非常适合我。

T
Thorsten Schöning

“备用外壳”doesn't seem to work 在 Windows 的最新版本中不再存在,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

只是为了增加一些精确性:必须在 .rdp 文件本身和服务器上的注册表中进行上述更改(从第一部分开始)。
作为记录,有两个名称相似的 RDP 键:remoteapplicationfile:sremoteapplicationprogram:s*file 键指定本地(主机) 计算机上的可执行文件的完整路径,而 *program 键指定远程 计算机上的可执行文件。
B
Bhargav Rao

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

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

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


对我不起作用...我在 .rdp 文件中看到了该属性,但是进行更改(看起来应该可以),当我启动连接时没有更改任何内容。从 vista x64 远程获取 7 x64。
不幸的是,链接已失效。
你能用更多细节更新这个,或者至少修复链接吗?
在 Windows 10 上不适合我。他们是否删除了此功能?
佚名

这是很容易实现的。

我们需要允许任何未列出的程序从 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 右键点击文件,点击Merge,Yes,Ok。

修改我们的 .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 输入您的用户名和密码并连接。

https://i.imgur.com/zEZqL6Q.png


上面的优秀答案使用 remoteapplicationprogram:s 键来指定驻留在 remote 计算机上的应用程序。要在远程计算机上运行本地 主机端 应用程序,请改用 remoteapplicationfile:s 键。
这很完美,唯一不是 100% 清楚的是 reg 必须在远程机器上运行
y
ypnos

这称为“无缝”模式。 rdesktop,Unix 的 RDP 客户端,能够做到这一点。从手册页:

-A 启用无缝 RDP。在这种模式下,rdesktop 为服务器端的每个窗口创建一个 X11 窗口。此模式需要SeamlessRDP 服务器端组件,该组件可从 http://www.cendio.com/seamlessrdp/ 获得。使用此选项时,您应该指定一个启动 shell,它通过无缝 RDP 启动所需的应用程序。

有关详细信息,请参阅提到的 Cendio website


Windows上有这样的东西吗?
c
chrissr

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

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


注意:用户仍然可以按 CTRL-Alt-Del 并访问其他应用程序。您可能希望为将通过 RDP 登录的帐户或组禁用 CTRL-Alt-Del。
这有效地使用户无法定期登录。
A
AlexDev

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

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


L
LiamGu

我认为思杰就是这样做的。虽然我不确定具体细节,因为我只使用过几次。我认为我使用的那个叫做 XenApp 但我不确定这是否是你所追求的。


XenApp 似乎更多的是关于应用程序虚拟化而不是远程访问(尽管我看到它有远程选项)。我也在寻找开源阵营的东西(比如rdesktop)。
XenApp 的核心组件仍然是基于服务器的计算(就像十年前产品被称为 MetaFrame 一样)。只是营销方式发生了变化,产品范围扩大到不仅仅包含应用程序远程处理核心。
J
Jon Clegg

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

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

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


S
Sefler

Google for RemoteApp 并且只有 Windows Server 2016+ 提供。还有一个名为“RemoteApp Tool”的黑客工具可在 Windows Pro 版本中启用 RemoteApp 支持/


在 Windows 11 上完美运行。我也使用“RDP Wrapper”。
f
fencepost

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

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


J
James

RDP 本身不会这样做。

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

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅