在2003R2中通过组策略将_default_打印机设置为XP

Win 2003 R2安装程序。 我可以通过组策略推送打印机,并使用pushprinterconnections.exe,但打印机未设置为默认打印机。 任何想法如何通过组策略设置XP的默认打印机?

在过去,我已经使用启动脚本完成了这个任务。

使用wscript:

Set WSHNetwork = CreateObject("WScript.Network") WSHNetwork.SetDefaultPrinter "[PRINTER_NAME]" 

从这个链接采取

在对这个答案的评论中,你提到了一个与时间有关的问题。 在我们的系统上,我调用通过添加脚本来设置默认打印机的脚本

用户configuration – 模板 – 系统/login – 在login时运行程序

“login时运行程序”下的程序发生在configuration文件加载后,并在Windows资源pipe理器启动后。 我不是100%肯定,这将在所有情况下处理时间问题,但它对我有用。

这是一个令人惊讶的烦恼问题。 第一个问题是默认的打印机设置是用户特定的。 第二个问题就像你在Jimmie的评论中指出的那样,即使使用每个用户的login脚本,也存在打印机技术上还不存在或者HKCUconfiguration单元尚未完成加载的时间问题。

我们最终在我们的情况下做的是基本上使用一个login脚本循环寻找打印机存在之前,它试图将其设置为默认。 如果在一定时间后找不到,就放弃。

我们有学区使用R2打印部署实验室。 为了解决这个从R2中遗漏的function,我们使用Kixtart来提供帮助。 这将有助于您在特定的实验室中为用户部署打印机。 这也将提供等待窗口添加打印机所需的延迟。

实验室有一个命名约定。 HS101-01,HS101-02,HS102-01,HS102-02等

使用来自组策略对象的kixtart启动脚本,我们有kix32.exe执行下面的脚本。

 ;Capture room number $pos = INSTR(@WkSta, "-"); IF $pos > 0 $Room = LEFT(@WkSta, ($pos - 1)); ; ? $Room ELSE $Room = @WkSta; ENDIF SLEEP 45 ; Give the computer time to log in and add the printer ;;;;;;;;;;;;; BEGIN PRINTER DEFAULTS LIST ;;;;;;;;;;;; SELECT Case $Room = "HS71" SetDefaultPrinter("\\nebsdfs\HS71 - HP LaserJet 4100 Series PCL") Case $Room = "HS086" SetDefaultPrinter("\\nebsdfs\HS086 - HP LaserJet 4000") Case $Room = "ES102" SetDefaultPrinter("\\nebsdfs\ES102 - HP LaserJet 4000") ENDSELECT ;;;;;;;;;;;;;; END PRINTER DEFAULTS LIST ;;;;;;;;;;;;; 

我希望这将有所帮助。 谢谢。