为啥使用 RDP 时找不到远程 SmartCard

Posted

技术标签:

【中文标题】为啥使用 RDP 时找不到远程 SmartCard【英文标题】:Why is remote SmartCard not found when using RDP为什么使用 RDP 时找不到远程 SmartCard 【发布时间】:2014-12-04 16:31:45 【问题描述】:

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

然后我使用远程桌面连接 (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 上时,智能卡可以正常工作 - 但只有在远程连接时才会失败。

【问题讨论】:

这听起来像是故意阻止访问,以阻止远程攻击者访问智能卡用于保护的任何资源。 见blogs.technet.com/b/instan/archive/2011/03/27/… 通过 RDP 与 Windows 10 到 Windows 10 的相同问题。本地可行。 【参考方案1】:

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

点击“智能卡”。没有完成远程桌面会话。

【讨论】:

这对我不起作用 - 本地和远程机器都在运行 Windows 10 如果智能卡在用户所在的本地计算机上,这将起作用。但是 OP 正在询问智能卡在远程机器上的情况。这并没有解决问题。【参考方案2】:

这是不可能的,您不能使用 RDP 连接到的服务器的本地插入智能卡,因为您的会话被重定向到客户端,然后在 rdp 会话中只能访问客户端智能卡。 出于安全原因,微软这样做了。 但是有一个转机,比如使用软件或硬件共享设备(智能卡读卡器、Usb 令牌、Usb 设备): 软件示例(我只找到付费解决方案),请参阅link 或使用设备服务器的硬件,但它不能通过仅 WAN 的 LAN 工作。

【讨论】:

RDP 会话不会以任何方式看到重定向的智能卡,除了 RDP 会话本身。这是设计使然。 一种解决方法是使用 UltraVNC。我进行了测试,并且可以成功地从 WAN 远程客户端访问远程 SmartCard。

以上是关于为啥使用 RDP 时找不到远程 SmartCard的主要内容,如果未能解决你的问题,请参考以下文章

为啥我使用 setup.py 安装时找不到 ansible?

为啥我的代码在渲染时找不到类?

为啥会出现错误:在 truffle 上编译时找不到导入

尝试远程调试时找不到进程调度程序的空闲套接字端口

为啥致命错误:安装 PyYAML 时找不到“yaml.h”文件?

为啥当我直接调用它时找不到类名 laravel5