管理打印机,最好不要使用 GPO

管理打印机,最好不要使用 GPO

我所在的公司有大约 3,000 台 PC 和大约 1,500 台打印机。目前安装打印机的方法主要是手动操作,我们正在考虑将这一过程自动化。这个问题有一些限制:

  • 必须适用于 Windows 7 和 Windows 10
  • 解决方案不能是打印服务器

除此之外,我还有一些个人优先解决方案:

  • 最好不需要 PC 的管理权限
  • 最好可以远程管理,也就是说,对打印机型号的更改可以复制到域中的所有用户
  • 最好只需要很少的脚本,因为我们计划让最终用户操作这个工具。

我们当前正在使用的流程是运行以下命令(或创建批处理脚本),但这绝对不是一个有效的解决方案:

rundll32 printui.dll,PrintUIEntry /ia /m "Kyocera FS-4100DN KX" /f "\\share\xfer\PRTscript\_drivers\KXDriver\32bit\OEMsetup.inf"

这不是一个有效的解决方案,因为:

  1. 我们无法将更改复制到客户端(除非我们将“脚本”放在共享位置
  2. 安装打印机需要管理权限
  3. 这是一项手动任务,无法区分 32 位和 64 位(或者至少必须同时满足这两种要求)

现在我知道我们可以使用组策略部署打印机的选项,但这依赖于两件事:

  1. 业务(或至少是安全组)的 OU 正确;
  2. 有问题的 PC 正在获取组策略(它们应该

是的,我知道组策略符合我的所有要求和偏好,但我只是想在整理我的 OU(和子 OU、安全组和现有策略)之前看看我的选择 - 最终 GPO 将是最明智的解决方案,但我想要一个短期工具,同时我处理此事。

因此,我想,也许我们可以使用一个简单的 Visual Basic 脚本 - 但同样,这需要大量的手动编辑,而我能想到的自动化的唯一方法是通过组策略进行部署:

Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\Server\Printer"
PrinterDriver = "PrinterDriver"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
WshNetwork.SetDefaultPrinter "\\Server\Printer"

我可以排除的下一个理论是使用打印BRM

答案1

https://drive.google.com/open?id=0ByhxkwJBdusDczU2MXhrYldfLUU

cscript printer.vbs -u ad\username -w <password> -s <computer name>
cscript printer.vbs -u ad\username -w <password> -s <computer name>
cscript printer.vbs -u ad\username -w <password> -s <computer name>
cscript printer.vbs -u ad\username -w <password> -s <computer name>

此脚本的目的是无需访问该位置即可在远程计算机上安装打印机。

我通常会列出 25 个,然后将它们复制、粘贴到管理命令窗口中并运行它们。

参照上面的 #3 32/64 位。我的脚本假设 64 位,如果失败,则返回 32 位安装。

安装打印机需要管理员权限,最好自己执行此操作,然后允许用户执行此操作。

为了防止出现错误,我删除任何具有相同名称的现有打印机/端口并重新创建它。

用户名和密码是域凭据,而不是本地凭据。也许这会给你一个起点。你可能必须修改代码,以便你可以从命令行添加打印机驱动程序信息。我主要有相同的打印机,所以我对其进行了硬编码。此外,打印机名称本身可以作为参数,我只是从来没有这样做过。

我只是调整了代码。

cscript printer.vbs -p "Printer Name" -d "HP Universal Printing PS (v6.0.0)" -i "prnhp001.inf" -h "\\<server>\drivers\Printer\prnhp001" -u ad\username -w <password> -s <computer name>

相关内容