Windows 7专业版,32位
我们有专门的打印机来完成特定的生产任务。 此打印机的驱动程序有一个奇怪的问题,即当用户具有有限的权限(“用户”组)时,打印机首选项中的某些选项被禁用(例如,button被禁用,变灰)pipe理员组已login,选项已启用。 我已经联系了打印机制造商,但是我没有得到他们的合作。
我安装了进程资源pipe理器来查找任何可能给我提供驱动程序可能需要提升权限的文件的线索,但是我看不到任何线索。
我的问题是:如何确定驱动程序需要什么权限?
我已经看到这个问题以几种不同的方式performance出来。 它几乎总是回到旧的打印机驱动程序或不完全支持UAC的专门驱动程序。
几个一般的东西要检查:
printui.dll实用程序将打印机作为按计算机的连接安装? 由于UAC,老司机在这种情况下有时候不能很好地工作。 尝试在每个用户的基础上安装打印机来testing这个理论。 我安装了进程资源pipe理器来查找任何可能给我提供驱动程序可能需要提升权限的文件的线索,但是我看不到任何线索。
你在正确的轨道上,你只是使用了错误的工具。 Process Explorer会告诉你每个进程已经打开了什么,这对解决DLLs版本问题等问题很有帮助,但是你需要更深的魔法。看看ProcMon 。 ProcMon的好处在于,它将logging基于Windows的计算机上正在发生的一切,ProcMon的可怕之处在于它能够logging计算机上发生的一切事情。 我们正在谈论数以千万计的事件。
首先筛选仅作为pipe理员组中的用户login时由后台打印程序( spoolsv.exe )生成的事件。 转到打印机首选项的选项部分。 等待logging的事件数量减less,排除所有先前的事件,然后开始切换为非特权用户禁用的选项。 然后立即停止logging。 这应该有希望将您需要查看的事件限制在可pipe理的数量。 您的打印机首选项设置可能只是registry键,所以也许开始。 如果您可以find特定的registry项,请过滤您的事件,然后再次testing设置以确认您find了它。 然后,只需在registry项或密钥上授予BUILTIN \ Users组权限即可。
不幸的是,这说起来容易做起来难。 除非你对Windows有非常深刻的理解,否则往往是一个反复试验的例子。
答案(对于我的情况)非常简单合理:将pipe理打印机权限授予用户或组。