当通过RDP访问PC时,软件会自行禁用


5

我们有一台大型专业打印机,它具有供应商特定的软件,可以在其外部使用,只是在Windows控制面板中显示为打印机。该软件可识别我们何时将RDP插入机器并在其专有控制面板内“断开”PC与打印机的连接。

当TeamViewer之类的应用程序用于访问机器时,一切都很顺利。

从表面上看,该应用程序通过“强制执行”来确保打印机所使用的机器是一个步进式工作站,或者支持人员通知我,从而帮助我们安全。

如果TeamViewer等修复了问题,那么问题是什么?我们的仓库中有许多无头工作站连接到各种专用机器,所有这些都通过RDP使用。我们希望/需要保持对机器的访问,以保证我们的生产人员的理智。

问题的关键 - 具体来说,机器如何知道它是通过RDP(终端服务管理???)访问的,以及如何在不改变应用程序或驱动程序的情况下解决这个问题。

值得注意的是,正在使用的系统是通过USB连接到打印机的Windows 7 Pro机器。

谢谢!纳特

编辑

是否有任何/ admin开关等的组合可能会解决这个问题?简单地把/ admin没有。


1
愚蠢的问题 - 您是否尝试过将打印机软件作为其他用户运行,而不是通过RDP连接的用户?
D.Iankov

1
有些应用程序实际上拒绝使用RDP,因为它违反了许可政策。
jjlin

我不明白这个问题。从技术上讲,TeamViewer不是RDP软件,因为它不会导致软件断开连接。在使用RDP时,您是否要求如何防止打印机断开连接?我无法弄清楚你在问什么。它足够简单,通过查看RDP独有的各种细节来确定计算机是否通过RDP连接。 请供应商帮助您禁用此功能。
Ramhound

Answers:


2

具体来说,机器如何知道它是通过RDP访问的?

并不关心。该软件可以使用:

  • GetSystemMetrics(SM_REMOTESESSION) - 可以被愚弄/admin或者/console;

  • WTSQuerySessionInformation(WTS_CURRENT_SESSION)并检查会话名称(WTSWinStationName)是否为- console或者rdp-tcp#<n>- 可以使用未记录的wtsapi32.dll函数重命名会话;

  • WTSQuerySessionInformation(WTS_CURRENT_SESSION)和检查协议(WTSClientProtocolType),如果它wdconrdpwd- 这根本不能改变。

TeamViewer和VNC的工作原理是它不使用终端服务,只连接到用户所在的同一会话。


另一个可能的原因是远程桌面中的“打印机重定向”,可以在“本地资源”下的客户端中禁用它。


谢谢 - 你是对的,我问的是特殊的托盘工具如何通过RDP进入(即软件)。我们将看看实现#2的建议,看看是否能解决问题..我们确实尝试清除打印机重定向并使用管理开关但没有成功,之前似乎是“简单”的答案。我知道Teamviewer,VNC等与RDP根本不同:)再次感谢!
blckgrffn

@blckgrffn:据我记得,该函数WinStationRenameW(HANDLE hServer = WTS_CURRENT_SERVER_HANDLE, LPWSTR *oldName, LPWSTR *newName)winsta.dll库中,需要SeTcbPrivilege。我只在WinXP上测试过它。
grawity
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.