检查是否存在打印机连接(不可靠的打印机映射)

检查是否存在打印机连接(不可靠的打印机映射)

我有一个实验室区域,里面有大约 75 个 XP 盒子。登录时,我们使用 VBS 中的 AddWindowsPrinterConnection 方法映射两台服务打印机。5-10% 的时间,用户发现打印机未成功映射并且他们的打印作业失败。如果他们重新启动或注销,打印机通常会在第二次尝试时成功映射。

我想在脚本中添加逻辑来检查打印机是否正确映射,如果没有,则重新运行 AddWindowsPrinterConnection 命令 - 但我不知道如何以编程方式检查打印机对象是否已映射。

或者是否有更可靠的策略可以为这些配置文件持续映射多台打印机?登录脚本仍然是实现此目的的最佳方法吗?

答案1

看看下面的脚本。它报告当前分配的打印连接。我认为这足以让您开始编写自己的脚本。

OPTION EXPLICIT

Dim oNetwork            ' WScript.Network object
Dim colPrinters         ' A collection of the users printer connections
Dim x               ' The canonical scratch variable of doom!

On Error Resume Next

Set oNetwork = CreateObject("WScript.Network")
Set colPrinters = oNetwork.EnumPrinterConnections

' Iterate thru the collection of printers
for x = 1 to colPrinters.count Step 2
    WScript.Echo "Printer: '" & colPrinters(x) & "' on port '" & colPrinters(x - 1) & "'"
next

set oNetwork = Nothing
set oShell = Nothing

答案2

您可能还想看看使用打印机管理工具 (prnadmin.dll)它是 Windows 资源工具包的一部分。它对特定系统或用户配置文件中的打印机提供了更大的控制权。

相关内容