1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 голосов)

Сброс настроек принтера  по SNMP

 

 

 

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

HP LaserJet M1536dnf MFP

Вроде бы пустяковая задача, только в том случае если бы предыдущий администратор оставил пароль на вход в панель администрирования принтера.  Но человек давно не работает, а запароленный принтер вот он - перед нами. И как сами понимаете пароль никто не знает.

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

1. они для каждого принтера свои

2. необходим физический доступ к принтеру

3. для этого надо читать инструкцию или запрашивать службу поддержки:) 

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

Не все администраторы знают о существовании протокола управления сетевыми устройствами, еще меньше людей знают, о том, что с помощью SNMP можно записывать и давать команды сетевому устройству и еще меньше людей, уделяют смене так называемыму параметру community на всех своих сетевых устройствам.

Мы воспользуемся именно тем, что в подавляющем случае никто не меняет данные community  RO (read only) и RW

(read write) которые часто  принимают значения public и private.  С точки зрения безопасности, это огромная брешь в сетевой инфраструктуре, но в нашем случае это спасательный круг, который поможет нам удаленно сбросить настройки принтера по умолчанию.

Про протокол SNMP написано много и мы рассказывать о том что это и как им пользоватся  не будем. 

Поставленную задачу будем решать с помощью ManageEngine MibBrowser. За последний год это единственная адекватная ( не триальная) программа позволяющая легко решать нашу задачу. Для  продвинутых пользователей и тех кто работает на Linux системах и snmpwalk устроит с MIB библиотеками, но мы хотим предоставить легкую инструкцию как перегружать, сбрасывать настрйоки принтера удаленно.

Программа выглядит вот так

Manage Engine MIB

Введем данные, которые нам известны по нашему принтеру. Community,которые установлены по умолчанию, на этом принтере  мне пришлось найти в интернете и они оказались одинаковыми что на чтение, что на запись и имею значение public

 

доступ по snmp

Все остальные параметры понятны, IP адрес устройства и порт SNMP 161

Зайдем в бибилиотеку SNMPv2-MIB  и попробуем прочитать имя устройства

SNMPv2-MIB выбор

Для получения информации, нажимаем sysName, потом правой кнопкой вызываем меню и там выбираем GET

В этом же меню мы можем увидеть, какие параметры мы можем перезаписывать а какие только читать. Где зеленый лист перечеркнут - это read-only(только чтение без возможности изменять значения).

Чтение по SNMP system.name

Мы увидели что наш принтер имеет имя NPI6AB729

Все это хорошо, но где наше решение проблемы? Давайте перейдем в другую бибилиотеку MIB

И прочитаем значения аттрибута prtGeneralReset  а также его описание

Reset printer

Похоже это именно то, что мы искали. В описании буквально говорится следующее:   "Setting this value to `powerCycleReset', `resetToNVRAM', or `resetToFactoryDefaults' will result in the resetting of the printer. When read, this object will always have the value `notResetting(3)', and a SET of the value `notResetting' shall have no effect on the printer. Some of the defined values are optional. However, every implementation must support at least the values `notResetting' and resetToNVRAM'." 

То есть если хотите просто перегрузите  запишите в этот аттрибут значение powerCycleReset, если хотите сбросить на заводские настроки то resetToFactoryDefaults

Нам нужно втрое, и поэтому в поле Set Value мы пишем resetToFactoryDefaults

Выбор OID

и правой кнопкой  мыши вызываем команду не GET а SET.  

Ошибка? Не работает?

Не удивительно, смотрите какой аттрибут мы прочитали (на предыдущем рисунке) prtGeneralReset.1 а записать пытаемся в Object ID prtGeneralReset 

Разницу видите?

Достаточно в  в поле Object ID добавить в конец строки .1 что бы она приобрела такой вид

 .iso.org.dod.internet.mgmt.mib-2.printmib.prtGeneral.prtGeneralTable.prtGeneralEntry.prtGeneralReset.1

и еще раз попытатся установить новое значение командой SET

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

Всё, наша задача решена. 

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

Удачи в работе!