У меня есть лаборатория с примерно 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. Это дает больший контроль над тем, какие принтеры используются в конкретной системе или в профиле пользователя.