|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Автоматизация изменения данных авторизации на устройстве |
|
|
Любой язык - Автоматизация изменения данных авторизации на устройстве
|
Пользователь Сообщения: 51 |
Профиль | Отправить PM | Цитировать
Добрый день.
Господа, подскажите пожалуйста, каким способом можно решить такую задачу: 1) Есть большая куча устройств с возможностью подключения к ним через web морду, данные устройства имеют авторизацию (login/password)(см. auth.jpg). 2) Данное устройство имеет несколько учетных записей. (admin/service/ и т.д.) (см. user.jpg) 3) Изменения пароля для всех учетных записей можно сделать только под учетной записью admin. Задача: Необходимо изменить стандартный пароль для нескольких учетных записей, причем на большей половине устройств пароли уже изменены и трогать их не нужно. Как я вижу в общих чертах решение: Подключаемся к устройству, пытаемся авторизоваться под стандартным логином и паролем, если авторизация успешна то меняем пароль для учетных записи. Так же нужно учитывать что предварительно пароли уже нагенерированы для каждого IP устройства и лежать в файлике... |
|
Отправлено: 11:05, 08-02-2019 |
Пользователь Сообщения: 51
|
Профиль | Отправить 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 2) Страница изменения пароля открывается, выбирается учетная запись на которой необходимо поменять логин и пароль, но поля oldpassw/newpassw1/newpassw2 не заполняются. Так же хорошо бы что бы скрипт работал со списком IP адресов, логинов, и паролей, ну и был какой то обработчик ошибок. |
Отправлено: 11:31, 10-02-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Ребят совсем нет идей? Так же скажу, что когда то давно это реализовывали на питоне, но теперь из за безопасной безопасности остались варианты только vbs, js, powershell. Можно с помощью этих инструментов решить задачу?
|
Отправлено: 09:50, 11-02-2019 | #3 |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Авторизацию IE удалось обойти через chrome, http://admin:password@10.37.166.114/chgpassw.htm(в IE данный способ авторизации не работает), но непонятно как через chrome работать с элементами....
|
Отправлено: 10:09, 11-02-2019 | #4 |
Пользователь Сообщения: 51
|
Профиль | Отправить 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
|
Профиль | Отправить 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 из за того что не подошел стандартный пароль, забить на него и перейти к следующему устройству. |
Отправлено: 15:08, 11-02-2019 | #6 |
Пользователь Сообщения: 51
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:53, 11-02-2019 | #8 |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Ну на самом деле файл банальный, 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
|
Профиль | Отправить PM | Цитировать И поясните, в какой файл планируется делать вывод. Цитата Armsinglom:
|
|
Отправлено: 22:11, 11-02-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|