-
Скрипт AVZ для поиска потерянных сервисных DLL
Надеюсь, получит развитие, пройдет обкатку, после чего можно переместить в "Восстановление системы".
КО утверждает, что скрипт ищет службы, реализованные в сервисных DLL, проверяет, есть ли нужная либа по указанному пути. Если нет, пытается найти по внутреннему имени в ресторах. Еще нужно будет добавить поиск в кэше, и так далее. Пока интересует, нужно ли это кому-то кроме меня. От этого будет зависеть наличие/отсутсвие свистелок, и вообще степень автоматизации.
А вот и сам скрыпт.
-
-
Будь в курсе!
Будь в курсе!
Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:
-
а куда результаты он будет выводить?
Left home for a few days and look what happens...
-
-
Сообщение от
ALEX(XX)
а куда результаты он будет выводить?
так там же написано
{SaveToFile(TempDir+'\LostDlls.txt')}
во временной папке
-
Сообщение от
Val_Ery
так там же написано
{SaveToFile(TempDir+'\LostDlls.txt')}
во временной папке
И достатые файлы туда же. (Пока). Не думаю, что проблема закинуть их вручную в нужный каталог. Хотя, можно и диалоги организовать, сравнивать версии...
Инфа еще и в лог выводится.
Да, файло переименовывается, добавляется префикс из цифирей. Это потому, что в ресторах может находиться несколько экземпляров.
Можно добавить проверку файлов. Если кому-то будет интересно этим заняться, я буду только рад. А у меня еще есть замыслы, которые нужно довести до ума.
-
-
Сообщение от
antanta
И достатые файлы туда же. (Пока).
- т.е. в каталог, с замысловато-экзотическим именем z{F306021C-9466-4280-9840-C58D4026960B} в корне системного диска
Сообщение от
antanta
Не думаю, что проблема закинуть их вручную в нужный каталог.
- равно как и нет проблем с их восстановлением без какого-либо скрипта вообще, тем более такого который, кстати сказать, кроме прочего может выдать в лог и перечень целой кучи DLL, указания на которые по какимто причинам остались не подчищенными в реестре после удаления из системы самих сервисов и/или их файлов
Сообщение от
antanta
Хотя, можно и диалоги организовать, сравнивать версии...
Инфа еще и в лог выводится.
Да, файло переименовывается, добавляется префикс из цифирей. Это потому, что в ресторах может находиться несколько экземпляров.
Можно добавить проверку файлов. Если кому-то будет интересно этим заняться, я буду только рад. А у меня еще есть замыслы, которые нужно довести до ума.
- если кому интересно, то, конечно же занимайтесь, но большой практической ценности в таком занятии, извините, не узрел... неужели сервисные библиотеки, на самом деле, так уж часто и в таких количествах приходится восстанавливать, что никак не обойтись без скрипта?..
P.S. это всего лишь моё скромное мнение, и ни в коей мере не претендует на роль истины в последней инстанции...
если звезды зажигают - значит - это кому-нибудь нужно (C)
С уважением,
Alex Plutoff
А. ПЛАТОВ
-
-
с замысловато-экзотическим именем
Можно заменить на %SystemRoot%, опенсорс же, под лицензией ДПЗД. Кстати eula забыл добавить
- равно как и нет проблем с их восстановлением без какого-либо скрипта вообще
Expand? Со здрового компа? Много движений, и нужно знать, что искать. К сожалению, я не нашел способа проверять статус сервиса средствами скриптового языка. Придется вызывать виндовые утилиты. Если , опять же, это кому-то нужно. А пока юзаю для этого свою утилиту, экономит время порядком.
кроме прочего может выдать в лог и перечень целой кучи DLL, указания на которые по какимто причинам остались не подчищенными в реестре после удаления из системы самих сервисов и/или их файлов
Дык! Подчистить бы надо. Либо файл найти и посадить на место.
неужели сервисные библиотеки, на самом деле, так уж часто и в таких количествах приходится восстанавливать
Лично я сталкиваюсь с такого рода случаями примерно два раза в месяц. Обычно это бывает результатом работы антивируса (не без согласия юзера).
большой практической ценности в таком занятии, извините, не узрел
Все зависит от рода занятий.
-
-
Сообщение от
antanta
Лично я сталкиваюсь с такого рода случаями примерно два раза в месяц. Обычно это бывает результатом работы антивируса (не без согласия юзера).
- ключевые слова: "не без согласия юзера"
...хотя, наверное известны случаи, когда такое случается и без его участия
Сообщение от
antanta
Все зависит от рода занятий.
- ну, да... если ПК использовать в качестве испытательного полигона, то на нем не только часто теряются сервисы но и ОС довольно часто падает
С уважением,
Alex Plutoff
А. ПЛАТОВ
-
-
В случае проблем предпочитаю sfc / scannow, а вот если скрипт умеет работать с подлым мелкосаксным SxS (Side-by-Side), то может пригодиться ИМО.
Нас объединяет то, что разъединяет
-
NRA, sfc хорошо, но, зачастую, ни один дистрибутив система не принимает за свой.
Alex Plutoff, О роде занятий. Одно дело 1000 машин, на которые сам же ставил систему. Тут и бэкапы, и дистрибутивчик нормальный, и все настроен правильно. А если все наоборот? Много мелких клиентов, обратившихся в сервис - центр на стадии, когда поздно пить боржоми. Если ставится задача все быстро восстановить, систему не сносить, то это - "наш клиент".
-
-
Сообщение от
antanta
NRA, sfc хорошо, но, зачастую, ни один дистрибутив система не принимает за свой.
Alex Plutoff, О роде занятий. Одно дело 1000 машин, на которые сам же ставил систему. Тут и бэкапы, и дистрибутивчик нормальный, и все настроен правильно. А если все наоборот? Много мелких клиентов, обратившихся в сервис - центр на стадии, когда поздно пить боржоми. Если ставится задача все быстро восстановить, систему не сносить, то это - "наш клиент".
В такой ситуации нужно поступать несколько иначе ... делать БД служб и драйверов, которые обязаны присутствовать в системе, а также базу сервисных и просто системных DLL, базу CLSID и прочего. Сделать можно по разном, в частности и средствами AVZ. Далее приходит юзер, приносит системник - тут-же экспресс-тест и выводы - что драйвера/CLSID/службы такие-то убиты из реестра, файлов таких-то не хватает на диске и так далее. И альтернативы - или искать файл у юзера, или восстановить эталонный (зная версию и SP его системы это легко сделать). Причем давать такую программу/скрипт и т.п. юзеру крайне противопоказано, а вот сервис-центру - как раз наоборот, это полезно (придется конечно обумывать, что делать по найденному)
-
-
скрипт ищет службы, реализованные в сервисных DLL,
Можно сказать что так и не понял, что кроется в этом.
Насколько понимаю, служба может использовать какие то библиотеки, а здесь получается наоборот.
Так как не понтен смысл, возможно дальнейшее будет не по теме.
sfc хорошо, но, зачастую, ни один дистрибутив система не принимает за свой
К тому же sfc проверяет всё и достачно долго, при этом подкидывая даже те библиотеки и файлы, без которых система прекрасно работала.
Вот если этот скрипт проверяет минимально необходимое, то это было бы неплохо.
Если провести аналогии с автомобилем, то для того чтобы ехать куда либо - водитель делает беглый осмотр основных вещей (стоят ли колёса есть ли бензин и т.п.), но он же не проверяет силу закрутки каждого болтика
-
Блуждающий, если запустить диспетчер задач, можно увидеть несколько экземпляров svchost.exe. Если глянуть в реестр сюда: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es, то можно найти сервисы, имеющие параметр ImagePath вида System32\svchost.exe +параметры . Если это так, то должен быть и подкдюч Parameters, а там параметр ServiceDll, значением которого является путь к той самой либе.
Наверное (чтобы меньше вызывало недоумение) можно провести аналогию с запуском DLL как исполняемых файлов с помощью Rundll32.exe.
Принято говорить, что svchost является хостом для сервисных DLL, и все такое. На самом деле, сам механизм понимается разными "писателями" в сильно различной степени, как и мотивы, которые двигали создателями такой схемы. Я бы с удовольствием выслушал толковый комментарий, или версию.
-
-
Переделал. Теперь опрашиваем базу на предмет сервисов, которые не запущены. Те, что и не пытались загрузиться, игнорируются. Получился "скелет". В зависимости от кода ошибки можно предпринимать различные действия. В этом скрипте пока обрабатывается только отсутствие файла. Файл с кодами ошибок из DDK прилагается.
Если кто-то вспомнит часто встречающиеся ошибки, а также солюшены, предлагаю вносить.
-
-
К тому же sfc проверяет
всё
Тоесть, скрипт проверяет не всё и это хорошо? ИМО, как уже сказал Олег, это довольно узкопрофильная тулса - лично мне надёжнее штатными средствами и выделить столько времени, сколько потребуется для стабильности системы.
Нас объединяет то, что разъединяет
-
NRA, очень многим, почти всем это не нужно, я гарантирую это.
Но, кому-то интересно найти причину неполадки. А причиной может быть не только битый или удаленный файл. Между чем и чем мы выбираем?
1) Лезем в журнал событий (если получится). Если ошибка знакомая, фиксим. Если нет, топаем на technet, и вообще юзаем поиск.
2) Запускаем скрипт, который выдает возможные решения. Фактически - локальная база знаний. С той разницей, что можно кое-что фиксить нажатием на кнопку, а не искать по флешке нужный скрипт.
Одному человеку наполнить эту базу достаточно проблематично.
Мне по душе больше второй вариант. А о том, что большинству все это не нужно, я догадывался.
-