组策略推打印机驱动,200台机器一半装成通用版,我追到版本号才找到原因
上周给三个科室统一推打印机驱动,用的是组策略里的「打印机部署」策略。按理说推完重启就生效,结果第二天早上电话就来了——一半机器打出来是乱码,另一半正常。
我先在出问题的那台机器上翻驱动版本,发现装上去的是微软自带的通用PCL驱动,版本号10.0.x,而我们标准化的是厂商的4.2.1。同一份GPO,同一台打印服务器,凭啥有的机器装对有的装错?
追了一下午,根因是客户端缓存。Windows在装网络打印机时,会先看本地驱动仓库里有没有匹配的驱动。之前手动装过通用驱动的机器,系统认为「已经有能用的了」,就不再拉服务器上的厂商驱动。没装过的那批反而老实按策略走。这就是为什么故障率卡在50%上下——刚好是历史手动装过打印机的那批人。
解决办法我试了两条路:
一、在打印服务器上把通用驱动从「附加驱动」里删掉。 只保留厂商4.2.1的x64和x86两个版本。这样客户端没得选,只能拉对的。这招最干净,但要求打印服务器上别留历史包袱。
二、GPO里加一条「指向并打印限制」。 把用户限制到只允许用指定驱动,配合「禁止安装使用内核模式驱动的打印机」一起开。这条我拿一个科室先试的,重启后驱动版本全部统一到4.2.1。
另外提醒一个细节:改完策略别指望gpupdate就完事,打印机驱动缓存得清。我是在登录脚本里加了一段,删掉 C:\Windows\System32\spool\drivers 下旧的驱动包再触发重装,不然还会读到老缓存。这一步不做,前面的策略等于白改。
还有,推之前我特意留了一台样机反复重启了三次,确认驱动版本稳定在4.2.1、打印测试页正常,才推的另外两个科室。国企这环境,一旦全推出去再回滚,光收尾就得一天。
现在三个科室240多台机器的驱动版本我都能在打印服务器上统一看到,谁偏离了版本号一目了然。
问一句:你们推打印机驱动是走GPO还是用脚本?有没有碰到过客户端死认本地缓存、策略怎么刷都不生效的情况,最后是怎么让它强制重装的?
