Скриптовая утилита взаимодеиствия с пользователем.

Кирилл

Команда форума
Администратор
Ассоциация VN
Сообщения
14,069
Реакции
5,784
Всем привет.

Суть задачи:

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

Алгоритм примерно такой:

Пользователь одним кликом запускает скан, (как во многих утилитах подобного рода) и собирает необходимые сведения о системе:

журнал ошибок,вот такой утилитой отчет
http://www.hwinfo.com/download.php
сведения об устройствах,автозагрузка,сведения о системе,об установленном софте,температуры ,смарт и еще кое что по мелочи.

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

А так же что бы можно было (желательно) давать код cmd который так же будет выполняться через утилиту.

bezymjannyj-png.15465


Соответственно необходимо сохранить возможность дополнения новыми заготовленными функциями или твиками.

1)перечень внешних утилит:
HWiNFO
vitoria
autoruns
ps tools

2)перечень заготовленных команд еще не подготовил,но сначала хочется узнать возможен ли этот проект.
 
Задумка хорошая. У нас на форуме обычно говорят винт посыпался - но мне удавалось лечить ноут, который очень сильно грелся и вырубался через 10-15 минут. (но там вирусы были, а казалось, что на свалку пора..) Я бы принял участие (посильное :unsure:)
 
Я вечером более расширенно распишу как вижу проект.

Основная цель - систематизировать и сжать процесс анализа и восстановления работы ОС,что делает сам процесс помощи уже более продвинутым,гибким и тонким.
 
Попробовал представить себе утилиту с одной кнопкой. Получилось два алгоритма взаимодействия с пользователем:
1. Клиент-серверный
Очевидно, что для каждого лога должно быть своё лечение. Даже если логи с одного компьютера.
Поэтому в каждый лог добавляется случайный GUID сгенерированный при первом запуске утилиты (аналог ID в TeamViewer) и Timestamp создания логов. Логи отправляются на сервер автоматически.
При запуске утилиты и/или через заданный интервал утилита проверяет появление данных на веб-сервере по списку GUID и Timestamp отправленных логов. Если появились данные, то появляется вторая кнопка "Для вас подготовлен лечебный скрипт, выполнить?" или "Ваш компьютер не нуждается в лечении, выйти?"
После лечения список Timestamp отправленных логов очищается, т.к. состояние компьютера изменилось и отправленные логи больше не актуальны. Логи собираются повторно и снова автоматически отправляются на сервер.

2. Файловый
Логи попадают в архив имя которого содержит дату вида "2014-01-01 00h00m00,000s" или в любом другом виде. GUID и Timestamp хранятся в файле внутри архива. Файл архива передаётся на сервер вручную с любого компьютера, где есть интернет. Ответ приходит по почте в файле с расширением, ассоциированным с утилитой. При открытии файла возможны знакомые нам варианты "Для вас подготовлен лечебный скрипт, выполнить?" и "Ваш компьютер не нуждается в лечении, выйти?" или такие сообщения, как "Скрипт не для вашего компьютера" и "Скрипт устарел".
 
А какая victoria ,4.46b ? У меня она не работает (win7pro x64 2xCPU 3,2MHz)
Выдала кучу ошибок - драйвер не видит...@Koza Nozdri, нужно начинать и не бояться ошибок - сложить всё в куче написать пару строк, а там по нарастающей. :)
Вот я уже две нашёл - (можно работать)
victoria
1. Секции и параметры ini
2. Установка драйвера
3. Найти альтернативу
 
Последнее редактирование:
Я давал ссылку на victoria 4.47, но Костя отчитал за то что на обменнике.
 
Последнее редактирование модератором:
Гимаев Наиль, я (и думаю не только я) против обоих ваших вариантов в таком виде. У вас лечение - логи и отправка скриптов проходит через сервер, а всё это должно быть отображено в теме.
Я давал ссылку на victoria 4.47, но Костя отчитал за то что на обменнике.
orderman, отсчитали не за обменник, а за варез. victoria 4.47 - это крякнутая версия, которая сверху ещё накрыта протом, чтобы нельзя было отследить, что там напатчили. Так что пользоваться ей не рекомендую, а её обсуждение попадает под правила форума - запрет на обсуждение вареза. Ваш пост поправил.По поводу сабжа мечтать хорошо, но
но сначала хочется узнать возможен ли этот проект.
Koza Nozdri, если только кто-то не согласиться написать утилиту на каком-то языке программирования специально под твои нужды, которая будет определять заголовки окна, искать там нужные кнопки и т.д., либо нужно сначала подобрать или проверить есть ли у нужных тебе утилит управление с ключами командной строки.
 
а за варез. victoria 4.47 - это крякнутая версия
regist автор виктории мне кажется не против в противном случае уже бы шум поднял.Так что почему варез?
Просто неофициальная версия.Использование программы на свой страх и риск.Кстати на руборде читал.
 
regist автор виктории мне кажется не против в противном случае уже бы шум поднял.
грум, автор виктории просто последнее время не занимается этим. Если бы он был не против, то выложил бы ссылку на своём сайте (кстати автор патча открыто признаётся, что пытался также взломать и сайт автора виктории). А варез потому что там идёт модификация авторского кода программы без согласия самого автора. При этом я тебе в ЛС кидал ссылку, где описано что новая фича версии 4.47 была сделана за счёт записи на блоки программы, которые редко использовались (поэтому автор патча думал, что не используются) и при определённых обстоятельствах из-за этого был сбой. Поэтому и не рекомендую пользоваться ей. Скачать авторскую версию виктории можете в ресурсах Victoria 4.46b.
Кстати на руборде читал.
ру-борд это варезник, так что не надо его ставить в пример.
 
написать утилиту на каком-то языке программирования специально под твои нужды, которая будет определять заголовки окна, искать там нужные кнопки и т.д.
К чему сложности. Не думаю, что это все нужно. Достаточно дать инструкцию пользователю, что нажимать.
или проверить есть ли у нужных тебе утилит управление с ключами командной строки.
Здесь согласен.
Гимаев Наиль, утилита должна соответствовать уже принятым принципам и рамкам написания скриптов лечения,
как это можно наблюдать в вирусных темах (по примерам AVZ, uVS, ComboFix и пр.)
Предварительно: это будет команда с номером таблетки (по типу ExecuteRepair AVZ-та).
А Ваши варианты слишком опасны.
"Скрипт не для вашего компьютера" - вот это можно взять на вооружение, хотя тоже без особого смысла.
В AVZ - это GetComputerHash (%computername% + s/n %SystemDrive%), только для защиты никто? этим не пользуется.
 
К чему сложности. Не думаю, что это все нужно. Достаточно дать инструкцию пользователю, что нажимать.
Если будет инструкция и пользователь сам будет нажимать все кнопки и собирать логи, то что тогда будет делать утилита ? :)
"Скрипт не для вашего компьютера" - вот это можно взять на вооружение, хотя тоже без особого смысла.
лично мне вообще не очень понятна идея скриптового лечения точней запуска проверки допустим целостности диска или системных файлов. Форум для того, чтобы потом в гугле можно было найти эту тему и почерпнуть полезную информацию. Очень многие предпочитают не создавать тему, а пытаться разобраться и исправить самим. Если не было бы подобных темы в гугле и на форумах, то наверно и мы во всё этом не разобрались. Аналогию со скриптами лечения от вирусов думаю проводить не совсем корректно.
 
Последнее редактирование:
А Ваши варианты слишком опасны.
В том виде, которые я предложил - однозначно опасны.
Если вывести текст скрипта на экран, то пользователь хотя бы будет видеть под чем подписывается, но не все поймут под чем.
Все мои рассуждения строились на желании ТС сделать утилиту с одной кнопкой.
Если использовать другой алгоритм, то кнопок потребуется значительно больше.
Описанный алгоритм ни как не связан с задачей обсуждаемой утилитой и может быть использован для многих других "однокнопочных приложений", задача которых избавить пользователя от промежуточных операций загрузки/сохранения и копирования-вставки.

для защиты никто? этим не пользуется.
Если бы Стив Джобс сказал, "ни кто не пользуется хорошими телефонами, поэтому мы не будем их делать", то iPhone бы не появился.
Всегда есть кто-то первый, кто сделает хорошо и правильно, а остальные последуют его опыту.
 
Итак,кокнретизирую мысль,а то молчу как рыба.

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

Всю необходимую инфу собирает одна единственная кнопка "выполнить анализ системы":
Здесь будет несколько стандартных тестов включая снимок smart и замер температур,сбор журналов и т.д.

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

пользователь чаще всего все равно не понимает что делает.

Вот здесь и начинается суть.
Вместо всего этого можно запускать заготовленные таблетки + работа с системой непосредственно через bat или cmd ,а так же через заготовленные таблетки и допутилиты.

окно "поле для ввода кода" понимает выданный пользователю код,который туда копируется и запускается через кнопку "выполнить код"

1)таблетки можно запускать например по принципу goto или переменных
2)допутилиты так же (те что будут выбраны в итоге для работы с проектом) будут запускаться командами кода
3)ну и непосредственно возможность оперативно работать с системой.
cmd достаточно гибка и имеет неплохие возможности для работы с инструментом.

правка реестра,работа с файлами и настройками системы и т.п.

тут нет аналогии с авз,просто похоже в чем то.



я думаю если создание проекта будет поддержано,то его надо будет разбить на несколько частей:

1)отбор и тесты софта
2)обсуждение алгоритма
3)создание макета
3)написание основного набора инструметов (таблеток)


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

человек желающий разобраться разберется,а кто то и зарегается даже что бы поинтересоваться че за такое у нас.
Очень многие предпочитают не создавать тему, а пытаться разобраться и исправить самим.
Тут часто бывает что и делают не то что надо - потому как не понимают что делают.
 
Последнее редактирование:
тут нет аналогии с авз, просто похоже в чем то.
Заготовленные таблетки - это очень похоже на стандартные скрипты AVZ.
Осталось пробежаться по форуму, собрать какие таблетки подходят для той или иной проблемы и сложить всё это в кучу.
Тогда пользователь будет получать от нас скрипт такого вида:
CMD/BATCH:
set CompID={266C72D4-62E8-11D1-AD89-00C04FD8FDFF}
set Timestamp=958905820

call Таблетка074 &:: Запустить какую-то утилиту по восстановлению диска
call Таблетка901 &:: Собрать логи какой-то утилитой и отправить на сервис
call Таблетка281 AngryService &:: Что-то сделать со службой AngryService
Этот скрипт попадает на вход другой утилите:
CMD/BATCH:
find /i "set"< IncomingScript.cmd > ScriptId.cmd
find/i "call Таблетка"< IncomingScript.cmd > tablets.cmd
call ScriptId.cmd
find /i "{%CompID%}-%Timestamp%" < LogList.txt && goto :Good
echo Вай, вай, вай, дарагой. Зачем чужое брал, у сэба запускал?
exit /b
:Good
call tablets
del LogList.txt
call Таблетка000 &:: Снова собрать логи и отправить на сервер
IncomingScript.cmd - лечебный скрипт
LogList.txt - файл с ID отправленных на сайт логов.
cmd достаточно гибка и имеет неплохие возможности для работы с инструментом.
Когда у меня была большая локальная сеть я столкнулся с тем, что cmd работает по разному на разных компьютерах. Во-первых интерпретатор командной строки разный в win98, xp и Win7. Во-вторых, сильно зависит от локальных настроек. К примеру, вам захотелось найти по дате в логах строки сделанные сегодня. Не тут-то было, нужно поизвращаться, чтобы получить дату в однозначном (независимым от компьютера) варианте. А определить какое число было 41 день назад ещё в 100 раз сложнее. Поэтому всё пришло к тому, что мои утилиты использовали не интерпретатор командной строки, а php. Выглядело это так, что на флэшке был какой-то универсальный батник (сейчас hta), рядом с которым была папка "exe" c php, wget, sed и т.п. Соответственно этим программам скармливались скрипты, которые выполнялись всегда одинаково не зависимо от ОС.

Это я к тому, что вопрос выбора интерпретатора остаётся открытым. Писать таблетки на cmd не так просто как кажется, одна обработка запретных символов в названиях фалов чего стоит. И для работы со строками cmd не приспособлен.

Альтернативы:
CScript
Плюсы: практически не изменился со времён Win9x. Не нужны дополнительные файлы, т.к. это встроенная возможность операционной системы. Многим знаком, как естественная альтернатива cmd. Легко построить интерфейс на основе HTA. Можно писать на двух языках на VBS и JS. Я склоняюсь в сторону JS. Знания полученные при изучении JS можно применить при разработке сайтов и программ. Раньше был только HTA под Windows, а сейчас на JS можно писать под ChromeOS, FirefoxOS и Ubuntu. Знатоков JS можно переманить в стан вирусоборцев.
Минусы: Зависит от ActiveX, нет нормальных инструментов для работы с датами.

PHP
Плюсы: Достаточно одного файла php.exe. Умеет запускать любые команды ОС и сохранить результат их работы в своих переменных. Мощные инструменты по работе со строками. Понимает любые кодировки. Идеален для генерирования текстовых файлов и отчётов. Есть возможность выносить общие функции в библиотеки.
Минусы вытекают из ОСнезависомости: Ни чего не знает о реестре и многих других вещах связанных напрямую с Windows. Для работы с xml и другими вещами кроме php.exe должны быть папка ext c дополнительными библиотеками и файл php.ini с настройками библиотек. Мало кто из вирусоборцев работает с php.

Python
Плюсы и минусы те же, что и PHP. К плюсам можно добавить простоту и красоту языка, и возможность писать скрипты на русском языке. К минусам то, что я этот вариант ещё не пробовал, поэтому могу не знать о других минусах. Более сложное по сравнению с PHP создание логов и отчётов.

AVZ
Плюсы: Знаком многим вирусоборцам. Имеет справку на русском языке. Имеет собственный редактор. Отлично знает, что-такое реестр и как удалить не удаляемый файл.
Минусы: Ориентирован в основном на работу с самим собой. Значительно меньше возможностей по сравнению с предыдущими вариантами. К примеру я не знаю, как в AVZ можно скачать файл из интернета и разобрать строку регулярными выражениями.

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

P.S. Предложенный мной вариант с таблетками опаснее варианта одной кнопкой. Т.к. если раньше зловреду нужно было переправлять утилиту на сайт имитирующий работу нашего сайта, но дающего ложные скрипты, то теперь достаточно подправить таблетки.
Это какой же популярностью должна обладать утилита, чтобы ею заинтересовались зловреды? :)
 
Последнее редактирование:
Итак,какую то форму идея уже приобрела.

Вот у меня тогда вопрос:
Если cmd не подходит,то необходимо решить вопрос такого характера = копирование,переименование,чтение файлов ,работа с реестром да и работа с системой.

Я даже не представляю чем можно заменить сценарный язык...на одних com объектах ?
Что еще система понимает так хорошо?

ЯП с компиляцией ? Но тут уже становится все гораздо сложнее.

Или же поделить исполняемые задачи на пару категорий,одна например для cmd/CScript вторая для js и др. ?


Либо оставить все в таблетках :))) и добавить некоторые функции без кода cmd и прочих, например зарезервированная команда для той или иной операции,тогда работа с утилитой станет удобной и несложной.
М?

Осталось пробежаться по форуму, собрать какие таблетки подходят для той или иной проблемы и сложить всё это в кучу.
Тогда пользователь будет получать от нас скрипт такого вида:
Код (DOS):
set CompID={266C72D4-62E8-11D1-AD89-00C04FD8FDFF}
set Timestamp=958905820
call Таблетка074 &:: Запустить какую-то утилиту по восстановлению диска
call Таблетка901 &:: Собрать логи какой-то утилитой и отправить на сервис
call Таблетка281 AngryService &:: Что-то сделать со службой AngryService
 
Последнее редактирование:
Koza Nozdri, в первую очередь нужно определиться с этим

если только кто-то не согласиться написать утилиту на каком-то языке программирования специально под твои нужды, которая будет определять заголовки окна, искать там нужные кнопки и т.д., либо нужно сначала подобрать или проверить есть ли у нужных тебе утилит управление с ключами командной строки.
если утилиты не поддеживают нужные тебе ключи командной строки, то какой бы язык ты не выбрал, ты не сможешь ими управлять и всё остальное обсуждение потеряет смысл.
ну так и так будет в гугл попадать.
если всё будет проходить через сервер (отправка логов, скриптов и т.д.), то что в гугл попадать будет? Зайдите в утилиту и нажмите проверить скрипты на сервере? Весь процесс как бы должен отображаться в теме и быть прозрачным.
Мало кто из вирусоборцев работает с php.
Плюсы: Знаком многим вирусоборцам.
при разработке данной утилиты, имхо, нужно подстраиваться не только под хелперов, а чтобы ей было удобно пользоваться всем. Чтобы любой желающий имеющий определенный набор знание в устранение/диагностике системных проблем мог подключиться и дать совет.
 
если всё будет проходить через сервер (отправка логов, скриптов и т.д.), то что в гугл попадать будет? Зайдите в утилиту и нажмите проверить скрипты на сервере? Весь процесс как бы должен отображаться в теме и быть прозрачным.
ответы и вопросы будут поститься в теме,про сервер вопрос вопрос еще не однозначен.

ведь команду для таблеток и операций будет выдавать тот кто помогает.


Чтобы любой желающий имеющий определенный набор знание в устранение/диагностике системных проблем мог подключиться и дать совет.

Мануал будет,любой желающий как раз и сможет при желании пользоваться продуктом экономя время.

Насчет утилит - написал нескольким разработчикам,+веду поиск.
Весь процесс как бы должен отображаться в теме и быть прозрачным.
Да,так и должно быть.
 
Последнее редактирование:
Назад
Сверху Снизу