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

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

А может ли скрипт навредить системе?

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

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

Вложения

  • Выполнить проверку sfc_scannow_beta.zip
    5.1 KB · Просмотры: 7
....

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

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 что бы продолжить
 
Всем привет.
Сильно переписал скрипт, если у кого есть желание и чуть чуть времени - буду благодарен за обратную связь.
Это не конечный вариант, если по данной конструкции вопросов не возникнет, значит останутся кое какие примочки и можно будет обновить ресурс.
 

Вложения

  • Выполнить проверку sfc_scannow_beta.zip
    5.9 KB · Просмотры: 7
kbpatch=1 :: ввернем
если ты об однострочном комментарии, то он делается не так, а вот так &::

А что за "секретное меню" ? :)
 
А решил сделать ряд опций, доступных опытным юзерам.
Соответственно меню (пока что пусть называется секретное :) ) остается недоступным и вызывается специальным набором символов.
Планирую как отдельно каждую функцию вызывать так и возможность пакетами.
Опций скрытых будет, конечно, больше чем сейчас.
 
Запустил расширенную процедуру проверки и восстановления (кн. 2). Скрипт отработал без каких-либо ошибок. По окончании отрылся sfcdoc.log и CBS.LOG. В sfcdoc много "кракозябров", может быть так и надо.
 
По окончании отрылся sfcdoc.log и CBS.LOG. В sfcdoc много "кракозябров", может быть так и надо.
Это особенность вывода текста в определенной кодировке.
К релизу исправлю.
 
Готово обновление скрипта.
Если вопросов\замечаний не будет - обновлю ресурс.
К релизу исправлю.
С кодировкой решил пока так оставить - 866
Слишком деликатный момент)
зы
нечто наподобие режима мастера вызывается номерами 77 и 78 в меню
 

Вложения

  • Выполнить проверку sfc_scannow_beta.zip
    8 KB · Просмотры: 10
На 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. Мне это почему-то показалось странным.
 

Вложения

  • CBS.zip
    82.4 KB · Просмотры: 1
Последнее редактирование:
Так ли важно знать set kbpatch=1 на этапе загрузки меню, если в этой версии скрипта ты его все равно для меню не используешь, а только для логирования? Может, перенесёшь на позднюю стадию?
Я вообще наверное уберу, так как при наличии лога от опции патча смысла нет.
Зачем это предложение в логе?
что бы понимать, что это происходило.
например,если что то не так - то по таким "меткам" (если их можно так назвать) видно, до какой стадии доходит процесс+лог выглядит приятнее, чем если бы использовать в качестве подобных меток какие то спецсимволы
ИМХО, повтор текста в :Help для if %os% EQU 1 и if %os% EQU 0, не знаю, зачем ты так заморачивался.
в будущем текст может сильно отличаться...но,возможно, ты тут прав.

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

За комментарий такой дельный спасибо, все исправлю.
 
например,если что то не так - то по таким "меткам" (если их можно так назвать) видно, до какой стадии доходит процесс+лог выглядит приятнее, чем если бы использовать в качестве подобных меток какие то спецсимволы
Ну не знаю. Мне было бы приятнее видеть, что то вроде: Стадия № ...
А так, это меня вводит в заблуждение: раньше думал, что это означает список открытых папок.

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

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 *?
 
А почему бы от зависимости от системы не использовать утилиту msdt /id *?
Вот удивил так удивил.
Честно, не знал про это.

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

покажи свой лог?
 
А то, что echo разбито на строки, это для низких разрешений? Неужто ресайз окна cmd не переносит словосочетания?
нет.
Если именно процесс ресайза мышкой, то вообще никак не реагирует (добавляется полоса прокрутки).
 
Не отработал этот блок:
Код:
: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

Случаем. самостоятельно скрипт не закрыл? Может не дождался просто?
Если команды отдельно попробовать - работают?
 
Назад
Сверху Снизу