突然,在我管理的 Windows Vista Business 工作站上,Windows 打印后台处理程序服务消耗了超过 1GB 的内存。
今天早上我接到电话说用户无法打印。我发现控制面板中的打印机小程序中所有打印机都不见了。我重新启动了机器,起初打印机仍然不见了,但几分钟后(我不停地用头撞墙),它们突然出现了。
我不再担心这件事,直到今天晚些时候它又在同一个工作站上发生了。
据我所知,计算机没有任何变化。没有添加新打印机,没有安装新打印驱动程序,也没有使用新软件。
我尝试清除 spooler 文件夹 (C:\Windows\System32\spooler\printers),该文件夹今天早上确实有四个打印作业,但重新启动 spooler 服务后问题仍然存在。启动服务时,它开始使用 824 KB 内存,然后在大约 20 秒后,它开始每秒增加约 10MB,直到稳定在 1.8GB 左右。
更新
现在我正在逐个删除打印机,并在删除期间重新启动后台处理程序。(这很有趣,因为每次重新启动后台处理程序时,我都必须等待后台处理程序再次消耗 1.8GB 才能删除下一个)。所有实际打印机都已删除,只剩下传真、XPS 打印机和 Quicken PDF 打印机。我试图删除所有驱动程序,发现有一个我们不再使用的打印机的驱动程序拒绝删除。它说打印机正在使用中。打印机是 HP Color LaserJet 3500。
我尝试了所有能找到的解决方案来删除该打印驱动程序(将驱动程序重命名为 unidrv.dll,然后重新启动后台处理程序、重新启动等)。我的下一步是驱动到那里并以安全模式启动并尝试在该状态下删除它,但任何其他可以拯救我驱动器的方法都很棒。
答案1
我认为是打印驱动程序有问题,加载到了后台处理程序中。尝试一次删除一台打印机,然后重新启动后台处理程序服务并观察内存使用情况。
您可能还想调查诸如进程监视器之类的程序,看看它是否能看到已被进程加载的 DLL(查找驱动程序)以及它是否可以识别 DLL 分配的内存。
答案2
停止后台处理程序服务,终止进程。删除 C:\WINDOWS\system32\spool\PRINTERS 中的所有内容。将打印机设置设置为打印 RAW 并直接打印到打印机。