Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > vba and wsh подключение принтеров


Автор: InventoRs 10.9.2008, 21:59
Всем доброго времени суток, Уважаемый All прошу Вашей помощи в создании и построении системы. У самого не хватает нужных знаний, хотя стараюсь разобраться и учиться.
Задача:  необходимо организовать подключение принтеров в локальной сети для пользователей, при чем есть еще один терминальный сервер который сейчас вводится в работу.
Сейчас на просторах рунета нашел вот такой вот код:
Код

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
Select Case objComputer.Get("Location")
  Case "Отдел 1"
      sPrintPath = "\\server1\HPLaserJ"
      PrintLocation = "Принтер в Отделе 1"
  Case "Отдел 2"
      sPrintPath = "\\server2\HP1100"
      PrintLocation = "Принтер HP1100 Отдел 2"
  Case Else
   MsgBox("Для установки принтера обратитесь к системному администратору.") :WScript.Quit
End Select

'Выполняем проверку установленных принтеров
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


более менее разобрался с кодом и тем что он делает, пробывал рисовать свои варианты (здесь подключение принтеров идет на основе данных из AD свойств компьютера, его место расположение, я переделывал на привязку к комнате которая указана в свойствах пользователя.)

какая проблема при работе с данным скриптом:
если идет подключение сетевого принтера и он расположен на этой же машине на которой выполняется скрипт, то происходит обрушение скрипта (а так как в сети только один из 14 принтеров, сетевой, то возникает проблема).
Есть еще одна проблема, это подключение принтеров на сервере терминалов, вся проблема в том что скрипт берет данные из свойства (расположение) компьютера в АД, а у сервера терминалов свое положение. поэтому принтера не могут подключатся.  как можно решить эту ситуацию?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)