我们有一个很棒的 VB 脚本,它添加了多个网络打印机,然后继续选择其中一个作为默认值。
Dim multiPrinter, UNCpath1, UNCpath2, UNCpath3
UNCpath1 = "\\server\printer1"
UNCpath2 = "\\server\printer2"
UNCpath3 = "\\server\printer3"
Set multiPrinter = CreateObject("WScript.Network")
multiPrinter.AddWindowsPrinterConnection UNCpath1
multiPrinter.AddWindowsPrinterConnection UNCpath2
multiPrinter.AddWindowsPrinterConnection UNCpath3
Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\server\printer1"
PrinterDriver = "PrinterDriver"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
WshNetwork.SetDefaultPrinter "\\server\printer1"
WScript.Quit
这非常有效——唯一的问题是它不会首先删除现有的网络打印机。
这是由批处理文件单独完成的(导致登录时命令提示符窗口在屏幕上闪烁)。
reg delete "hkcu\printers\connections" /f
请有人告诉我如何将批处理文件的功能包含在 VB 脚本中。
这是一个非常基本的问题——但我是 VB 脚本的新手。谢谢。
我最终设法通过谷歌搜索找到了我正在寻找的东西:
http://community.spiceworks.com/topic/128389-is-it-possible-to-delete-all-offline-network-printers-with-vbscript-on-logon
我需要的 VB 脚本是这样的:
我已经对其进行了彻底的测试,它使所有 PDF 打印机和本地安装的打印机保持不变——只是根据我的需要定位网络打印机。
希望这可以帮助其他人尝试实现真正光滑的、组策略部署的打印机设置,并且在登录时屏幕上没有闪烁的命令提示符窗口。
注意:由于我们环境的混合性质(XP、Win7 x86 和 Win7 x64),我以管理员身份在每台 PC 上登录一次,以确保成功安装了所有 3 台打印机的相应驱动程序。所以我不依赖这个脚本来安装驱动程序(尽管可以很容易地对其进行定制)。我们的 2 台 Win7 x64 机器由于某种原因无法从网络中提取正确的驱动程序(可能是因为打印机在 XP x86 机器上共享?)通过以管理员身份登录(并在需要时手动指向正确的 .ini 文件)我能够以确保用户没有意外的驱动程序问题。该脚本只是确保为每台 PC 上的每个用户显示正确的打印队列。我不确定如何定制脚本来为多种操作系统类型选择正确的驱动程序版本,并且不想留下任何机会。
无论如何,结合起来,整个 VB 脚本在登录时做了以下 3 件事:
1) 删除该用户配置文件中的所有现有打印队列:
2)根据需要添加多个打印队列:
3) 设置正确的默认打印机:
享受!
你可以试试这个:
或在批处理文件的顶部,确保您拥有并转到链接以运行最小化的 bat 文件
http://www.computerhope.com/issues/ch000932.htm
祝你好运!