Назад | Перейти на главную страницу

Проверьте наличие подключения к принтеру (ненадежные сопоставления принтеров)

У меня есть лаборатория с примерно 75 коробками XP. При входе в систему мы сопоставляем два обслуживаемых принтера с помощью метода AddWindowsPrinterConnection в VBS. В 5-10% случаев пользователи обнаруживают, что принтеры не подключены успешно и их задания на печать не выполняются. Если они перезагружаются или выходят из системы, принтеры обычно успешно подключаются со второй попытки.

Я хотел бы добавить логику в свой сценарий, чтобы проверить, правильно ли сопоставлены принтеры, а если нет, повторно запустите команду AddWindowsPrinterConnection, но я не знаю, как программно проверить, сопоставлен ли объект принтера.

Или есть более надежная стратегия постоянного сопоставления нескольких принтеров для этих профилей? Сценарии входа в систему по-прежнему лучший способ сделать это?

Взгляните на сценарий ниже. Он сообщает о назначенных в данный момент подключениях для печати. Думаю, это должно дать вам достаточно, чтобы вы начали перерабатывать свой собственный сценарий.

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

Вы можете также использовать Инструмент администрирования принтера (prnadmin.dll) который входит в состав Windows Resource Kit. Это дает больший контроль над тем, какие принтеры используются в конкретной системе или в профиле пользователя.