none
Подключение сетевых сканеров RRS feed

  • Вопрос

  • Здравствуйте.

    Появилась такая задача: vbs скриптом подключать WSD сканеры.

    Есть vbs скрипт, который подключает сетевые принтеры, заведенные на принт-сервер на Server 2008R2, используя метод WshNetwork.AddWindowsPrinterConnection, а для подключения сканеров ничего подобного я не нашел.

    Погуглив, натыкался на подобные штуки, однако здесь строго определенные принтеры, да и не WSD, собственно.


    С уважением, Чувашлев Антон Сергеевич

    9 сентября 2013 г. 9:27

Все ответы

  • Собственно, чтобы было немного более наглядно, то приведу скрин:

    В разделе "Сеть" можно видеть устройства "Сканеры" - это именно WSD-сканеры.

    Если кликнуть ПКМ, то в меню есть пункт "Установить". Мне необходима VBS или PoSH функция, которая может это делать в автоматическом режиме. Неужели нет такой?


    С уважением, Чувашлев Антон Сергеевич

    28 октября 2013 г. 2:39
  • Попробуйте:

    $sh = New-Object -ComObject Shell.Application
    $net = $sh.NameSpace(0x12)
    $net.Items() | Where {$_.Name -match "SCAN_Name"} | Foreach {$_.InvokeVerb("Install")}

    28 октября 2013 г. 6:41
    Отвечающий
  • Увы,  не сработало.

    Я так понимаю, что какой-то конкретной функции для подобной операции нет, а этот код просто по сути проделывает то, что и руками в проводнике?


    С уважением, Чувашлев Антон Сергеевич

    28 октября 2013 г. 8:01
  • вспомнил про разговор на др Р-стайл, не удержался, загуглил.

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms630368%28v=vs.85%29.aspx

    Кстати есть эникейщик на примете.



    Set objDeviceManager = WScript.CreateObject("WIA.DeviceManager")
    Set objDeviceInfos = objDeviceManager.DeviceInfos
    
    If objDeviceInfos.Count > 0 Then
        ' Выбираем устройство для сканирования. Если оно единственное, то сие произойдёт без отображения диалога.
         Set objDevice = WScript.CreateObject("WIA.CommonDialog").ShowSelectDevice(ScannerDeviceType, False, False)
        ' Кроме того, зная DeviceID устройства, можно использовать иной способ подключения, например:
        'Dim objDeviceInfo
        '
        'For Each objDeviceInfo In objDeviceManager.DeviceInfos
        '    WScript.Echo objDeviceInfo.DeviceID
        '    
        '    If objDeviceInfo.DeviceID = "{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000" Then
        '        Set objDevice = objDeviceInfo.Connect
        '    End If
        'Next

    • Изменено T0K 29 ноября 2013 г. 7:49 Добавил код
    29 ноября 2013 г. 7:39
  • Интересный вариант, с WIA пока еще не сталкивался.

    Однако это работает с уже подключенными сканерами. То есть можно подключиться к уже установленным сканерами и производить сканирование с заданными настройками. Этот способ не подключает WSD сканеры из сети.


    С уважением, Чувашлев Антон Сергеевич

    20 января 2014 г. 6:31