使用远程桌面协议时为什么找不到远程智能卡?

11

我正在使用运行VB6.0应用程序的Windows Server 2008 R2本地智能卡。

然后,我使用远程桌面连接(6.3)远程连接到这台机器。但现在该应用程序显示以下错误(智能卡):

0x8010001d The Smart card resource manager is not running.

目前的研究:

  • 由于卡片已经在远程机器上,我不想使用重定向。
  • 我尝试使用RDP的方式是错误的,使用tightVNC更为适合(这解决了问题)。
  • 不确定 - SCardEstablishContext API返回该错误,因为它在尝试使用OpenEvent API打开名为“Global\Microsoft Smart Card Resource Manager Started”的事件时收到了一个访问被拒绝的错误。在Vista和Windows 7上,该事件的默认安全性指定只有SYSTEM、LOCAL SERVICE和INTERACTIVE用户可以访问它。NETWORK SERVICE或非交互式用户将无法访问该事件。

为什么智能卡无法识别?

任何信息都将不胜感激。

注意:当应用程序在Windows Server 2008 R2上时,智能卡工作正常 - 但仅在远程连接时失败。


3
听起来好像是有意地阻止访问,以防止远程攻击者获取智能卡用来保护的任何资源的访问权限。 - Richard Schwartz
请转到http://blogs.technet.com/b/instan/archive/2011/03/27/why-can-t-i-see-my-local-smartcard-readers-when-i-connect-via-rdp.aspx。 - Michael Roland
1
在使用RDP从Windows 10连接到另一个Windows 10时出现了相同的问题。本地连接可以正常工作。 - Summer-Time
3个回答

2

使用 VNC 而不是 RDP

TLDR:将 VNC 用作 Windows 服务

如果您坚持使用 RDP,则必须修补您的 RDP DLL。如果您不想这样做,那么请使用除 RDP 之外的任何其他协议。如果是 vmware VM,请使用 vcenter 控制台。如果是 Azure VM,在没有控制台的情况下,请在具有智能卡的服务器上安装 VNC-server-softer,然后通过 VNC-client 从其他位置访问。"TightVNC"(https://community.chocolatey.org/packages/tightvnc)对我来说效果很好。

运行 TightVNC 服务器有两种方法:

  • TightVNC Server(服务模式) - 使用 VNC-client 将带您进入 Windows 登录屏幕。
  • TightVNC Server(应用程序模式)

您需要将 TightVNC 作为 Windows 服务运行。然后,您将启动一个新会话。否则,您将只是在现有的 RDP 会话上方,并且仍然无法看到远程智能卡。

长版本

如果你远程桌面连接到一台服务器,那么该远程服务器的智能卡将会被隐藏。这种行为是内置在远程桌面连接中的,并且是有意设计的。

你可以选择将本地的智能卡带入远程桌面会话中(通过mstsc.exe的“本地资源”选项卡,然后勾选“智能卡”)。但这些是连接到你的笔记本电脑上的本地智能卡,而不是连接到远程服务器的智能卡。

因此,如果你使用远程桌面连接,你可以选择要么看不到任何智能卡(无论是本地还是远程),要么只能看到你的本地智能卡。通过远程桌面连接无法查看远程智能卡。

这是远程桌面连接内部的设计。如果你想要改变它,那么你必须手动修补一些.DLL文件。实际上,有人已经做到了。请参考这个问题:


0

这是不可能的,你不能使用本地插入的服务器智能卡,因为你的会话被重定向到客户端,只有客户端的智能卡可以在rdp会话中访问。 微软出于安全原因而制作了这样的设置。 但是有一个解决方法,就是使用软件或硬件共享设备(智能卡读卡器、USB令牌、USB设备): 软件示例(我只找到了付费解决方案),请参见link 或者使用设备服务器进行硬件共享,但它只能在局域网中使用,无法通过广域网使用。


RDP会话除了RDP会话本身,无论如何都看不到重定向的智能卡。这是设计上的限制。 - Sergey Podobry
一个解决方法是使用UltraVNC。我测试过,可以成功地从WAN远程客户端访问远程智能卡。 - eduardomozart

-1
在创建远程桌面会话之前,请单击“显示选项”。在“本地资源”选项卡下,有一个“本地设备和资源”面板。单击“更多”按钮。
单击“智能卡”。现在完成远程桌面会话。

1
这对我来说没有效果 - 本地和远程机器都在运行Windows 10。 - Dave M
3
如果智能卡在用户所坐的本地机器上,那么这将起作用。但是OP问的是智能卡在远程机器上的情况。这并没有解决问题。 - mrtumnus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接