Войти

Показать полную графическую версию : Пользователям не мапится принтер Samsung ML-3470


dimonprodigy
07-09-2011, 22:29
Доброго времени суток.

Совсем сломал голову со следующей проблемой.
Имеется домен, имеются скрипты выполняемые при логине, имеется принтсервер, имеется принтер, имеется компьютер.

Задача следующая: есть скрипт, который подключает народу принтеры в зависимости от значения поля "Location" (оное поле можно найти в свойствах компьютера). Скрипт имеет следующий вид (это тестовый, рабочий отличается количеством отделов)

Option Explicit
Dim WSHNetwork, Computer, Path, strComputerDN, objSysInfo, objComputer, sPrintPath, PrintLocation
Dim objWMIService, colInstalledPrinters, objPrinter
Set WSHNetwork = CreateObject("WScript.Network")
On Error Resume Next
Path = WSHNetwork.ComputerName
Set objSysInfo = CreateObject("ADSystemInfo")
strComputerDN = objSysInfo.ComputerName
Set objComputer = GetObject("LDAP://" & strComputerDN)

'Назначаем необходимый для установки сетевой принтер
'в зависимости от значения поля Location

PrintLocation = "All"

PrintLocation = objComputer.Get("Location")

Select Case PrintLocation
Case "Отдел 1"
WSHNetwork.AddWindowsPrinterConnection "\\printserver\printer1"
WSHNetwork.AddWindowsPrinterConnection "\\printserver\printer2"
sPrintPath = "\\printserver\printer3"
WScript.Quit
End Select

WSHNetwork.AddWindowsPrinterConnection sPrintPath
WSHNetwork.SetDefaultPrinter sPrintPath

'Выполняем проверку установленных принтеров
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")

For Each objPrinter in colInstalledPrinters
If PrintLocation = objPrinter.Location Then
WScript.Quit
End If
Next


Что мы видим? Если в комментарии компьютера указано "Отдел 1", то пользователям, работающим за этим ПК, назначается три принтера - printer1, printer2 и printer3; printer3 назначается дефолтным. Обычный скрипт, короче, содранный моими предшественниками на просторах Сети :)
Скрипт этот через групповую политику распространяется на нужные объекты.

Фишка в следующем: никак не хочет назначаться принтер по-умолчанию (это Samsung ML-3470). Я уже и переименовывал его, и другой порт подсовывал, и драйвера обновлял - не хочет стервец ни в какую. Причем если открыть "пуск -> выполнить -> \\printserver\printer3" прекрасно подключается и работает...




© OSzone.net 2001-2012