У меня есть сценарий входа в систему, который удаляет все старые принтеры, а затем добавляет текущий набор сетевых принтеров.
КОД
Set WSHPrinters = WSHNetwork.EnumPrinterConnections
For LOOP_COUNTER = 0 To WSHPrinters.Count - 1 Step 2
If Left(WSHPrinters.Item(LOOP_COUNTER +1),2) = "\\" Then
WSHNetwork.RemovePrinterConnection WSHPrinters.Item(LOOP_COUNTER +1),True,True
End If
Next
'Install Network Printers
WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER1"
WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER2"
WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER3"
WSHNetwork.AddWindowsPrinterConnection "\\SERVER\PRINTER4"
Это нормально, но, похоже, сбрасывает текущий принтер по умолчанию на компьютере пользователя.
Есть ли способ сохранить текущий принтер по умолчанию на компьютере пользователя?
Это самый разумный способ предоставить пользователям сетевые принтеры при входе в систему? Или есть альтернативные или лучшие способы сделать это?
Любая помощь очень ценится.
Я использую старый исполняемый файл con2prt.exe, входящий в комплект ресурсов WinNT.
Лучше всего вызвать его из сценария входа в VBS следующим образом:
'Mapping printers needed by everyone
Set WSHShell = CreateObject("Wscript.Shell")
WSHShell.Run ("\\SERVER\SYSVOL\SERVER.local\scripts\map_printers.bat")
И Map_Printers.bat должен содержать
:: Map Printers
: HP 1600
\\SERVER\SYSVOL\server.local\scripts\con2prt.exe /cd \\SERVER\HP1600
:: Ricoh Aficio 2035e
\\SERVER\SYSVOL\server.local\scripts\con2prt.exe /c \\SERVER\RICOH2035
:: Samsung ML-2010
\\SERVER\SYSVOL\server.local\scripts\con2prt.exe /c \\SERVER\SamsML2010
:: HP BusinessInket 2230
\\SERVER\SYSVOL\server.local\scripts\con2prt.exe /c \\SERVER\HP2230
В /CD значит глухой.
Вы можете узнать все команды, запустив con2prt.exe /?
Также - вы можете скачать здесь: http://www.paulmcgrath.net/download.php?view.2
Зачем вообще использовать скрипт?
Я развертываю конфигурации принтеров (и подключенные диски), используя клиентские расширения механизма групповой политики (который был введен довольно давно и является частью всех обновлений Windows за последние годы).
В прошлый раз, когда я написал это в сценарии, я добавил группу для каждого принтера в AD - затем добавил пользователя в любую группу принтеров, которая должна была быть его или ее по умолчанию, - и в сценарии входа проверил членство в этой группе, установив соответствующее значение по умолчанию.
Очевидно, что эта среда была довольно фиксированной, поэтому это было легко определить - возложить бремя на установку принтера по умолчанию в шаблонах вместо бедного пользователя (который все еще мог временно изменить его вручную, когда это необходимо). Более очевидный подход может заключаться в том, чтобы проверить принтер по умолчанию перед удалением принтеров, а затем (если этот принтер все еще существует после вашего сценария) повторно применить настройку принтера по умолчанию.
Но, как пишет TomTom, в наши дни принтеры можно подключать с помощью групповых политик - и тогда вы все равно не должны испытывать ни одной из упомянутых вами проблем.
Я также помню, как делал дамп реестра для раздела реестра принтеров, а затем просто импортировал его, что было невероятно быстро, если у вас есть возможность заморозить конфигурации системы (например, на TS), это довольно весело, хотя и не очень удобно в обслуживании;)