为什么使用RDP时找不到远程SmartCard

问题描述 投票:0回答:3

我正在使用 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 用户可以访问它。网络服务或非交互式用户将无法访问该事件。

为什么不能识别智能卡?

任何信息将不胜感激。

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

vb6 remote-desktop smartcard
3个回答
0
投票

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


0
投票

使用 VNC 代替 RDP

TLDR:使用 VNC 作为 Windows 服务

如果您坚持使用 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文件。并且确实有人这样做了。在这里看到这个问题:


-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.