Автоматическое подключение сетевых МФУ с возможностью сканирования Часть 1

Содержание

HP LaserJet 1522, 1536, 3052/3055, 300/400 Color.

Я думаю, многим системным администраторам известны описанные в заголовке мфу, отличаются они, в первую очередь, не очень удобной установкой и от этого имеют дурную славу. Однажды, копируя на очередной компьютер сквозь узкий канал пакет fullsolution для мфу весом около 300 мегабайт, идея разобрать этот инсталлятор и автоматизировать установку вылезла попапом на глаза — работу пришлось приостановить.

Разбором драйвера я занимался уже около полутора лет назад, в то время интернет на эту тему был совершенно пуст. Сейчас быстро погуглил по теперь уже известным мне ключевым словам утилит и нашел немного разрозненной информации. Несмотря на это, я решил. что собранная в одно место информация все равно не помешает, при том, что в этом посте она более полная.

Настроим печать

Первым на запрос по snmp показался мфу HP LaserJet 1536, с него и решил начать. Для начала нужно понять. как его подключать как принтер под Windows 7; пожилую XP отбросил сразу, свежую Windows 8 в домене, есть мнение, мне не увидеть никогда. Вот и повод познакомиться с новым для себя PowerShell, подумал я, который в итоге был чуть ли не основной мотивацией в разборе драйвера. Подключение ip-принтера в Windows 7 состоит из трех этапов (в Windows 8 всё сильно упрощается встроенными командлетами, но про нее я уже говорил — не судьба), сначала создаем ip-порт, потом добавляем драйвер и подключаем, собственно, принтер. Для всех этих этапов в Windows есть уже готовые VBS скрипты, многим, я думаю, знакомые, в Windows 7 путь к ним: С:\Windows\System32\Printing_Admin_Scripts\

Тут стоит отметить одну важную особенность: имя принтера должно указываться точно так же как оно прописано в inf файле драйвера, ради примера уберите часть имени, скрипт выдаст ошибку: «Не удалось добавить драйвер принтера HP LaserJet Код ошибки Win32 87».

Отрывок файла драйвера с полным именем принтера:

Теперь осталось подключить принтер, для этого я остановился на замечательной программе printui, советую посмотреть на нее поближе, у нее есть интересные ключи.
&rundll32 printui. dll, PrintUIEntry /if /b "HP LaserJet M1530 MFP Series PCL 6" /r "192.168.0.30" /m "HP LaserJet M1530 MFP Series PCL 6" /u /K /q /Gw

Пришло время оформить все это в примерно следующего вида скрипт на PowerShell:

Сканирование

Копаясь в inf файлах драйвера, для поиска правильного имени принтера и попутно вообще разбираясь в структуре драйвера HP, глаз зацепился за следующие строки (выделил жирным):

;Windows Vista
[HP. NT.6.0]
«HP LJ M1530 MFP Series Scan»= WIA_1530_Inst. NT.6.0, USB\vid_03f0&pid_012a&mi_00
«HP LJ M1530 MFP Series Scan»= WIA_1530_NW. NT.6.0,vid_03f0&pid_012a&IP_SCAN

;Windows Vista 64
[HP. NTAMD64.6.0]
«HP LJ M1530 MFP Series Scan»= WIA_1530_Inst_Vista64, USB\vid_03f0&pid_012a&mi_00
«HP LJ M1530 MFP Series Scan»= WIA_1530_NW_Vista64,vid_03f0&pid_012a&IP_SCAN

Тут бы хотелось лирики (казалось бы, при чем тут 1С? если вы понимаете о чём я), но опущусь до сухой констатации: попробуем devcon. exe.

DevCon — это программа с интерфейсом командной строки, которая используется в качестве альтернативы диспетчеру устройств С ее помощью можно включать, выключать, перезапускать, обновлять, удалять и опрашивать отдельные устройства или группы устройств. Программа DevCon также предоставляет необходимые разработчику драйвера сведения, которые недоступны с помощью диспетчера устройств.

Добавляем устройство по ID указав драйвер:

.\devcon. exe /r install C:\drivers\1536scan\hppasc16.inf "vid_03f0&pid_012a&IP_SCAN"

Добавляем в реестр необходимые параметры, запускаем сканирование и… Бинго!
Сканер отлично работает, осталось все это оформить.

Настройки сканера в реестре хранятся по следующим путям:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<6bdd1fc6-810f-11d0-bec7-08002be2092f>
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\IMAGE

Опытным путём определяем необходимые нам ключи реестра:

Для того что бы удобно добавить настройки реестра, создадим процитированный ниже файл, который послужит нам шаблоном для модификации внутри скрипта.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<6bdd1fc6-810f-11d0-bec7-08002be2092f>\_ITEM_\DeviceData]
«NetworkDeviceID»="\\hostname:_NETWORK_NAME_.domain. local\\ipaddr:_IP_ADDRESS_\\guid:\\macaddr:_MAC_ADDRESS_\\port:1"
«PortID»="_IP_ADDRESS_"
«NetworkHostName»="_NETWORK_NAME_.domain. local"
«TulipIOType»=dword:00000005

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\IMAGE\_ITEM_\Device Parameters]
«NetworkDeviceID»="\\hostname:_NETWORK_NAME_.domain. local\\ipaddr:_IP_ADDRESS_\\guid:\\macaddr:_MAC_ADDRESS_\\port:1"
«PortID»="_IP_ADDRESS_"
«NetworkHostName»="_NETWORK_NAME_.domain. local"
«MAC»="_MAC_ADDRESS_"
«PortNumber»=«1»
«Index»="_ITEM_"

Готовый скрипт установки сканера примет следующий вид:

Потираем руки, проверяем — работает, модифицируем под 1522 — работает, победно правим под 3055 — облом…
Сканер не дает выбрать планшет, в меню сканирования доступен только податчик, да и тот отказывается сканировать.

Серьезный разговор с 3055 или, Чувак ты поднял на гору не тот камень

Вот он, LaserJet 3055/3052 — самый вредный парень, на удивление вижу я его чаще всех. На самом деле — скажу по секрету — я начал заниматься им первым — пошел через дебри фильтрации вывода procmon при установке драйвера для поиска чего-нибудь интересного и утонул где-то посередине. Когда очередной раз procmon упал из-за нехватки памяти, я решил отложить эту затею до более дружелюбного и спокойного состояния.

В дистрибутивах драйверов других принтеров HP есть ее шестидесяти четырех разрядная версия, драйвер 3055 же поддерживает только x86 операционные системы.

Драйвера сканера я решил выдернуть из общей папки драйверов и сложить отдельно, необходимые файлы легко читаются из inf-файла драйвера. Дерево получилось следующего вида:

Функция установки сканера теперь стала совсем простой, хоть и с зависимостью от внешней компоненты.
Итоговый вид скрипта, с некоторыми захардкоженными упрощениями, примет следующий вид:

Этот же способ отлично подходит для всех оказавшихся вокруг меня МФУ от HP, для которых я создал отдельные папки с драйверами и варианты выбора в свитче функции установки сканера.

Список файлов драйвера можно посмотреть в разделах inf-файла с именами [SourceDisksFiles], [RegisterDlls], [WIA_CopyFiles] и далее по файлу. Скриншот по драйверам 3055 и 1536, для наглядности:

Из описанных в этой заметке отрывков кода можно собрать полноценный скрипт автоматической установки МФУ, а если добавить в него немного гуя и snmp, то можно вообще навсегда закрыть для себя тему установки МФУ на новые машины.

На этом на сегодня всё, спасибо за внимание. Если в комментариях подскажут чего не хватает МФУ 3055 для работы при установке первым способом посредством devcon, буду сильно благодарен. Может быть кто-то проделал ту же работу, что и я, но добился больших успехов.

В следующей части, если кто-то кинет таки инвайт в песочницу, покажу как расширить наш сценарий для работы с МФУ Xerox и Kyocera.

Код ошибки win32 87

При запуске сканирования в командной строке с правами администратора можно столкнуться с ошибкой «DISM Error: 87». Она возникала и на предыдущих версиях, но в Windows 10 появляется намного чаще.

Почему появляется ошибка 87 при запуске DISM?

Проблема может возникнуть по нескольким причинам:

Для исправления ошибки с кодом 87 предлагаем несколько способов ее решения. Выполните их в предоставленном порядке.

Проверка правильности введения команды

Чаще всего при запуске DISM ошибка 87 появляется через неправильные интервалы между дополнительными параметрами. Причина в отсутствие или неоднократном пробеле перед слэшем «/». Поэтому проверьте, чтобы был один пробел перед каждым знаком «/».

Правильный синтаксис команды должен быть:
DISM. exe /Online /Cleanup-image /Restorehealth

Убедившись, что используется правильный синтаксис, нажмите Enter и проверьте, успешно ли обработана команда. В случае ошибки с кодом 87 перейдите к следующему шагу.

Использование командной строки с администраторскими правами

Другая распространенная проблема заключается в том, что вводим правильную команду, но пытаемся запустить в стандартной командной строке. Команды DISM, как и сканирование SFC нужно выполнять от имени администратора.

Наберите в строке поиска «cmd», кликните на Enter.

В результатах поиска правым кликом мыши на позицию «Командная строка» выберите из контекстного меню «Запуск с правами администратора».

В открывшейся консоли попробуйте запустить проверку системных файлов. При появлении на экране ошибки Error: 87 переходим к следующему методу.

Установка обновлений Windows

Ошибка с кодом 87 возникала через неполадку Windows 10, которая была исправлена в октябре 2017 года с установкой обновления Fall Creator. Если в настройках отключена автоматическая загрузка обновлений, то для решения проблемы нужно обновить систему.

Нажмите сочетание Win + R для отображения диалогового окна и введите:


После ее выполнения отобразятся настройки Центра обновления Windows.

Кликните на кнопку «Проверить наличие обновлений» и следуйте инструкциям по установке каждого из них.

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

После перезагрузите ПК, и запустите сканирование. При возникновении ошибки 87, перейдите к следующему решению.

Устаревшая версия DISM

Если ошибка отображается при попытке использовать образ Windows 10 с помощью DISM /Apply-Image, то проблема в устаревшей версии утилиты.

Для обхода ошибки нужна версия DISM для Windows 10 с фильтром файловой системы Wofadk. sys. Из вариантов скопировать утилиту с другого компьютера.

Восстановление системы

Если предыдущие действия безрезультатны, возможно, что некоторые файлы, входящие в состав утилиты DISM, повреждены. Поскольку утилиту в этом случае нельзя использовать для проверки и восстановления поврежденных системных файлов, нужно использовать другой подход.

Среди них, установка Windows с нуля, но тогда можно потерять все личные данные (приложения, важные файлы и прочее). Поэтому для начала попробуйте восстановить систему. Эта процедура позволяет повторно инициализировать все компоненты, не затрагивая личные данные.

Ошибка 87 в DISM — откуда она берётся и как её исправить

Более или менее продвинутые пользователи нередко пользуются командной строкой, ведь через неё можно влиять на большинство системных процессов. При использовании строки DISM, которая есть в седьмой и следующих версиях Windows, время от времени могут появляться сообщения об ошибке.

Это норма для любой программы, но наша задача — избавиться от неполадки, чтобы выполнить необходимую команду. Ошибка 87 DISM возникает по нескольким причинам, и в каждом случае есть свои пути её устранения.

Иногда пользователи могут столкнуться с ошибкой 87 в строке DISM

Давайте выясним, при каких обстоятельствах обычно появляется такое сообщение и как избавиться от него без посторонней помощи.

С чем связана ошибка 87?

Как правило, она напрямую относится к любым действиям, выполняемым с директорией WinSxS. Если вдруг в Windows пропадёт любой системный файл, он тут же будет восстановлен рабочей копией из этой папки. То есть, WinSxS это очень важная папка с документами.

И вот ошибка 87 возникает в тот момент, когда пользователь пытается проделать какие-то операции с папкой через DISM. А теперь давайте конкретнее рассмотрим ситуации, когда возникает эта неполадка, чтобы в зависимости от них узнать способы избавления от неё.

Ошибка 87 при проверке целостности системных файлов

Время от времени Windows 7, 8, 8.1 и даже последняя версия начинает некорректно работать. Иногда компьютер внезапно перезагружается или попросту часто зависает. В такой ситуации обычно пользователям советуют не только проверить ПК на вирусы, но и выяснить, нет ли каких-либо повреждений в системных файлах.

Чтобы произвести такую проверку, используется командная строка, где вводится sfc /scannow. Если всё хорошо, то пользователь получает соответствующий текст. Однако в некоторых случаях вы получите сообщение о том, что система нашла повреждённые файлы, но ничего не может с ними сделать.

В этот момент в игру вступает DISM — следует открыть его от имени администратора и ввести такие команды:

Именно после первой комбинации из списка, которая разработана для седьмой версии системы, всплывает ошибка 87 в командной строке DISM с сопутствующим текстом «Параметр ScanHealth не распознан в этом контексте».

Как её исправить? Первое очень простое решение — проверить правильность ввода комбинации. Поскольку эта командная строка очень требовательна к каждому знаку, убедитесь, что ставите только один пробел перед каждым слешем.

Не помогло? Тогда вам следует скачать обновление под названием KB2966583 на сайте Майкрософт и установить его на своём компьютере.

После успешной установки вы сможете снова запустить командную строку DISM и выполнить восстановление целостности файлов Windows.

Ошибка 87 и попытки почистить директорию WinSxS

Иногда вышеупомянутую директорию, которая работает страховкой для всех самых важных файлов, пытаются уменьшить. Для чего? В большинстве случаев папка WinSxS занимает много места на диске — 5,7 и даже 8 и больше ГБ, что может не нравиться пользователям, особенно если свободной памяти и так не хватает.

Поэтому чтобы немного сэкономить место, можно удалить бэкап папки таким образом:

Часто именно после этой команды выбивает ошибку 87 с таким текстом: «Параметр spsuperseded не распознан в этом контексте».

Что делать в таком случае? Проверьте работоспособность сервиса «Установщик модулей Windows». Если он нерабочий, установите его, запустите, и затем повторите вышеуказанные действия.

Если же это не помогло, значит, команда для удаления бэкапа уже выполнялась, и больше места вы сэкономить не сможете.

Теперь вы знаете, по каким причинам появляется ошибка 87 в командной строке Windows, и знаете, что делать для её исчезновения. Советуем быть аккуратными при пользовании подобными программами и внимательно следить за тем, в какие процессы вы вмешиваетесь, чтобы не навредить компьютеру.

Как исправить: Ошибка 87 «Неверный параметр»

Если вы столкнулись с ошибкой 87, настройка на вашем компьютере неверна; это может быть попытка скопировать большой файл из одного раздела в другой, что означает, что максимальный размер сохраняемого файла превышен.

Это сообщение об ошибке также появляется, если на вашем компьютере не запущена необходимая служба, поэтому вы не можете подключиться к сети и, возможно, установить сетевые адаптеры, такие как Plug and Play, диспетчер автоматического подключения удаленного доступа, диспетчер подключений удаленного доступа и телефония.

В чем причина ошибки 87 Параметр является неверной ошибкой?

Отмените обновление Windows и очистите память компонента

Центр обновления Windows может быть причиной ошибки DISM 87. Чтобы решить эту проблему, вы можете сбросить Windows Update в предыдущее состояние и очистить память компонента. Он поддерживает обновления Windows, установки и конфигурации.

Шаг 1: введите cmd в поле поиска и запустите его от имени администратора.

Шаг 2: введите следующую команду, чтобы восстановить Центр обновления Windows, затем нажмите Enter. Затем перезагрузите компьютер и сохраните эти изменения.

dism. exe / image: C: / cleanup-image / revertpend Действия

Шаг 3: введите следующую команду и нажмите Enter. Затем перезагрузите компьютер и сделайте эти изменения доступными.

Апрельское обновление 2020:

Теперь мы рекомендуем использовать этот инструмент для вашей ошибки. Кроме того, этот инструмент исправляет распространенные компьютерные ошибки, защищает вас от потери файлов, вредоносных программ, сбоев оборудования и оптимизирует ваш компьютер для максимальной производительности. Вы можете быстро исправить проблемы с вашим ПК и предотвратить появление других программ с этим программным обеспечением:

dism. exe / online / cleanup-image / startcomponentcleanup

Память компонента и потенциально поврежденные файлы теперь могут быть очищены. Вероятно, вы сможете успешно запустить DISM под Windows 10.

Запустить DISM

Выполните следующие действия:

DISM. exe / Online / Чистое изображение / Проверка работоспособности

DISM. exe / Онлайн / Очистка — Изображение / Восстановление здоровья

Исправление с использованием реестра

Нажмите W8K + R и поместите regedit в диалоговое окно «Выполнить», чтобы открыть редактор реестра (если вы не знакомы с редактором реестра, нажмите здесь). Нажмите на ОК.

В левой панели окна редактора реестра перейдите к следующему разделу реестра:

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services

В разделе Service Registry Key найдите раздел реестра для службы, с которой у вас возникла эта проблема. Раздел реестра называется «Имя службы» и находится на вкладке «Свойства службы» (дважды щелкните «Служба» в оснастке «Службы»). Вы можете обратиться к этой статье для получения дополнительной информации. В правой панели раздела реестра службы найдите реестр DWORD (REG_DWORD) с именем Start. Дважды щелкните по нему, чтобы изменить его значения данных:

Установите для данных значений значение 2 для автоматического режима, 3 для ручного режима, 4 для типа запуска службы отключено. Нажмите на ОК. Закройте и перезапустите редактор реестра, чтобы изменения вступили в силу.

Сброс адаптера диспетчера устройств

CCNA, веб-разработчик, ПК для устранения неполадок

Я компьютерный энтузиаст и практикующий ИТ-специалист. У меня за плечами многолетний опыт работы в области компьютерного программирования, устранения неисправностей и ремонта оборудования. Я специализируюсь на веб-разработке и дизайне баз данных. У меня также есть сертификат CCNA для проектирования сетей и устранения неполадок.

Руководство по устранению ошибок для Code 32 в диспетчере устройств

Ошибка с кодом 32 является одной из нескольких кодов ошибок диспетчера устройств. Они обычно вызываются, когда в реестре отключен тип запуска драйвера аппаратного устройства.

Ошибка Code 32 почти всегда будет отображаться следующим образом:

Драйвер (сервис) для этого устройства был отключен. Альтернативный драйвер может предоставлять эту функциональность. (Код 32)

Более подробная информация о кодах ошибок диспетчера устройств, таких как Code 32 доступны в Состояние устройства области свойствах устройства.

Коды ошибок диспетчера устройств являются эксклюзивными для диспетчера устройств. Если вы видите ошибку Code 32 в другом месте в Windows, скорее всего, это код системной ошибки, который не следует устранять как проблему диспетчера устройств.

Ошибка Code 32 может относиться к любому аппаратному устройству в диспетчере устройств, но большинство ошибок кода 32 относится к оптическим дискам, таким как Blu-ray, DVD и CD-дисководы.

Любая из операционных систем Microsoft может столкнуться с ошибкой диспетчера устройств Code 32, включая Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP и предыдущие версии.

Как исправить ошибку Code 32

Если вы уверены, что само оборудование не является причиной этой конкретной ошибки Code 32, вы можете попробовать восстановить Windows. Если это не удастся, вы можете попробовать чистую установку Windows. Мы не рекомендуем делать что-либо из этого, прежде чем попробовать заменить аппаратное обеспечение, но вам может потребоваться прибегнуть к этому, если у вас нет других вариантов.

Пожалуйста, сообщите нам, если вы исправили ошибку Code 32, используя метод, который не указан выше.

Восстановление повреждённого хранилища системных компонентов возможно не только в Windows 8.1/10, но и в Windows 7

Восстановление повреждённого хранилища системных компонентов возможно не только в Windows 8.1/10, но и в Windows 7

Скачайте данное обновление KB2966583 по ссылке

выберите обновление в соответствии с разрядностью вашей операционной системы, например, у меня установлена Windows 7 64-бит, значит я скачаю пакет для всех поддерживаемых 64-разрядных версий Windows 7.

Выбираем язык — Русский и жмём Download.

Выполняется установка обновлений.

Обновление установлено. Жмём Закрыть.

Теперь при вводе команды: « Dism /Online /Cleanup-Image /ScanHealth » произойдёт проверка и восстановление повреждённого хранилища системных компонентов Windows 7.

Источники:

https://habr. com/ru/post/242513/

https://remkomplekty. ru/oshibki-i-problemy/kod-oshibki-win32-87.html

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: