![打印机驱动程序需要什么权限?](https://linux22.com/image/801415/%E6%89%93%E5%8D%B0%E6%9C%BA%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E9%9C%80%E8%A6%81%E4%BB%80%E4%B9%88%E6%9D%83%E9%99%90%EF%BC%9F.png)
Windows 7 专业版,32位
我们有一台专门用于特定生产任务的打印机。这台打印机的驱动程序有一个奇怪的问题,当具有有限权限(“用户”组)的用户登录时,“打印机首选项”中的某些选项被禁用(例如,按钮被禁用,变灰),而当属于管理员组成员的用户登录时,这些选项被启用。我联系了打印机制造商,但他们没有给予我太多的配合。
我安装了 Process Explorer 来查找任何可能为我提供线索的句柄,以了解驱动程序可能需要提升哪些文件的权限,但是我看不到任何线索。
我的问题是:我还能如何确定驾驶员需要什么权限?
答案1
我发现这个问题有几种不同的表现形式。它几乎总是由旧打印机驱动程序或不完全支持 UAC 的专用驱动程序引起。
需要检查以下几件事:
- 您是否在使用打印服务器?如果是,请确保在打印服务器本身的打印队列的打印机首选项中启用了驱动程序特定的选项。我见过某些 Xerox 驱动程序,如果服务器上未启用打印机首选项选项(例如双面打印),则客户端会禁用这些选项。
- 某些打印驱动程序使用 SNMP 查询打印机以确定已安装哪些附加组件(例如双面打印器),从而在“打印机首选项”中启用这些功能。您的打印机或驱动程序应该记录了这一点。
- 如果您卸载打印机并重新安装,是否可以暂时解决问题?如果可以,则可能是其他打印驱动程序与共享 DLL 或注册表不兼容。
- 您是否通过 GPO 或登录脚本中的实用程序将打印机安装为每台计算机连接
printui.dll
?由于 UAC,较旧的驱动程序有时在这种情况下无法正常工作。尝试按用户安装打印机以测试此理论。
我安装了 Process Explorer 来查找任何可能为我提供线索的句柄,以了解驱动程序可能需要提升哪些文件的权限,但是我看不到任何线索。
你走在正确的道路上,只是你用错了工具。Process Explorer 会向你展示每个进程都打开了什么,这对于解决 DLL 版本问题等问题非常有用,但你需要更深入的了解。进程监控。ProcMon 的优点在于它会记录您 Windows 计算机上发生的几乎所有事情,而 ProcMon 的缺点在于它会记录您计算机上发生的几乎所有事情。我们谈论的是数千万个事件。
首先,当您以管理员组用户身份登录时,筛选仅由打印后台处理程序 ( spoolsv.exe
) 生成的事件。转到打印机首选项的选项部分。等待记录的事件数量减少,排除所有之前的事件,然后开始切换为非特权用户禁用的选项。然后立即停止记录。这有望将您需要查看的事件限制在可管理的数量内。您的打印机首选项设置可能只是注册表项,因此也许可以从那里开始。如果您可以找到特定的注册表项,请仅针对它筛选事件,然后再次测试设置以确认您已找到它。然后只需授予 BUILTIN\Users 组对注册表项或项的权限。
不幸的是,说起来容易做起来难。除非你对 Windows 有很深的了解,否则这通常是一个反复试验的过程。
答案2
答案(就我而言)出奇的简单和合乎逻辑:管理打印机赋予用户或组的权限。