我正在使用 Windows Server 2008 R2,它运行一个在本地使用智能卡的 VB6.0 应用程序。
然后我使用远程桌面连接(6.3)远程连接到这台机器。但是现在应用程序显示以下错误(智能卡):
0x8010001d The Smart card resource manager is not running.
迄今为止的研究:
为什么不能识别智能卡?
任何信息将不胜感激。
注意:当应用程序在 Windows Server 2008 R2 上时,智能卡工作正常 - 但仅在远程连接时失败。
这是不可能的,您不能使用 RDP 插入的服务器的本地插入智能卡,因为您的会话被重定向到客户端,然后在 rdp 会话中只能访问客户端智能卡。 出于安全原因,Microsoft 这样做了。 但是有一个转机,比如使用软件或硬件共享设备(智能卡读卡器、Usb 令牌、Usb 设备): 软件示例(我只找到付费解决方案),请参阅link 或使用设备服务器的硬件,但它不能通过仅限 WAN 的 LAN 工作。
如果您坚持使用 RPD,那么您将不得不修补您的 RDP DLL。如果您不想这样做,请改用 RDP 以外的任何其他协议。如果它是 vmware VM,则只需使用 vcenter 控制台即可。如果它是一个 Azure VM,您没有获得控制台,那么只需在具有智能卡的服务器上安装 VNC-server-softer,然后通过 VNC-client 从其他地方访问。 “TightVNC”(https://community.chocolatey.org/packages/tightvnc)对我来说效果很好。
TightVNC服务器有两种运行方式:
TightVNC Server (Service Mode)
-- 连接 VNC 客户端将带您进入 Windows 登录屏幕。TightVNC Server (Application Mode)
您需要将 TightVNC 作为 Windows 服务运行。然后你将开始一个新的会话。否则,您将只是在现有 RDP 会话之上,仍然看不到远程智能卡。
如果您通过 RDP 连接到远程服务器,则该远程服务器的智能卡将被隐藏。这种行为被融入到 RDP 中,并且是按设计设计的。
您可以选择将本地智能卡带入 RDP 会话。 (通过 mstsc.exe 的“本地资源”选项卡,然后选中“智能卡”。)但这些是本地连接到您的笔记本电脑的智能卡。而不是连接到远程服务器的智能卡。
因此,如果您使用 RDP,那么您可以选择根本看不到任何智能卡(无论是本地的还是远程的),或者只看到您的本地智能卡。无法通过 RDP 查看远程智能卡。
这是 RDP 内部的设计。如果你想改变它,那么你必须手动修补一些.DLL文件。并且确实有人这样做了。在这里看到这个问题:
在创建远程桌面会话之前,单击“显示选项”。在“本地资源”选项卡下有一个“本地设备和资源”面板。单击“更多”按钮。
点击“智能卡”。没有完成远程桌面会话。