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

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

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
Немного обновил FAQ
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
А может ли скрипт навредить системе?

Нет.
Скрипт только лишь проверяет и восстанавливает - по возможности - целостность системных файлов.
Но стоит отметить момент, что скрипт нежелательно использовать на системах с плохим состоянием жесткого диска.
 

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
Попробуйте эту версию на win 7 , кому не сложно.

Если скрипт предложит патч - то ставим.
Затем должна появиться опция : персональные процедуры восстановления.
А в них - восстановление и очистка Хранилища Данных Windows
Да, теперь в win 7 тоже должно работать.
 

Вложения

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
....

...... Процедура восстановления хранилища...

Cистема DISM
Версия: 6.1.7600.16385

Версия образа: 6.1.7601.18489


Ошибка: 87

Параметр restorehealth не распознан в этом контексте.
Дополнительные сведения см. в справке.
...... Процедура очистки хранилища...

Cистема DISM
Версия: 6.1.7600.16385

Версия образа: 6.1.7601.18489


Ошибка: 87

Параметр startcomponentcleanup не распознан в этом контексте.
Дополнительные сведения см. в справке.

Файл журнала DISM находится по адресу C:\Windows\Logs\DISM\dism.log
Восстановление хранилища данных прошло некорректно.
Сообщите о проблеме специалистам SafeZone
Нажмите клавишу ENTER что бы продолжить
 

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
Всем привет.
Сильно переписал скрипт, если у кого есть желание и чуть чуть времени - буду благодарен за обратную связь.
Это не конечный вариант, если по данной конструкции вопросов не возникнет, значит останутся кое какие примочки и можно будет обновить ресурс.
 

Вложения

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
kbpatch=1 :: ввернем
если ты об однострочном комментарии, то он делается не так, а вот так &::

А что за "секретное меню" ? :)
 

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
А решил сделать ряд опций, доступных опытным юзерам.
Соответственно меню (пока что пусть называется секретное :) ) остается недоступным и вызывается специальным набором символов.
Планирую как отдельно каждую функцию вызывать так и возможность пакетами.
Опций скрытых будет, конечно, больше чем сейчас.
 

igpol

Активный пользователь
Сообщения
50
Реакции
12
Баллы
48
Запустил расширенную процедуру проверки и восстановления (кн. 2). Скрипт отработал без каких-либо ошибок. По окончании отрылся sfcdoc.log и CBS.LOG. В sfcdoc много "кракозябров", может быть так и надо.
 

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
По окончании отрылся sfcdoc.log и CBS.LOG. В sfcdoc много "кракозябров", может быть так и надо.
Это особенность вывода текста в определенной кодировке.
К релизу исправлю.
 

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
Готово обновление скрипта.
Если вопросов\замечаний не будет - обновлю ресурс.
К релизу исправлю.
С кодировкой решил пока так оставить - 866
Слишком деликатный момент)
зы
нечто наподобие режима мастера вызывается номерами 77 и 78 в меню
 

Вложения

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
На Win7 главное меню загружается на много дольше, чем в прошлой версии, что в ресурсах.
Из-за
Код:
wmic qfe list | find "KB2966583" > nul
Так ли важно знать set kbpatch=1 на этапе загрузки меню, если в этой версии скрипта ты его все равно для меню не используешь, а только для логирования? Может, перенесёшь на позднюю стадию?

На Win10 выдаёт сообщение в главное меню:
Это из-за того, что у тебя в:
Код:
:choice
echo
setlocal
стоит echo без аргументов.

Код:
Echo ......Открытие папки... >>"%log%"
Зачем это предложение в логе?

Копии файлов находятся так же в каталоге: - "также" - пишется слитно в данном случае.
Нажмите клавишу ENTER что бы продолжить - "чтобы" - слитно. (в 2 местах)
что бы показать его тем - аналогично
Скрипт подготовлен Кирилл - тогда уж подготовил

echo Помните, что копии версии восстанавливаемых вами
echo файлов должна соотвествовать атктуальной версии,

echo Помните, что копия версии восстанавливаемого вами
echo файла должна соотвествовать атктуальной версии,

В конце работы выводится сообщение:
Не удается найти указанный файл.
Это потому что ты не зануляешь 2>NUL эту строку:
Код:
type "C:\Windows\Logs\CBS\sfcdoc2.log"    1>>"C:\Windows\Logs\CBS\sfcdoc.log"
когда файла sfcdoc2.log нету.

Выход обратно в меню осуществлён неправильно. Из-за этого в win7 скрипт просто закрывается после отработки меню 2. Открыть результаты последнего сканирования"
Для этого нужно:
Код:
VER | FINDSTR /IL "10.0." > NUL
IF %ERRORLEVEL% EQU 0 ( SET Version="Windows 10"
                                            set os=0
                                                call :CheckAdmin
                                                  call :os0    )                   


                                               
exit /b
exit /b заменить на goto veros
Код:
: FixIt
пишется слитно с двоеточием

ИМХО, повтор текста в :Help для if %os% EQU 1 и if %os% EQU 0, не знаю, зачем ты так заморачивался.

Этот код, я полагаю, ты поймешь зачем нужен и как пользоваться:
Код:
:: OEM-866 to UTF-8
chcp 866>nul
@<"in.file">"out.file" (for /f "delims=" %%i in ('find/n /v ""') do @chcp 65001>nul& set x=%%i& cmd/v/c echo[!x:*]^^=!)
chcp 866>nul
P.S. Секретное меню - гуд :)

Ещё, выложил лог. Может, тебе он покажется интересным.
Там POQ и PendingRenames. Мне это почему-то показалось странным.
 

Вложения

  • 82.4 KB Просмотры: 1
Последнее редактирование:

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
Так ли важно знать set kbpatch=1 на этапе загрузки меню, если в этой версии скрипта ты его все равно для меню не используешь, а только для логирования? Может, перенесёшь на позднюю стадию?
Я вообще наверное уберу, так как при наличии лога от опции патча смысла нет.
Зачем это предложение в логе?
что бы понимать, что это происходило.
например,если что то не так - то по таким "меткам" (если их можно так назвать) видно, до какой стадии доходит процесс+лог выглядит приятнее, чем если бы использовать в качестве подобных меток какие то спецсимволы
ИМХО, повтор текста в :Help для if %os% EQU 1 и if %os% EQU 0, не знаю, зачем ты так заморачивался.
в будущем текст может сильно отличаться...но,возможно, ты тут прав.

Этот код, я полагаю, ты поймешь зачем нужен и как пользоваться:
да, понял.
были заморочки в том, что текст прочий и текст в названии на латинице каталогов не всегда правильно выводятся , то есть при переходе на тот же 1251 одно будет нормальными буквами, другое кракозяброй.
Попробую в общем.

За комментарий такой дельный спасибо, все исправлю.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
например,если что то не так - то по таким "меткам" (если их можно так назвать) видно, до какой стадии доходит процесс+лог выглядит приятнее, чем если бы использовать в качестве подобных меток какие то спецсимволы
Ну не знаю. Мне было бы приятнее видеть, что то вроде: Стадия № ...
А так, это меня вводит в заблуждение: раньше думал, что это означает список открытых папок.

Ещё можешь занулить 2>NUL строку с shadowcopy
Она у тебя на экран выдаёт ошибку, когда теневых копий нету.
 

NickM

Активный пользователь
Сообщения
96
Реакции
57
Баллы
58
Средство, скрипт, сценарий...
Все же наверное везде должен быть сценарий;

echo Перечень установленных обновлениий вы так же можете
echo увидеть в файле sfcdoc.log после стандартной проверки.
Не увидел;

А то, что echo разбито на строки, это для низких разрешений? Неужто ресайз окна cmd не переносит словосочетания?


ping -n 15 127.0.0.1 > NUL
ping -n 10 127.0.0.1 > NUL
Задержки напрямую зависят от сложности/количества "словобукв"?

echo Кроме свободного ввода доступны следующие спецкоманды:
А почему бы от зависимости от системы не использовать утилиту msdt /id *?
 

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
А почему бы от зависимости от системы не использовать утилиту msdt /id *?
Вот удивил так удивил.
Честно, не знал про это.

адержки напрямую зависят от сложности/количества "словобукв"?
да

покажи свой лог?
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
А то, что echo разбито на строки, это для низких разрешений? Неужто ресайз окна cmd не переносит словосочетания?
нет.
Если именно процесс ресайза мышкой, то вообще никак не реагирует (добавляется полоса прокрутки).
 

Кирилл

Команда форума
Администратор
Сообщения
13,821
Реакции
6,166
Баллы
913
Не отработал этот блок:
Код:
:pcinfo

echo ::::::::::::::::::::::::::::::::::::::::::::::::::::: >>"%log%"
Echo. >>"%log%"
Echo. >>"%log%"
Echo Контрольные точки восстановления: >>"%log%"
Echo. >>"%log%"
wmic shadowcopy get InstallDate /value | find "." >>"%log%"
Echo. >>"%log%"
Echo. >>"%log%"
echo Сведения о ПК: >>"%log%"
Echo. >>"%log%"

SYSTEMINFO /FO LIST >>"%log%"  
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::: >>"%log%"   

wmic qfe list > t
chcp 866 >NUL
cmd /d /a /c type t >>"%log%"
del t
exit /b
Случаем. самостоятельно скрипт не закрыл? Может не дождался просто?
Если команды отдельно попробовать - работают?
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
Кирилл, может, просто отключён WMI ?
 
Сверху Снизу