我有一个login脚本设置,删除所有旧的打印机,然后添加当前的一组networking打印机。
码
Set WSHPrinters = WSHNetwork.EnumPrinterConnections For LOOP_COUNTER = 0 To WSHPrinters.Count - 1 Step 2 If Left(WSHPrinters.Item(LOOP_COUNTER +1),2) = "\\" Then WSHNetwork.RemovePrinterConnection WSHPrinters.Item(LOOP_COUNTER +1),True,True End If Next 'Install Network Printers WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER1" WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER2" WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER3" WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER4"
这很好,但似乎重置用户机器上当前的默认打印机。
有没有办法保留用户机器上当前的默认打印机?
这是login时为用户提供networking打印机的最明智的方式吗? 或者有其他更好的方法吗?
很感谢任何forms的帮助。
我上次编写脚本的时候,我为AD中的每台打印机添加了一个组,然后将该用户添加到任何打印机组的默认设置中,并在login脚本中检查此组成员资格,并设置相应的默认值。
很明显,这个环境是相当固定的,所以这很容易确定 – 在模板上设置默认打印机的负担,而不是穷人(在需要的时候仍然可以暂时地手动修改)。 更明显的方法可能是在删除打印机之前检查默认打印机是什么,然后(如果该打印机在脚本之后仍然存在)重新应用默认打印机设置。
但是正如TomTom写的,现在打印机可以使用组策略进行连接 – 然后你不应该遇到任何你提到的问题。
我还记得做一个registry转储的打印机registry项,然后只是导入它非常快,如果你有可能冻结系统configuration(如在TS)这是很有趣的,虽然不是很好维护;)
为什么要使用脚本?
我使用组策略机制的客户端扩展(很久以前推出,是多年以来所有Windows更新的一部分)推出打印机configuration(和映射的驱动器)。
我使用了一个名为con2prt.exe的WinNT资源工具包中的一个旧的exe文件。
调用它的最好方法是使用VBSlogin脚本,如下所示:
'Mapping printers needed by everyone Set WSHShell = CreateObject("Wscript.Shell") WSHShell.Run ("\\SERVER\SYSVOL\SERVER.local\scripts\map_printers.bat")
Map_Printers.bat应该包含
:: Map Printers : HP 1600 \\SERVER\SYSVOL\server.local\scripts\con2prt.exe /cd \\SERVER\HP1600 :: Ricoh Aficio 2035e \\SERVER\SYSVOL\server.local\scripts\con2prt.exe /c \\SERVER\RICOH2035 :: Samsung ML-2010 \\SERVER\SYSVOL\server.local\scripts\con2prt.exe /c \\SERVER\SamsML2010 :: HP BusinessInket 2230 \\SERVER\SYSVOL\server.local\scripts\con2prt.exe /c \\SERVER\HP2230
/ cd表示设置deafult。
你可以通过运行con2prt.exe /?find所有的命令。
另外 – 你可以在这里下载: http : //www.paulmcgrath.net/download.php?view.2