Проверка целостности системных файлов утилитой sfc

Проверка целостности системных файлов утилитой sfc 0.7.6

Пользователь Koza Nozdri обновил ресурс Проверка целостности системных файлов утилитой sfc новой записью:

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

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

Теперь в лог sfcdoc.log выводится более подробная информация,что позволяет более точно провести анализ для помощи пользователям.
Добавлен вывод в лог списка замененных файлов при проверке в windows xp.

Исправлены мелкие недочеты.

Узнать больше об этом обновлении...
 
Выполнить проверку sfc_scannow (1).7z

Я бы в zip порекомендовал перепаковать.
Было бы неплохо, если скрипт в конце проверки сам бы открывал папку windows\logs\cbs
 
Последнее редактирование:
Я бы в zip порекомендовал перепаковать.
Согласен,готово.

если скрипт в конце проверки сам бы открывал папку windows\logs\cbs
По идее так и есть...у тебя не открывается?
CMD/BATCH:
rundll32 shell32.dll,ShellExec_RunDLL "%log%"
Echo. >>"%log%"
explorer.exe %windir%\Logs\CBS\
 
Пользователь Koza Nozdri обновил ресурс Проверка целостности системных файлов утилитой sfc новой записью:

Проверка и вывод в лог наличия и даты создания точек восстановления,формат архива zip

Добавлена проверка и вывод в лог наличия и даты создания точек восстановления,формат архива ресурса теперь zip.

Узнать больше об этом обновлении...
 
Не секрет, что подсистема SFC берёт под защиту не так много файлов, как бы хотелось.

Есть предложение, частично восполнить пробел:

1) проверка на наличие файлов (если какой-то важный сис. файл случайно (?) удалён). Пример: эта тема.
Создать полные списки наборов файлов, которые обязательно должны присутствовать в системе (список с эталонной ОС и ОС с полным набором обновлений. Сравнить, доп. отчет SFC сформировать таким образом (2 раздела):

а. Список отсутствующих системных файлов:

б. Список отсутствующих системных файлов (сравнительно с обновлённой ОС):

Списки соответственно под XP / Vista / 7 / 8 / 8.1. / 10 + x32 / x64. На счёт разных редакций не уверен. Это муторно / времязатратно.

2) посмотреть, какие из файлов не подпадают под SFC, но при этом имеют ЭЦП. Можно было бы их проверять таким образом. (пока просто идея, нужно свериться, сколько таких и что за файлы)
 
(список с эталонной ОС и ОС с полным набором обновлений.
Это невозможно. По очень простой причине, как ты наверняка знаешь обновления системы меняют системные файлы, на более новые версии.
К примеру ты установил все обновления сделал список своих файлов. Через месяц опять устанавливаешь обновления и они опять меняют тебе системные файлы. То есть надо заново составлять список. В итоге для того чтобы сделать такие списки тебе наверно пришлось бы выкачать все апдейты MS для всех интересующих тебя ОС (которые только выходили и в которых есть обновление системных файлов), распаковать их и внести сигнатуры файлов оттуда в твоей список и каждый месяц эти списки обновлять. При этом ещё учесть, что MS часть апдейтов для XP со своих сайтов уже убрала, так что искать тебе их придётся по форумам в составе пользовательских паков. При этом ещё учесть, что для разных локализаций некоторые файлы разные.
 
Есть предложение, частично восполнить пробел:
Частично восполнить пробел можно некоторыми другими эталонами-для решения разных проблем.
Типа системные таблетки.
Что я и пытался ранее сделать,но двигаюсь оочень медленно,ввиду того что неважный кодер.

Создать полные списки наборов файлов, которые обязательно должны присутствовать в системе
Была такая мысль,но пока что от нее отказался...потому что файлов ну просто десятки тысяч я думаю.
Единственный шанс это постепенное наполнение базы.

Это невозможно. По очень простой причине, как ты наверняка знаешь обновления системы меняют системные файлы, на более новые версии.
К примеру ты установил все обновления сделал список своих файлов. Через месяц опять устанавливаешь обновления и они опять меняют тебе системные файлы. То есть надо заново составлять список.
Именно так,поэтому из списка была мысль выделение по нескольким критериям.
Полное совпадение хеша и имени,версии.
Второе - тупо перечисление имен.
Но при этом остается проблема проверки файлов на целостность,тех что не проверяются sfc

Поэтому была мысль прогона поименно,вывод вспомогающих логов и локализованные таблетки с эталонами твиков на систему в комбинации для облегченной диагностики.
На данный момент туплю над созданием выделенного процесса и еще некоторых мелочей.
Однозначно это уже не bat.
Но,похоже что и на vb6 не стоило затевать этот проект,хотя рабочий прототип уже и готов я понимаю что впереди реальные проблемки в виде отсутсвия возможностей ЯП или моих знаний.
 
Вы меня не поняли.

в п.1. речь не о проверке целостности. Речь о проверке наличия файла в системе. Посмотрите тему, куда я давал ссылку - там в системе удален файл usb.inf. По-умолчанию, он присутствует, на большинстве версий ОС.

Дополнительный отчёт, который я предлагаю, будет - не о том, что файл поврежден, а о том, что его вообще нету в системе.

База файлов будет действительно большая. Это да. Но там нужен только путь, имя и версия ОС. Проверка на присутствие файла - эта штука выполняется очень-очень быстро.
Кроме того, ты можешь запустить такой батник параллельно с основным SFC и он закончит работу гораздо быстрее, чем основная процедура sfc /scannow.
--------------
По п.2. тут нужно анализировать отчет HiJackThis, который умеет выдавать соответствующую инфу.
Там тоже не нужна база хешей, так как проверку я предлагаю только файлов, которые имеют ЭЦП, но по каким-то причинам не были введены под контроль подсистемы SFC.

Вот прикладываю отчёт о проверке ~ 15000 файлов на Win7 x64.
Он отсортирован, и в самом начале идёт список где WFP / SFC = false + Legitimate = true (первые 9951 файлов). Вот эти файлы есть возможность проверить. Они находятся в таких папках:
C:\Windows\assembly
C:\Windows\System32
C:\Windows\System32\drivers
C:\Windows\System32\DriverStore
C:\Windows\SysWOW64
C:\Windows\winsxs
Из этого всего,
C:\Windows\System32\DriverStore
C:\Windows\winsxs
думаю, не имеет смысла проверять, т.к. это хранилища, целостность файлов в которых SFC проверит сама, прежде чем заменить ими повреждённый файл.

Остальное можно и проверить.
C:\Windows\assembly - Net.Framework.
C:\Windows\System32 - несколько dll и exe
C:\Windows\SysWOW64 - несколько dll
C:\Windows\System32\drivers - да, драйвера, дефолтовые от MS, но как видно по отчёту часть из них не проверяется.
А значит, если файл будет повреждён, то в системе могут начаться серъёзные проблемы, и по отчёту SFC этого не будет видно.

Но,похоже что и на vb6 не стоило затевать этот проект,хотя рабочий прототип уже и готов я понимаю что впереди реальные проблемки в виде отсутсвия возможностей ЯП или моих знаний.
Уверяю, возможностей там предостаточно. Удобства мало, это да. Опять же не удобство только тем, кто не знает, где искать. На иностранных форумах уже давно под VB6 напридумывали кучу полезных классов, обёрток и интерфейсов, только бери и смотри как работает.
Сейчас простые скрипты часто пишут на python. Может, тебя заинтересует. База готового кода там хорошая. Для оконных приложений можно воспользоваться PyQt.
Если нет, то AutoIT и иже с ними.
 

Вложения

Kиpилл, а можно добавить к утилю:
Код:
wmic qfe list
чтоб отчёт по датам обновлений видно было.

И еще, можно хотя бы под спойлер в 1-й пост пример отчёта выложить, или список того, какая доп. информация будет собрана этим скриптом.
А то, нужен список обновлений с датами, и не знаешь, что этот скрипт выдает то ли просто список, то ли с датами. А тот же GSI этой инфы не показывает.
 
Хорошо бы еще итоговый лог выводить в более удобном виде, типа htm.
 
Kиpилл, как не странно только наткнулся на эту тему, вот интересует вопрос, по факту, сколько +- % соотношения поднятых систем (без ручного вмешательства), я не говорю, что чистых, а как минимум - загружающихся и с не дефолтным реестром, а с относительно работоспособным ПО, установленным ранее?
 
Sandor, надо подумать...но насколько это целесообразно?
HotBeer, все зависит от того,кто как применяет процедуры восстановления и насколько умеет понимать получаемую информацию.
Мне этот скрипт помогал неоднократно,как и тот,что для нерабочей системы.
То есть когда система не загружается.
 
Последнее редактирование:
Sandor, а что там выводить? Список файлов в HTML?
Напомню, что для фильтрации лога уже есть: https://safezone.cc/resources/filtracija-loga-sfc-scannow.123/
HotBeer, тут скорее проблема найти подходящий файл для замены, если его нету в хранилище. Слишком много версий.
 
Последнее редактирование:
Мда... и ведь казалось мне, что нечто подобное уже есть :)
Спасибо!
 
Kиpилл, для тебя патч кодировки списка обновлений:

Код:
wmic qfe list > t
chcp 866 >NUL
cmd /d /a /c type t >>"%log%"
del t
 
Учту это при следующем обновлении.
Так же будет включена проверка целостности файлов и настроек для выполнения необходимых скриптов с бэкапом и откатом если юзеру надо.
Еще некоторые пряники для вин 10
На этом будет финал.

Дальше идея перейдет в проект WinDetect - категоря восстановления системы практически готова.
Скоро гонять будем наверное.
 
Решил проверить систему с помощью утилиты sfc и обнаружил, что при запуске от имени администратора утилита запускается и вновь просит запустить от имени администратора. Ранее проблем с запуском не было. Остальные программы, командная строка запускаются без проблем. Что можно сделать в данной ситуации? Спасибо.
 
Назад
Сверху Снизу