Доброго времени суток.
Совсем сломал голову со следующей проблемой.
Имеется домен, имеются скрипты выполняемые при логине, имеется принтсервер, имеется принтер, имеется компьютер.
Задача следующая: есть скрипт, который подключает народу принтеры в зависимости от значения поля "Location" (оное поле можно найти в свойствах компьютера). Скрипт имеет следующий вид (это тестовый, рабочий отличается количеством отделов)
Код:
![Выделить весь код](images/misc/selectcode.png)
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 назначается дефолтным. Обычный скрипт, короче, содранный моими предшественниками на просторах Сети
![Smile](images/smilies/new/smile.gif)
Скрипт этот через групповую политику распространяется на нужные объекты.
Фишка в следующем: никак не хочет назначаться принтер по-умолчанию (это Samsung ML-3470). Я уже и переименовывал его, и другой порт подсовывал, и драйвера обновлял - не хочет стервец ни в какую. Причем если открыть "пуск -> выполнить -> \\printserver\printer3" прекрасно подключается и работает...