|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Автоматизация изменения данных авторизации на устройстве |
|
|
Любой язык - Автоматизация изменения данных авторизации на устройстве
|
Пользователь Сообщения: 51 |
Профиль | Отправить PM | Цитировать
Добрый день.
Господа, подскажите пожалуйста, каким способом можно решить такую задачу: 1) Есть большая куча устройств с возможностью подключения к ним через web морду, данные устройства имеют авторизацию (login/password)(см. auth.jpg). 2) Данное устройство имеет несколько учетных записей. (admin/service/ и т.д.) (см. user.jpg) 3) Изменения пароля для всех учетных записей можно сделать только под учетной записью admin. Задача: Необходимо изменить стандартный пароль для нескольких учетных записей, причем на большей половине устройств пароли уже изменены и трогать их не нужно. Как я вижу в общих чертах решение: Подключаемся к устройству, пытаемся авторизоваться под стандартным логином и паролем, если авторизация успешна то меняем пароль для учетных записи. Так же нужно учитывать что предварительно пароли уже нагенерированы для каждого IP устройства и лежать в файлике... |
|
Отправлено: 11:05, 08-02-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать У меня строка 37 — «Do». Покажите получившийся у Вас код.
|
Отправлено: 02:32, 13-02-2019 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Option Explicit Const READYSTATE_COMPLETE = 4 Dim objIE Dim objRange Dim arrRow Dim boolIsFirstRow Set objIE = Nothing With WScript.CreateObject("Excel.Application") With .Workbooks.Open("C:\Users\gzg\Desktop\ip.xlsx") With .Worksheets.Item(1) If .AutoFilterMode Then boolIsFirstRow = True For Each objRange In .AutoFilter.Range.Rows If boolIsFirstRow Then boolIsFirstRow = False Else arrRow = .Application.Transpose(.Application.Transpose(objRange.Value2)) If objIE Is Nothing Then Set objIE = WScript.CreateObject("InternetExplorer.Application") End If With objIE .Navigate "http://admin:password@" & arrRow(1) & "/chgpassw.htm" Do WScript.Sleep 100 Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE With .Document.forms("frm") .elements("user_no").value = "130" .submit() End With Do WScript.Sleep 100 Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE With .Document.forms("frm") .elements("oldpassw").value = "password" .elements("newpassw1").value = arrRow(3) .elements("newpassw2").value = arrRow(3) .submit() End With ' А результат-то где?! End With End If Next Else WScript.Echo "Probably no Autofilter in first worksheet in this workbook." End If End With .Close End With .Quit End With If Not objIE Is Nothing Then objIE.Quit Set objIE = Nothing End If WScript.Quit 0 |
Отправлено: 10:18, 13-02-2019 | #22 |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Получается что ругается вот на это:
Я правильно понимаю что мы ждем выполнения вот этой строки: она не отрабатывает и скрипт умирает? Вообщем при разных запусках скрипта может вылетать две ошибки: - The object invoked has disconnected from its client. (80010108) - Unspecified error (80004005) и ругаются на одну и туже строку. |
Последний раз редактировалось Armsinglom, 14-02-2019 в 00:16. Отправлено: 23:36, 13-02-2019 | #23 |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Возобновлю тему.
Мне удалось заставить работать скрипт (проблема была вызвана с ограничениями на rdp). Option Explicit Const READYSTATE_COMPLETE = 4 Dim objIE Dim objRange Dim arrRow Dim boolIsFirstRow Set objIE = Nothing With WScript.CreateObject("Excel.Application") With .Workbooks.Open("C:\Users\gzg\Desktop\ip.xlsx") With .Worksheets.Item(1) If .AutoFilterMode Then boolIsFirstRow = True For Each objRange In .AutoFilter.Range.Rows If boolIsFirstRow Then boolIsFirstRow = False Else arrRow = .Application.Transpose(.Application.Transpose(objRange.Value2)) If objIE Is Nothing Then Set objIE = WScript.CreateObject("InternetExplorer.Application") End If With objIE .Navigate "http://admin:password@" & arrRow(1) & "/chgpassw.htm" Do WScript.Sleep 100 Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE With .Document.forms("frm") .elements("user_no").value = "130" .submit() End With Do WScript.Sleep 100 Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE With .Document.forms("frm") .elements("oldpassw").value = "password" .elements("newpassw1").value = arrRow(3) .elements("newpassw2").value = arrRow(3) .submit() End With ' А результат-то где?! End With End If Next Else WScript.Echo "Probably no Autofilter in first worksheet in this workbook." End If End With .Close End With .Quit End With If Not objIE Is Nothing Then objIE.Quit Set objIE = Nothing End If WScript.Quit 0 1) он почему то работает только с последним ip из списка ) 2) Так же есть проблема, если вдруг стандартный логин/пароль который указан в скрипте не подошел, то выскакивает окно для повторной попытки ввода логин/пароль. Из за проблемы которая в пункте 1, я не пойму будет он работать дальше, несмотря на ошибку авторизации или будет ждать пока я ввиду вручную корректные логин/пароль. |
Отправлено: 21:41, 11-09-2019 | #24 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Armsinglom:
Цитата Armsinglom:
|
||
Отправлено: 22:38, 11-09-2019 | #25 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|