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

Тема в разделе "Пакетные файлы CMD, BAT", создана пользователем Kиpилл, 25 дек 2013.

  1. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.199
    Симпатии:
    4.970
    Всем привет.

    Суть задачи:

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

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

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

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

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

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

    [​IMG]

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

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

    2)перечень заготовленных команд еще не подготовил,но сначала хочется узнать возможен ли этот проект.
     
    Phoenix нравится это.
  2. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    Высказываем мнения, пожелания, господа. И кто будет делать саму прогу?
     
    Phoenix и Kиpилл нравится это.
  3. Phoenix
    Оффлайн

    Phoenix Активный пользователь

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

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.199
    Симпатии:
    4.970
    Я вечером более расширенно распишу как вижу проект.

    Основная цель - систематизировать и сжать процесс анализа и восстановления работы ОС,что делает сам процесс помощи уже более продвинутым,гибким и тонким.
     
  5. Гимаев Наиль
    Оффлайн

    Гимаев Наиль Пользователь

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

    2. Файловый
    Логи попадают в архив имя которого содержит дату вида "2014-01-01 00h00m00,000s" или в любом другом виде. GUID и Timestamp хранятся в файле внутри архива. Файл архива передаётся на сервер вручную с любого компьютера, где есть интернет. Ответ приходит по почте в файле с расширением, ассоциированным с утилитой. При открытии файла возможны знакомые нам варианты "Для вас подготовлен лечебный скрипт, выполнить?" и "Ваш компьютер не нуждается в лечении, выйти?" или такие сообщения, как "Скрипт не для вашего компьютера" и "Скрипт устарел".
     
    Kиpилл и orderman нравится это.
  6. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    А какая victoria ,4.46b ? У меня она не работает (win7pro x64 2xCPU 3,2MHz)
    Выдала кучу ошибок - драйвер не видит...
    --- Объединённое сообщение, 26 дек 2013, Дата первоначального сообщения: 26 дек 2013 ---
    @Koza Nozdri, нужно начинать и не бояться ошибок - сложить всё в куче написать пару строк, а там по нарастающей. :)
    Вот я уже две нашёл - (можно работать)
    victoria
    1. Секции и параметры ini
    2. Установка драйвера
    3. Найти альтернативу
     
    Последнее редактирование: 26 дек 2013
    Kиpилл нравится это.
  7. orderman
    Оффлайн

    orderman Активный пользователь

    Сообщения:
    1.159
    Симпатии:
    1.396
    Я давал ссылку на victoria 4.47, но Костя отчитал за то что на обменнике.
     
    Последнее редактирование модератором: 26 дек 2013
  8. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.381
    Симпатии:
    5.265
    Гимаев Наиль, я (и думаю не только я) против обоих ваших вариантов в таком виде. У вас лечение - логи и отправка скриптов проходит через сервер, а всё это должно быть отображено в теме.
    orderman, отсчитали не за обменник, а за варез. victoria 4.47 - это крякнутая версия, которая сверху ещё накрыта протом, чтобы нельзя было отследить, что там напатчили. Так что пользоваться ей не рекомендую, а её обсуждение попадает под правила форума - запрет на обсуждение вареза. Ваш пост поправил.
    --- Объединённое сообщение, 26 дек 2013, Дата первоначального сообщения: 26 дек 2013 ---
    По поводу сабжа мечтать хорошо, но
    Koza Nozdri, если только кто-то не согласиться написать утилиту на каком-то языке программирования специально под твои нужды, которая будет определять заголовки окна, искать там нужные кнопки и т.д., либо нужно сначала подобрать или проверить есть ли у нужных тебе утилит управление с ключами командной строки.
     
  9. грум
    Оффлайн

    грум Команда форума Преподаватель Модератор

    Сообщения:
    2.874
    Симпатии:
    1.535
    regist автор виктории мне кажется не против в противном случае уже бы шум поднял.Так что почему варез?
    Просто неофициальная версия.Использование программы на свой страх и риск.Кстати на руборде читал.
     
  10. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.381
    Симпатии:
    5.265
    грум, автор виктории просто последнее время не занимается этим. Если бы он был не против, то выложил бы ссылку на своём сайте (кстати автор патча открыто признаётся, что пытался также взломать и сайт автора виктории). А варез потому что там идёт модификация авторского кода программы без согласия самого автора. При этом я тебе в ЛС кидал ссылку, где описано что новая фича версии 4.47 была сделана за счёт записи на блоки программы, которые редко использовались (поэтому автор патча думал, что не используются) и при определённых обстоятельствах из-за этого был сбой. Поэтому и не рекомендую пользоваться ей. Скачать авторскую версию виктории можете в ресурсах Victoria 4.46b.
    ру-борд это варезник, так что не надо его ставить в пример.
     
  11. orderman
    Оффлайн

    orderman Активный пользователь

    Сообщения:
    1.159
    Симпатии:
    1.396
    Этого не знал, снимаю все претензии
     
  12. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.476
    Симпатии:
    4.305
    К чему сложности. Не думаю, что это все нужно. Достаточно дать инструкцию пользователю, что нажимать.
    Здесь согласен.
    Гимаев Наиль, утилита должна соответствовать уже принятым принципам и рамкам написания скриптов лечения,
    как это можно наблюдать в вирусных темах (по примерам AVZ, uVS, ComboFix и пр.)
    Предварительно: это будет команда с номером таблетки (по типу ExecuteRepair AVZ-та).
    А Ваши варианты слишком опасны.
    "Скрипт не для вашего компьютера" - вот это можно взять на вооружение, хотя тоже без особого смысла.
    В AVZ - это GetComputerHash (%computername% + s/n %SystemDrive%), только для защиты никто? этим не пользуется.
     
    Kиpилл нравится это.
  13. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.381
    Симпатии:
    5.265
    Если будет инструкция и пользователь сам будет нажимать все кнопки и собирать логи, то что тогда будет делать утилита ? :)
    лично мне вообще не очень понятна идея скриптового лечения точней запуска проверки допустим целостности диска или системных файлов. Форум для того, чтобы потом в гугле можно было найти эту тему и почерпнуть полезную информацию. Очень многие предпочитают не создавать тему, а пытаться разобраться и исправить самим. Если не было бы подобных темы в гугле и на форумах, то наверно и мы во всё этом не разобрались. Аналогию со скриптами лечения от вирусов думаю проводить не совсем корректно.
     
    Последнее редактирование: 26 дек 2013
  14. Гимаев Наиль
    Оффлайн

    Гимаев Наиль Пользователь

    Сообщения:
    59
    Симпатии:
    98
    В том виде, которые я предложил - однозначно опасны.
    Если вывести текст скрипта на экран, то пользователь хотя бы будет видеть под чем подписывается, но не все поймут под чем.
    Все мои рассуждения строились на желании ТС сделать утилиту с одной кнопкой.
    Если использовать другой алгоритм, то кнопок потребуется значительно больше.
    Описанный алгоритм ни как не связан с задачей обсуждаемой утилитой и может быть использован для многих других "однокнопочных приложений", задача которых избавить пользователя от промежуточных операций загрузки/сохранения и копирования-вставки.

    Если бы Стив Джобс сказал, "ни кто не пользуется хорошими телефонами, поэтому мы не будем их делать", то iPhone бы не появился.
    Всегда есть кто-то первый, кто сделает хорошо и правильно, а остальные последуют его опыту.
     
    Phoenix, Dragokas и Kиpилл нравится это.
  15. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.199
    Симпатии:
    4.970
    Итак,кокнретизирую мысль,а то молчу как рыба.

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

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

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

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

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

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

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

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

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



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

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


    ну и тесты,пробы,ошибки...
    --- Объединённое сообщение, 26 дек 2013 ---
    ну так и так будет в гугл попадать.
    а инновационные пронкты для ресурса не новое дело)

    человек желающий разобраться разберется,а кто то и зарегается даже что бы поинтересоваться че за такое у нас.
    --- Объединённое сообщение, 26 дек 2013, Дата первоначального сообщения: 26 дек 2013 ---
    Тут часто бывает что и делают не то что надо - потому как не понимают что делают.
     
    Последнее редактирование: 26 дек 2013
  16. грум
    Оффлайн

    грум Команда форума Преподаватель Модератор

    Сообщения:
    2.874
    Симпатии:
    1.535
    Одна кнопка сделать красиво это здорово.Представляю так нажал кнопочку и опять все хорошо.
     
    Kиpилл и Dragokas нравится это.
  17. Гимаев Наиль
    Оффлайн

    Гимаев Наиль Пользователь

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

    call Таблетка074 &:: Запустить какую-то утилиту по восстановлению диска
    call Таблетка901 &:: Собрать логи какой-то утилитой и отправить на сервис
    call Таблетка281 AngryService &:: Что-то сделать со службой AngryService
     
    Этот скрипт попадает на вход другой утилите:
    Код (DOS):
    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 работает по разному на разных компьютерах. Во-первых интерпретатор командной строки разный в 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. Предложенный мной вариант с таблетками опаснее варианта одной кнопкой. Т.к. если раньше зловреду нужно было переправлять утилиту на сайт имитирующий работу нашего сайта, но дающего ложные скрипты, то теперь достаточно подправить таблетки.
    Это какой же популярностью должна обладать утилита, чтобы ею заинтересовались зловреды? :)
     
    Последнее редактирование: 28 дек 2013
    Phoenix, shestale, Kиpилл и ещё 1-му нравится это.
  18. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.199
    Симпатии:
    4.970
    Итак,какую то форму идея уже приобрела.

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

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

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

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


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

     
    Последнее редактирование: 28 дек 2013
  19. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.381
    Симпатии:
    5.265
    Koza Nozdri, в первую очередь нужно определиться с этим

    если утилиты не поддеживают нужные тебе ключи командной строки, то какой бы язык ты не выбрал, ты не сможешь ими управлять и всё остальное обсуждение потеряет смысл.
    --- Объединённое сообщение, 28 дек 2013, Дата первоначального сообщения: 28 дек 2013 ---
    если всё будет проходить через сервер (отправка логов, скриптов и т.д.), то что в гугл попадать будет? Зайдите в утилиту и нажмите проверить скрипты на сервере? Весь процесс как бы должен отображаться в теме и быть прозрачным.
    при разработке данной утилиты, имхо, нужно подстраиваться не только под хелперов, а чтобы ей было удобно пользоваться всем. Чтобы любой желающий имеющий определенный набор знание в устранение/диагностике системных проблем мог подключиться и дать совет.
     
    Kиpилл нравится это.
  20. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.199
    Симпатии:
    4.970
    ответы и вопросы будут поститься в теме,про сервер вопрос вопрос еще не однозначен.

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


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

    Насчет утилит - написал нескольким разработчикам,+веду поиск.
    --- Объединённое сообщение, 28 дек 2013 ---
    Да,так и должно быть.
     
    Последнее редактирование: 28 дек 2013

Поделиться этой страницей