每当我尝试运行屏幕键盘(或任何其他 Windows“轻松访问”实用程序)时,我都会收到错误消息A referral was returned by the server
,然后 Windows 会询问我是否要删除(据称)损坏的快捷方式。
他们用过的工作,即使现在,它们有时也工作,但通常不工作。我没有注意到它们何时工作的任何明显模式,也没有注意到它们工作和不工作之间可能发生了什么变化。
研究该问题一直没有结果,因为提到该错误的(相对)少数页面通常只是胡乱猜测、一些与其它第三方软件无关的讨论,最终总是得不到解决方案。
可能存在什么问题?如何解决?
答案1
解决方案
这个问题困扰了我几个月,最后经过一些测试才弄清楚。事实证明,如果 Cryptographic 服务未运行,就会出现问题。只需运行 Cryptographic 服务,轻松访问工具就可以正常运行。
技术说明
安全
那么,为什么无障碍工具需要加密服务呢?这是因为无障碍工具需要在系统的任何时候都可以访问,因为它们提供的功能允许人们……使用权系统。因此,如果它们在受限制的、提升权限的区域(例如登录屏幕或 UAC 对话框)中不可用,它们就没有多大用处。
因为它们需要可用到处,包括限制区域,它们还必须是安全的,以防止打开可利用来利用限制区域的攻击媒介。为此,Windows 必须通过检查其数字签名来验证程序。为此,它需要加密服务。
有人可能会认为,在桌面等常规用户模式区域中运行时,它不需要这样做,但尝试在用户模式下无条件运行它并尝试仅在提升区域中进行验证会不必要地使其复杂化,从而产生更多漏洞的可能性。因此,Windows总是在运行时验证辅助功能工具,因此总是需要加密服务。
编程缺陷
(当然,如果服务尚未运行,则应该运行它。良好的设计实践要求程序始终检查依赖项,如果不存在则安装或运行它们,并返回合适的如果他们不能,则显示消息。如果他们这样做了,那么这个问题就不会发生,因为它会自动运行加密服务和/或给出一个错误,清楚地说明问题是什么,而不是这样的神秘消息。)
其他症状
另请注意,如果加密服务未运行,您可能会遇到其他与安全相关的问题,例如以提升权限运行项目而不显示 UAC 对话框。例如,单击系统保护链接我的电脑可能会显示等待光标片刻,然后什么也没有发生,现在单击我的电脑窗口导致 Windows 发出叮当声(即禁用)。这是因为consent.exe
尝试运行以显示 UAC 提示,但如果没有运行加密服务,它就无法执行其任务,只能挂起。要修复它,您需要打开任务管理器并 kill consent.exe
。您将收到一条Incorrect function
错误消息,并且我的电脑再次启用。(您仍然需要运行加密服务才能使其真正发挥作用。)