Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Батник, для фильтрации и чтения лога утилиты sfc/scannow (http://forum.oszone.net/showthread.php?t=330460)

oniava 12-10-2017 21:25 2770169

Батник, для фильтрации и чтения лога утилиты sfc/scannow
 
Здравствуйте форумчане.

Вопрос в следующем, точнее нереализованная задумка.
Имеем лог, после сканирования утилитой sfc/scannow на предмет целостности и поврежденных файлов по пути "%windir%\Logs\CBS\cbs.log".
Результат сканирования оказался таким: "Защита ресурсов Windows обнаружила повреждённые файлы, но не может восстановить некоторые из них."

Одним словом, замену файлов надо делать руками.
Вот я и подумал, автоматизировать данный процесс.

Этот лог считываем и фильтруем батником:
1. Ищем строки в которых есть фразы:
"Cannot repair member file"
"Repairing corrupted file"
"source file in store is also corrupted"
вывод в отдельный файл cbs_details.txt
Код:

findstr /c:"Cannot repair member file" %windir%\Logs\CBS\cbs.log >> %userprofile%\Desktop\cbs_details.txt
findstr /c:"Repairing corrupted file" %windir%\Logs\CBS\cbs.log >> %userprofile%\Desktop\cbs_details.txt
findstr /c:"source file in store is also corrupted" %windir%\Logs\CBS\cbs.log >> %userprofile%\Desktop\cbs_details.txt

2. Фильтруем файл cbs_details.txt:
Скрытый текст

2017-10-12 00:43:14, Info CSI 000000a3 [SR] Cannot repair member file [l:24{12}]"ideograf.uce" of Microsoft-Windows-charmap, Version = 6.1.7601.23403, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-12 00:43:15, Info CSI 000000a5 [SR] Cannot repair member file [l:24{12}]"ideograf.uce" of Microsoft-Windows-charmap, Version = 6.1.7601.23403, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-12 00:45:19, Info CSI 00000152 [SR] Cannot repair member file [l:18{9}]"idndl.dll" of Microsoft-Windows-International-Normalization, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-12 00:45:20, Info CSI 00000154 [SR] Cannot repair member file [l:18{9}]"idndl.dll" of Microsoft-Windows-International-Normalization, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-12 00:45:28, Info CSI 0000016a [SR] Cannot repair member file [l:20{10}]"icacls.exe" of Microsoft-Windows-ICacls, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-12 00:45:28, Info CSI 0000016c [SR] Cannot repair member file [l:20{10}]"icsigd.dll" of Microsoft-Windows-icsigd, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch

2017-10-12 00:50:08, Info CSI 000002f2 [SR] Repairing corrupted file [ml:520{260},l:74{37}]"\??\C:\Windows\system32\drivers\ru-RU"\[l:28{14}]"usbhub.sys.mui" from store
2017-10-12 00:50:08, Info CSI 000002f5 [SR] Repairing corrupted file [ml:520{260},l:74{37}]"\??\C:\Windows\system32\drivers\ru-RU"\[l:28{14}]"usbhub.sys.mui" from store
2017-10-12 00:50:08, Info CSI 000002f8 [SR] Repairing corrupted file [ml:520{260},l:74{37}]"\??\C:\Windows\system32\drivers\en-US"\[l:28{14}]"usbhub.sys.mui" from store
2017-10-12 00:50:08, Info CSI 000002fb [SR] Repairing corrupted file [ml:520{260},l:74{37}]"\??\C:\Windows\system32\drivers\en-US"\[l:28{14}]"usbhub.sys.mui" from store
2017-10-12 00:58:52, Info CSI 000004ec [SR] Repairing corrupted file [ml:520{260},l:74{37}]"\??\C:\Windows\system32\drivers\ru-RU"\[l:28{14}]"usbhub.sys.mui" from store
2017-10-12 00:58:52, Info CSI 000004f5 [SR] Repairing corrupted file [ml:520{260},l:74{37}]"\??\C:\Windows\system32\drivers\en-US"\[l:28{14}]"usbhub.sys.mui" from store

2017-10-12 00:43:15, Info CSI 000000a9 [SR] Could not reproject corrupted file [ml:520{260},l:46{23}]"\??\C:\Windows\System32"\[l:24{12}]"ideograf.uce"; source file in store is also corrupted
2017-10-12 00:45:20, Info CSI 00000158 [SR] Could not reproject corrupted file [ml:520{260},l:46{23}]"\??\C:\Windows\System32"\[l:18{9}]"idndl.dll"; source file in store is also corrupted
2017-10-12 00:45:32, Info CSI 0000017e [SR] Could not reproject corrupted file [ml:520{260},l:46{23}]"\??\C:\Windows\System32"\[l:22{11}]"ieakeng.dll"; source file in store is also corrupted
2017-10-12 00:45:32, Info CSI 00000184 [SR] Could not reproject corrupted file [ml:520{260},l:46{23}]"\??\C:\Windows\System32"\[l:22{11}]"icardie.dll"; source file in store is also corrupted
2017-10-12 00:45:32, Info CSI 0000018d [SR] Could not reproject corrupted file [ml:520{260},l:46{23}]"\??\C:\Windows\System32"\[l:20{10}]"ieakui.dll"; source file in store is also corrupted
2017-10-12 00:45:32, Info CSI 00000193 [SR] Could not reproject corrupted file [ml:520{260},l:46{23}]"\??\C:\Windows\System32"\[l:20{10}]"icacls.exe"; source file in store is also corrupted

чтобы в файле cbs_details.txt остались нужные нам строки с испорченными файлами:
Скрытый текст

C:\Windows\System32\IasMigPlugin.dll
C:\Windows\System32\iaspolcy.dll
C:\Windows\System32\iasrad.dll
C:\Windows\System32\iasrecst.dll
C:\Windows\System32\iassdo.dll
C:\Windows\System32\iassvcs.dll
C:\Windows\System32\icacls.exe
C:\Windows\System32\icardagt.exe
C:\Windows\System32\ieapfltr.dat
C:\Windows\system32\drivers\ru-RU\usbhub.sys.mui

4. Далее, батник беря данные из файла cbs_details.txt, делает резервную копию файлов, на всякий случай
Скрытый текст
Код:

copy "C:\Windows\System32\IasMigPlugin.dll" "C:\OldSystem32\IasMigPlugin.dll"
copy "C:\Windows\System32\iaspolcy.dll" "C:\OldSystem32\iaspolcy.dll"
copy "C:\Windows\System32\iasrad.dll" "C:\OldSystem32\iasrad.dll"
copy "C:\Windows\System32\icacls.exe" "C:\OldSystem32\icacls.exe"
copy "C:\Windows\System32\icsigd.dll" "C:\OldSystem32\icsigd.dll"
copy "C:\Windows\System32\ideograf.uce" "C:\OldSystem32\ideograf.uce"
copy "C:\Windows\System32\idndl.dll" "C:\OldSystem32\idndl.dll"
copy "C:\Windows\System32\ieapfltr.dat" "C:\OldSystem32\ieapfltr.dat"
copy "C:\Windows\system32\drivers\ru-RU\usbhub.sys.mui" "C:\OldSystem32\drivers\ru-RU\usbhub.sys.mui"


У нас уже приготовлена папка с распакованным дистрибутив нашей Windows на другой диск в папку D:\Folder\System32\.

5. Удаляем выбранные файлы:
Скрытый текст
Код:

DEL /F /S /Q /A "C:\Windows\System32\IasMigPlugin.dll"
DEL /F /S /Q /A "C:\Windows\System32\iaspolcy.dll"
DEL /F /S /Q /A "C:\Windows\System32\iasrad.dll"
DEL /F /S /Q /A "C:\Windows\System32\icacls.exe"
DEL /F /S /Q /A "C:\Windows\System32\icsigd.dll"
DEL /F /S /Q /A "C:\Windows\System32\ideograf.uce"
DEL /F /S /Q /A "C:\Windows\System32\idndl.dll"
DEL /F /S /Q /A "C:\Windows\System32\ieapfltr.dat"
DEL /F /S /Q /A "C:\Windows\system32\drivers\ru-RU\usbhub.sys.mui"


6. Копируем файлы из распакованного дистрибутива D:\Folder\System32\ в нашу систему:
Скрытый текст
Код:

copy "D:\Folder\System32\IasMigPlugin.dll" "D:\Folder\System32\IasMigPlugin.dll"
copy "D:\Folder\System32\iaspolcy.dll" "D:\Folder\System32\iaspolcy.dll"
copy "D:\Folder\System32\iasrad.dll" "D:\Folder\System32\iasrad.dll"
copy "D:\Folder\System32\icacls.exe" "D:\Folder\System32\icacls.exe"
copy "D:\Folder\System32\icsigd.dll" "D:\Folder\System32\icsigd.dll"
copy "D:\Folder\System32\ideograf.uce" "D:\Folder\System32\ideograf.uce"
copy "D:\Folder\System32\idndl.dll" "D:\Folder\System32\idndl.dll"
copy "D:\Folder\System32\ieapfltr.dat" "D:\Folder\System32\ieapfltr.dat"
copy "D:\Folder\System32\drivers\ru-RU\usbhub.sys.mui" "D:\Folder\System32\drivers\ru-RU\usbhub.sys.mui"


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

Казбек 12-10-2017 22:18 2770187

Цитата:

Цитата oniava
Одним словом, замену файлов надо делать руками. »

На последних ОС руками делать ничего не надо, потому что есть:
Код:

Dism /Online /Cleanup-Image /RestoreHealth
Более того, есть возможность восстановить из образа оффлайн образ ОС:
Цитата:

To repair an offline image using a mounted image as a repair source, at a command prompt, type the following command:
Код:

Dism /Image:C:\offline /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows

Repair a Windows Image
На мой взгляд, sfc, по состоянию на 2017 год, себя изжил.

oniava 12-10-2017 22:52 2770199

Потому как
Код:

Dism /Online /Cleanup-Image /CheckHealth
ошибок не находит:

Checking System Update Readiness.
Binary Version 6.1.7601.23471
2017-10-12 22:20

Checking Windows Servicing Packages

Checking Package Manifests and Catalogs

Checking Package Watchlist

Checking Component Watchlist

Checking Packages

Checking Component Store

Summary:
Seconds executed: 298
No errors detected

А так есть


И у меня Windows 7*64 bit.

Vadikan 13-10-2017 12:14 2770280

Цитата:

Цитата Казбек
На последних ОС руками делать ничего не надо, потому что есть:
Код:
Dism /Online /Cleanup-Image /RestoreHealth »

Не вижу связи с SFC, это разные сущности.

Казбек 13-10-2017 12:47 2770285

Цитата:

Цитата Vadikan
Не вижу связи с SFC »

Связь самая непосредственная. После выполнения:
Код:

Dism /Online /Cleanup-Image /RestoreHealth
В подавляющем большинстве случаем восстанавливать вручную уже ничего не нужно (один из многочисленных примеров), не смотря на рекомендации после проверки целостности хранилища выполнять и проверку целостности системных файлов. Вот это и был посыл моего сообщения.

Цитата:

Цитата oniava
Dism /Online /Cleanup-Image /CheckHealth »

Однако в Windows 7 есть ряд особенностей....

oniava 13-10-2017 13:29 2770292

Как я писал выше, в своей Windows 7х64 командой
Код:

Dism /Online /Cleanup-Image /CheckHealth
я повреждений не нахожу, хотя командой
Код:

sfc/scannow
эти повреждения есть!
см выше написанное, пост #2

Vadikan 14-10-2017 22:54 2770627

Цитата:

Цитата Казбек
не смотря на рекомендации после проверки целостности хранилища выполнять и проверку целостности системных файлов. »

Ну так рекомендация дается на случай, когда dism /restorehealth не восстановил поврежденные файлы, пытаясь восстановить поврежденные компоненты.


Время: 07:24.

Время: 07:24.
© OSzone.net 2001-