Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Автоматизация изменения данных авторизации на устройстве

Ответить
Настройки темы
Любой язык - Автоматизация изменения данных авторизации на устройстве

Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg auth.JPG
(37.9 Kb, 6 просмотров)
Тип файла: jpg user.jpg
(31.3 Kb, 4 просмотров)
Добрый день.
Господа, подскажите пожалуйста, каким способом можно решить такую задачу:
1) Есть большая куча устройств с возможностью подключения к ним через web морду, данные устройства имеют авторизацию (login/password)(см. auth.jpg).
2) Данное устройство имеет несколько учетных записей. (admin/service/ и т.д.) (см. user.jpg)
3) Изменения пароля для всех учетных записей можно сделать только под учетной записью admin.
Задача:
Необходимо изменить стандартный пароль для нескольких учетных записей, причем на большей половине устройств пароли уже изменены и трогать их не нужно.

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

Отправлено: 11:05, 08-02-2019

 

Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Попробовал это сделать так, но столкнулся с несколькими проблемами:
Код: Выделить весь код
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.Navigate "10.37.167.114/chgpassw.htm"
While objIE.Busy
    WScript.Sleep 200
Wend
Set objForm = objIE.Document.forms("frm")
objForm.elements("user_no").value = "130"
objForm.submit()
WScript.Sleep 200
objForm.elements("oldpassw").value = "password"
objForm.elements("newpassw1").value = "Password"
objForm.elements("newpassw2").value = "Password"
objIE.Visible = True
1) Не получается обойти проблему с авторизацией на устройстве. (приходится руками вводить логин и пароль)
2) Страница изменения пароля открывается, выбирается учетная запись на которой необходимо поменять логин и пароль, но поля oldpassw/newpassw1/newpassw2 не заполняются.
Так же хорошо бы что бы скрипт работал со списком IP адресов, логинов, и паролей, ну и был какой то обработчик ошибок.

Отправлено: 11:31, 10-02-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ребят совсем нет идей? Так же скажу, что когда то давно это реализовывали на питоне, но теперь из за безопасной безопасности остались варианты только vbs, js, powershell. Можно с помощью этих инструментов решить задачу?

Отправлено: 09:50, 11-02-2019 | #3


Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Авторизацию IE удалось обойти через chrome, http://admin:password@10.37.166.114/chgpassw.htm(в IE данный способ авторизации не работает), но непонятно как через chrome работать с элементами....

Отправлено: 10:09, 11-02-2019 | #4


Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Решил проблему с авторизацией IE:
Создал записи в реестре DWORD с именами iexplore.exe и explorer.exe values = 0.

для текущего юзера:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
Если необходимо для всех юзеров то вот:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

Теперь IE понимает адрес такого формата: http://admin:password@10.37.166.114/chgpassw.htm ,авторизация теперь не выскакивает...

Осталось:
1) Научить скрипт брать логин, пароль и IP из файлика.
2) Осталась нерешенная проблема с заполнением полей oldpassw/newpassw1/newpassw2. (выбор юзера на котором будет меняться пароль выбирается корректно.)
3) обработка ошибок.

Отправлено: 11:06, 11-02-2019 | #5


Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Все удалось оживить скрипт, пароль на устройстве изменился!
Код: Выделить весь код
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.Navigate "http://admin:password@10.37.167.114/chgpassw.htm"
While objIE.Busy
    WScript.Sleep 200
Wend
Set objForm = objIE.Document.forms("frm")
objForm.elements("user_no").value = "130"
objForm.submit()
WScript.Sleep 600
Set objForm = objIE.Document.forms("frm")
objForm.elements("oldpassw").value = "password"
objForm.elements("newpassw1").value = "Passwordnew"
objForm.elements("newpassw2").value = "Passwordnew"
objIE.Visible = True
Помогите заставить этот скрипт брать логин, пароль, IP из файла для заполнения данной формы
Код: Выделить весь код
objIE.Navigate "http://admin:password@10.37.167.114/chgpassw.htm"
и пароли для заполнения этих форм:
Код: Выделить весь код
objForm.elements("oldpassw").value = "password"
objForm.elements("newpassw1").value = "Passwordnew"
objForm.elements("newpassw2").value = "Passwordnew"
А так же обработать ошибку, типа если не удалось подключится к IP из за того что не подошел стандартный пароль, забить на него и перейти к следующему устройству.

Отправлено: 15:08, 11-02-2019 | #6


Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Немного доработал скрипт, была проблема с IE, он мог не работать по какой то причине и скрипт не отрабатывал. Добавил фикцию ожидания работоспособности IE:
Код: Выделить весь код
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.Navigate "http://admin:password@10.37.167.114/chgpassw.htm"
While objIE.Busy
    WScript.Sleep 200
Wend
Set objForm = objIE.Document.forms("frm")
objForm.elements("user_no").value = "130"
objForm.submit()
While objIE.Busy
    WScript.Sleep 200
Wend
Set objForm = objIE.Document.forms("frm")
objForm.elements("oldpassw").value = "password"
objForm.elements("newpassw1").value = "Passwordnew"
objForm.elements("newpassw2").value = "Passwordnew"
objForm.submit()
objIE.Visible = True
Теперь все работает отлично.
Но осталась еще задачи которые необходимо решить:
1) Заставить скрипт работать по алгоритму:
а) Брать IP для подключения из файлика (пароль и логин стандартные admin/password)
б) Если скрипту удалось авторизоваться под стандартными паролем и логином, то изменить его. (предварительно пароли уже есть сгенерированы и лежат в файлике)
в) Если авторизация на хосте не прошла, то ничего не делать, просто продолжаем работу с остальными хостами.
2) Сделать вывод результата в файл:
а) Не получилось авторизоваться
б) Получилось авторизоваться и установить такой-то пароль.
в) Хост не доступен

Последний раз редактировалось Armsinglom, 11-02-2019 в 17:13.


Отправлено: 17:03, 11-02-2019 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Armsinglom:
а) Брать IP для подключения из файлика (пароль и логин стандартные admin/password) »
Цитата Armsinglom:
2) Сделать вывод результата в файл: »
С этим-то проблем не будет, если Вы покажете образец файла, упаковав его в архив и приложив к сообщению.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:53, 11-02-2019 | #8


Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg 123.jpg
(14.0 Kb, 2 просмотров)

Ну на самом деле файл банальный, Exel, с несколькими полями.. (см. 123.jpg). При необходимости конечно, можно и поменять....
При необходимости можно добавить поля стандартного логина и пароля:
ip id pass def_login def_pass
10.37.116.114 103 Fsasfasfs5 admin password
10.37.116.115 104 SGssfaasg4 admin password
Как правильнее я не знаю, с VBS я на ВЫ...

Отправлено: 21:34, 11-02-2019 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Вы можете упаковать банальный файл Excel в архив, каковой приложить к сообщению? Так, пришёл в личку.

И поясните, в какой файл планируется делать вывод.

Цитата Armsinglom:
Как правильнее я не знаю, с VBS я на ВЫ... »
Ну, не совсем на Вы, судя по проделанной работе.

Отправлено: 22:11, 11-02-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Автоматизация изменения данных авторизации на устройстве

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Автоматизация изменения сетевых настроек Fantastish Скриптовые языки администрирования Windows 4 18-07-2016 10:05
Любой язык - [решено] Автоматизация экспорта данных из Excel Fantastish Скриптовые языки администрирования Windows 10 30-05-2016 18:41
PowerShell - Автоматизация создания/отключения и изменения данных учетные записи lordsharks Скриптовые языки администрирования Windows 12 15-03-2016 12:21
2007 - [решено] автоматизация переструктурирования данных golovatov Microsoft Office (Word, Excel, Outlook и т.д.) 4 06-10-2015 12:20
CMD/BAT - [решено] автоматизация изменения имени пользователя через control userpasswords2? super_bitard Скриптовые языки администрирования Windows 4 05-04-2011 11:36




 
Переход