Показано с 1 по 15 из 15.

Скрипт AVZ для поиска потерянных сервисных DLL

  1. #1
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для antanta
    Регистрация
    27.12.2008
    Адрес
    Алматы
    Сообщений
    687
    Вес репутации
    503

    Скрипт AVZ для поиска потерянных сервисных DLL

    Надеюсь, получит развитие, пройдет обкатку, после чего можно переместить в "Восстановление системы".
    КО утверждает, что скрипт ищет службы, реализованные в сервисных DLL, проверяет, есть ли нужная либа по указанному пути. Если нет, пытается найти по внутреннему имени в ресторах. Еще нужно будет добавить поиск в кэше, и так далее. Пока интересует, нужно ли это кому-то кроме меня. От этого будет зависеть наличие/отсутсвие свистелок, и вообще степень автоматизации.
    А вот и сам скрыпт.

  2. Реклама
     

  3. #2
    Global Moderator Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для ALEX(XX)
    Регистрация
    31.03.2005
    Адрес
    Чернигов
    Сообщений
    10,777
    Вес репутации
    3704
    а куда результаты он будет выводить?
    Left home for a few days and look what happens...

  4. #3
    Full Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация
    Регистрация
    16.06.2010
    Сообщений
    386
    Вес репутации
    304
    Цитата Сообщение от ALEX(XX) Посмотреть сообщение
    а куда результаты он будет выводить?
    так там же написано
    {SaveToFile(TempDir+'\LostDlls.txt')}
    во временной папке

  5. #4
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для antanta
    Регистрация
    27.12.2008
    Адрес
    Алматы
    Сообщений
    687
    Вес репутации
    503
    Цитата Сообщение от Val_Ery Посмотреть сообщение
    так там же написано
    {SaveToFile(TempDir+'\LostDlls.txt')}
    во временной папке
    И достатые файлы туда же. (Пока). Не думаю, что проблема закинуть их вручную в нужный каталог. Хотя, можно и диалоги организовать, сравнивать версии...
    Инфа еще и в лог выводится.
    Да, файло переименовывается, добавляется префикс из цифирей. Это потому, что в ресторах может находиться несколько экземпляров.
    Можно добавить проверку файлов. Если кому-то будет интересно этим заняться, я буду только рад. А у меня еще есть замыслы, которые нужно довести до ума.

  6. #5
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для Alex Plutoff
    Регистрация
    05.02.2006
    Адрес
    Украина
    Сообщений
    1,728
    Вес репутации
    932
    Цитата Сообщение от antanta Посмотреть сообщение
    И достатые файлы туда же. (Пока).
    - т.е. в каталог, с замысловато-экзотическим именем z{F306021C-9466-4280-9840-C58D4026960B} в корне системного диска
    Цитата Сообщение от antanta Посмотреть сообщение
    Не думаю, что проблема закинуть их вручную в нужный каталог.
    - равно как и нет проблем с их восстановлением без какого-либо скрипта вообще, тем более такого который, кстати сказать, кроме прочего может выдать в лог и перечень целой кучи DLL, указания на которые по какимто причинам остались не подчищенными в реестре после удаления из системы самих сервисов и/или их файлов

    Цитата Сообщение от antanta Посмотреть сообщение
    Хотя, можно и диалоги организовать, сравнивать версии...
    Инфа еще и в лог выводится.
    Да, файло переименовывается, добавляется префикс из цифирей. Это потому, что в ресторах может находиться несколько экземпляров.
    Можно добавить проверку файлов. Если кому-то будет интересно этим заняться, я буду только рад. А у меня еще есть замыслы, которые нужно довести до ума.
    - если кому интересно, то, конечно же занимайтесь, но большой практической ценности в таком занятии, извините, не узрел... неужели сервисные библиотеки, на самом деле, так уж часто и в таких количествах приходится восстанавливать, что никак не обойтись без скрипта?..

    P.S. это всего лишь моё скромное мнение, и ни в коей мере не претендует на роль истины в последней инстанции...
    если звезды зажигают - значит - это кому-нибудь нужно (C)
    С уважением,
    Alex Plutoff
    А. ПЛАТОВ

  7. #6
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для antanta
    Регистрация
    27.12.2008
    Адрес
    Алматы
    Сообщений
    687
    Вес репутации
    503
    с замысловато-экзотическим именем
    Можно заменить на %SystemRoot%, опенсорс же, под лицензией ДПЗД. Кстати eula забыл добавить
    - равно как и нет проблем с их восстановлением без какого-либо скрипта вообще
    Expand? Со здрового компа? Много движений, и нужно знать, что искать. К сожалению, я не нашел способа проверять статус сервиса средствами скриптового языка. Придется вызывать виндовые утилиты. Если , опять же, это кому-то нужно. А пока юзаю для этого свою утилиту, экономит время порядком.
    кроме прочего может выдать в лог и перечень целой кучи DLL, указания на которые по какимто причинам остались не подчищенными в реестре после удаления из системы самих сервисов и/или их файлов
    Дык! Подчистить бы надо. Либо файл найти и посадить на место.
    неужели сервисные библиотеки, на самом деле, так уж часто и в таких количествах приходится восстанавливать
    Лично я сталкиваюсь с такого рода случаями примерно два раза в месяц. Обычно это бывает результатом работы антивируса (не без согласия юзера).
    большой практической ценности в таком занятии, извините, не узрел
    Все зависит от рода занятий.

  8. #7
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для Alex Plutoff
    Регистрация
    05.02.2006
    Адрес
    Украина
    Сообщений
    1,728
    Вес репутации
    932
    Цитата Сообщение от antanta Посмотреть сообщение
    Лично я сталкиваюсь с такого рода случаями примерно два раза в месяц. Обычно это бывает результатом работы антивируса (не без согласия юзера).
    - ключевые слова: "не без согласия юзера"
    ...хотя, наверное известны случаи, когда такое случается и без его участия

    Цитата Сообщение от antanta Посмотреть сообщение
    Все зависит от рода занятий.
    - ну, да... если ПК использовать в качестве испытательного полигона, то на нем не только часто теряются сервисы но и ОС довольно часто падает
    С уважением,
    Alex Plutoff
    А. ПЛАТОВ

  9. #8
    Full Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для NRA
    Регистрация
    17.03.2008
    Сообщений
    376
    Вес репутации
    179
    В случае проблем предпочитаю sfc / scannow, а вот если скрипт умеет работать с подлым мелкосаксным SxS (Side-by-Side), то может пригодиться ИМО.
    Нас объединяет то, что разъединяет

  10. #9
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для antanta
    Регистрация
    27.12.2008
    Адрес
    Алматы
    Сообщений
    687
    Вес репутации
    503
    NRA, sfc хорошо, но, зачастую, ни один дистрибутив система не принимает за свой.

    Alex Plutoff, О роде занятий. Одно дело 1000 машин, на которые сам же ставил систему. Тут и бэкапы, и дистрибутивчик нормальный, и все настроен правильно. А если все наоборот? Много мелких клиентов, обратившихся в сервис - центр на стадии, когда поздно пить боржоми. Если ставится задача все быстро восстановить, систему не сносить, то это - "наш клиент".

  11. #10
    Global Moderator Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация
    Регистрация
    12.10.2004
    Адрес
    Смоленск
    Сообщений
    6,179
    Вес репутации
    3380
    Цитата Сообщение от antanta Посмотреть сообщение
    NRA, sfc хорошо, но, зачастую, ни один дистрибутив система не принимает за свой.

    Alex Plutoff, О роде занятий. Одно дело 1000 машин, на которые сам же ставил систему. Тут и бэкапы, и дистрибутивчик нормальный, и все настроен правильно. А если все наоборот? Много мелких клиентов, обратившихся в сервис - центр на стадии, когда поздно пить боржоми. Если ставится задача все быстро восстановить, систему не сносить, то это - "наш клиент".
    В такой ситуации нужно поступать несколько иначе ... делать БД служб и драйверов, которые обязаны присутствовать в системе, а также базу сервисных и просто системных DLL, базу CLSID и прочего. Сделать можно по разном, в частности и средствами AVZ. Далее приходит юзер, приносит системник - тут-же экспресс-тест и выводы - что драйвера/CLSID/службы такие-то убиты из реестра, файлов таких-то не хватает на диске и так далее. И альтернативы - или искать файл у юзера, или восстановить эталонный (зная версию и SP его системы это легко сделать). Причем давать такую программу/скрипт и т.п. юзеру крайне противопоказано, а вот сервис-центру - как раз наоборот, это полезно (придется конечно обумывать, что делать по найденному)

  12. #11
    Junior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация
    Регистрация
    27.06.2007
    Сообщений
    29
    Вес репутации
    49
    скрипт ищет службы, реализованные в сервисных DLL,
    Можно сказать что так и не понял, что кроется в этом.
    Насколько понимаю, служба может использовать какие то библиотеки, а здесь получается наоборот.

    Так как не понтен смысл, возможно дальнейшее будет не по теме.

    sfc хорошо, но, зачастую, ни один дистрибутив система не принимает за свой
    К тому же sfc проверяет всё и достачно долго, при этом подкидывая даже те библиотеки и файлы, без которых система прекрасно работала.
    Вот если этот скрипт проверяет минимально необходимое, то это было бы неплохо.
    Если провести аналогии с автомобилем, то для того чтобы ехать куда либо - водитель делает беглый осмотр основных вещей (стоят ли колёса есть ли бензин и т.п.), но он же не проверяет силу закрутки каждого болтика

  13. #12
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для antanta
    Регистрация
    27.12.2008
    Адрес
    Алматы
    Сообщений
    687
    Вес репутации
    503
    Блуждающий, если запустить диспетчер задач, можно увидеть несколько экземпляров svchost.exe. Если глянуть в реестр сюда: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es, то можно найти сервисы, имеющие параметр ImagePath вида System32\svchost.exe +параметры . Если это так, то должен быть и подкдюч Parameters, а там параметр ServiceDll, значением которого является путь к той самой либе.
    Наверное (чтобы меньше вызывало недоумение) можно провести аналогию с запуском DLL как исполняемых файлов с помощью Rundll32.exe.
    Принято говорить, что svchost является хостом для сервисных DLL, и все такое. На самом деле, сам механизм понимается разными "писателями" в сильно различной степени, как и мотивы, которые двигали создателями такой схемы. Я бы с удовольствием выслушал толковый комментарий, или версию.

  14. #13
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для antanta
    Регистрация
    27.12.2008
    Адрес
    Алматы
    Сообщений
    687
    Вес репутации
    503
    Переделал. Теперь опрашиваем базу на предмет сервисов, которые не запущены. Те, что и не пытались загрузиться, игнорируются. Получился "скелет". В зависимости от кода ошибки можно предпринимать различные действия. В этом скрипте пока обрабатывается только отсутствие файла. Файл с кодами ошибок из DDK прилагается.
    Если кто-то вспомнит часто встречающиеся ошибки, а также солюшены, предлагаю вносить.

  15. #14
    Full Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для NRA
    Регистрация
    17.03.2008
    Сообщений
    376
    Вес репутации
    179
    К тому же sfc проверяет всё
    Тоесть, скрипт проверяет не всё и это хорошо? ИМО, как уже сказал Олег, это довольно узкопрофильная тулса - лично мне надёжнее штатными средствами и выделить столько времени, сколько потребуется для стабильности системы.
    Нас объединяет то, что разъединяет

  16. #15
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для antanta
    Регистрация
    27.12.2008
    Адрес
    Алматы
    Сообщений
    687
    Вес репутации
    503
    NRA, очень многим, почти всем это не нужно, я гарантирую это.
    Но, кому-то интересно найти причину неполадки. А причиной может быть не только битый или удаленный файл. Между чем и чем мы выбираем?
    1) Лезем в журнал событий (если получится). Если ошибка знакомая, фиксим. Если нет, топаем на technet, и вообще юзаем поиск.
    2) Запускаем скрипт, который выдает возможные решения. Фактически - локальная база знаний. С той разницей, что можно кое-что фиксить нажатием на кнопку, а не искать по флешке нужный скрипт.
    Одному человеку наполнить эту базу достаточно проблематично.
    Мне по душе больше второй вариант. А о том, что большинству все это не нужно, я догадывался.

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 03.09.2010, 17:55
  2. В сервисных центрах процветает мошенничество
    От ALEX(XX) в разделе Другие новости
    Ответов: 13
    Последнее сообщение: 28.07.2009, 12:46
  3. Диагностика для поиска вирусов...
    От serjiosafonov в разделе Помогите!
    Ответов: 11
    Последнее сообщение: 20.03.2009, 16:37

Свернуть/Развернуть Ваши права в разделе

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Page generated in 0.01397 seconds with 24 queries