Наш ассоциированный член www.Bikinika.com.ua

Перевірка цілісності системних файлів Windows

  1. Відновлення сховища компонентів
  2. Ручне відновлення пошкоджених файлів
  3. Де ще можна взяти оригінальні системні файли
  4. Якщо комп'ютер не завантажується

Операційна система має в своєму складі велику кількість системних файлів забезпечують її нормальну роботу

Операційна система має в своєму складі велику кількість системних файлів забезпечують її нормальну роботу. У разі, якщо один або декілька файлів виявляться пошкодженими, то ОС не зможе повноцінно функціонувати. Це може виражатися, як помилками і збоями в процесі роботи, наприклад, крахом Провідника або проблемами з управлінням компонентами Windows , Так і неможливість комп'ютера завантажитися.

Причин пошкодження системних файлів операційної системи Windows може бути безліч. Це можуть бути віруси, твікери, свідома зміна файлів користувачем, пошкодження жорсткого диска і так далі. Розробники компанії Майкрософт передбачали можливість настання такої події, тому ними була створена система перевірки цілісності системних файлів Windows (System File Checker tool). Вона дозволяє не тільки виявити зміни, але і повернути все до попереднього стану в автоматичному режимі, якщо це можливо.

Сенс роботи зводиться до порівняння системних файлів розташованих в папках Windows з еталонними зразками, які зберігаються в спеціальному сховищі компонентів Windows розташованому в папці WinSxS . Якщо вони відрізняються або файл відсутній, то він замінюється оригінальним зі сховища.

Щоб скористатися засобом перевірки системних файлів потрібно командний рядок запущена з правами адміністратора комп'ютера . Для перевірки служить команда sfc у якій є кілька ключів. Для запуску перевірки цілісності всіх захищених файлів і автоматичного виправлення змінених або відсутніх вводимо команду sfc / scannow і чекаємо закінчення процесу верифікації файлів. Він може зайняти тривалий час, так що запасіться терпінням. В кінці буде показано підсумкове повідомлення.

В кінці буде показано підсумкове повідомлення

Не завжди потрібно повне сканування з автоматичним виправленням, тому є ще кілька ключів, які можуть стати в нагоді.

  • / Verifyonly - здійснює тільки перевірку всіх системних файлів без спроби їх автоматичного відновлення
  • / Scanfile - виконує перевірку і відновлення конкретного файлу, вимагає вказівки повного шляху до файлу
  • / Verifyfile - перевірка конкретного файлу без автоматичного виправлення

Якщо в системі все в порядку, то повідомлення повідомить, що захист ресурсів Windows не виявила порушень цілісності. В іншому випадку повідомлення буде відрізнятися в залежності від ситуації. Якщо Windows не може виконати дану команду, то виконайте все те ж саме в безпечному режимі .

У разі виявлення пошкоджених файлів і їх успішної заміною коректними версіями, Windows повідомить про це відповідним повідомленням. На цьому можна вважати операцію з перевірки і відновлення цілісності системних файлів Windows успішно завершеною.

На цьому можна вважати операцію з перевірки і відновлення цілісності системних файлів Windows успішно завершеною

Відновлення сховища компонентів

Однак можлива ситуація, коли саме сховище буде пошкоджено або бути відсутнім. Що особливо актуально для любителів встановлювати кастомниє збірки ОС замість оригінальних образів. У цьому випадку робота утиліти sfc буде неможлива. Для вирішення проблеми можна спробувати виконати автоматичне відновлення сховища компонентів Windows за допомогою команди доступною починаючи з Windows 8:

dism / Online / Cleanup-Image / RestoreHealth

Власники 7 мають встановлене оновлення KB2966583 можуть лише виконати перевірку сховища командою:

DISM / Online / Cleanup-Image / ScanHealth

Результати виконання можна дізнатися, подивившись лог за адресою C: \ Windows \ Logs \ CBS \ Checksur.log

Ручне відновлення пошкоджених файлів

Проте, може трапитися ситуація, коли сканування покаже помилки, проте захист ресурсів Windows не зможе автоматично їх виправити. Відомості про них будуть міститися у файлі балки CBS розташованого за адресою C: \ Windows \ Logs \ CBS \ CBS.log який можна відкрити будь-яким текстовим редактором.

Тільки для цього він повинен бути запущений з правами обліковим записом адміністратора . У файлі зберігається багато технічної інформації, але нас цікавлять рядки містять [SR]. Їх можна знайти скориставшись пошуком вбудованим в редактор натиснувши комбінацію клавіш Ctrl + F або піти іншим шляхом і виконати в командному рядку запущеної від імені адміністратора наступну команду.

findstr / c: "[SR]" c: \ windows \ logs \ CBS \ CBS.log> c: \ sfcresult.txt

Тим самим ми говоримо Windows, що потрібно в файлі CBS.log знайти всі рядки містять [SR] і результат зберегти на диск C в файлі sfcresult.txt. Таким чином, в файлі виявиться відфільтрована інформації відноситься до роботи команди sfc. Залишилося його уважно вивчити, не забуваючи звертати увагу на дату і час зазначені в рядку з часом проведення сканування, щоб не вивчати старі результати. В даному випадку система успішно відновила файл autoplay.dll використовуючи еталонний файл зі сховища в папці WinSxS, про що в балці є відповідний запис.

2017-02-04 13:30:58, Info CSI 0000032f [SR] Repairing 1 components 2017-02-04 13:30:58, Info CSI 00000330 [SR] Beginning Verify and Repair transaction 2017-02-04 13:30 : 59, Info CSI 00000331 [SR] Repairing corrupted file [ml: 520 {260}, l: 46 {23}] "\ ?? \ C: \ Windows \ System32" \ [l: 24 {12}] "autoplay .dll "from store 2017-02-04 13:30:59, Info CSI 00000332 Repair results created: POQ 140 starts: 0: Move File: Source = [l: 192 {96}]" \ SystemRoot \ WinSxS \ Temp \ PendingRenames \ e0b17dc6d17ed201983d0000f415f015._0000000000000000.cdf-ms ", Destination = [l: 104 {52}]" \ SystemRoot \ WinSxS \ FileMaps \ _0000000000000000.cdf-ms "1: Move File: Source = [l: 162 {81}] "\ SystemRoot \ WinSxS \ Temp \ PendingRenames \ 3a1480c6d17ed201993d0000f415f015. $$. cdf-ms", Destination = [l: 74 {37}] "\ SystemRoot \ WinSxS \ FileMaps \ $$. cdf-ms" 2: Move File: Source = [l: 214 {107}] "\ SystemRoot \ WinSxS \ Temp \ PendingRenames \ a29d89c6d17ed2019a3d0000f415f015. $$ _ system32_21f9a9c4a2f8b514.cdf-ms", Destination = [l: 126 {63}] "\ SystemRoot \ WinSxS \ FileMaps \ $ $ _system32_21f9a9c4 a2f8b514.cdf-ms "3: Hard Link File: Source = [l: 236 {118}]" \ SystemRoot \ WinSxS \ amd64_microsoft-windows-autoplay_31bf3856ad364e35_6.1.7601.17514_none_04c88123045c625c \ autoplay.dll ", Destination = [l: 72 { 36}] "\ ?? \ C: \ Windows \ System32 \ autoplay.dll" POQ 140 ends. 2017-02-04 13:30:59, Info CSI 00000333 [SR] Repair complete

У разі неможливості виправити пошкоджений системний файл автоматично, нам доведеться зайнятися виправленням самостійно. Весь сенс операції зводиться до заміни наявних на комп'ютері файлів на свідомо справні копії. Їх можна скопіювати з іншого комп'ютера з аналогічною версією операційної системи Windows і зберегти в якусь папку на вашій машині або на флешку.

Однак просто так замінити файли операційна система вам не дозволить, спочатку доведеться отримати відповідний допуск. Це можна зробити в графічному інтерфейсі, про що ми вже писали . Тут ми розглянемо, як це можна зробити за допомогою командного рядка. Спочатку нам потрібно стати власником пошкодженого файлу, виконаємо наступну команду.

takeown / f полний_путь_к_файлу, наприклад takeown / f C: \ windows \ system32 \ autoplay.dll

Корисний прийом спрощує виконання даної операції . Тепер надамо групі адміністраторів повний доступ до проблемного файлу. Скористаємося командою icacls. У Windows англійською мовою потрібно замінити «Адміністратор» на «ADMINISTRATORS».

icacls полний_путь_к_файлу / GRANT адміністратора: F, наприклад icacls C: \ windows \ system32 \ autoplay.dll / GRANT адміністратора: F

Тепер ми можемо замінити старий файл на новий оригінальний. Це можна зробити як скориставшись провідником Windows так і продовживши роботу в командному рядку.

copy полний_путь_к_новому_файлу полний_путь_к_заменяемому_файлу copy D: \ new \ autoplay.dll C: \ windows \ system32 \ autoplay.dll

В результаті всіх маніпуляцій, ми замінили пошкоджений системний файл вручну. Залишився останній штрих, щоб підстрахуватися від можливих проблем в майбутньому, нам потрібно відновити колишнього власника об'єкта в особі TrustedInstaller і повернути собі колишні права. Знову-таки це можна виконати за допомогою Провідника Windows або за допомогою наступних команд:

icacls C: \ windows \ system32 \ autoplay.dll / setowner "NT Service \ TrustedInstaller" icacls C: \ windows \ system32 \ autoplay.dll / GRANT: r адміністратора: RX

dll / GRANT: r адміністратора: RX

Де ще можна взяти оригінальні системні файли

Копіювати файли з іншого комп'ютера спосіб досить зручний і простий, але не завжди під рукою є ще комп'ютер з аналогічною операционкой. В цьому випадку можна скористатися диском з дистрибутивом Windows або диском відновлення системи , Якщо ви його робили.

Складність в тому, що інформація на них зберігається в запакованому вигляді в файлі з розширенням .wim і тому доведеться трохи попрацювати. Щоб не возиться з командним рядком, скористаємося безкоштовним архіватором 7-zip. Якщо у вас на комп'ютері він відсутній, то його можна завантажити тут , Напевно вам ще стане в нагоді для роботи з архівами .

Цікавлять нас системні файли знаходяться в файлі-образі з ім'ям install.wim в папці sources, при цьому образ може містити відразу кілька різних версій операційної системи у відповідних папках, будьте уважні. На диску відновлення файл має ім'я boot.wim.

Якщо комп'ютер не завантажується

Все вище сказане відносилося до випадку, коли комп'ютер міг завантажуватися і ми мали можливість виконувати перевірку прямо в Windows. Однак пошкодження системних файлів може бути настільки критичним, що він не зможе завантажитися. В цьому випадку можна виконати перевірку системних файлів Windows в середовищі відновлення WinRE (Windows Recovery Enviroment). Для цього завантажуємося в середу відновлення, як описано тут і запускаємо командний рядок.

А далі все теж саме тільки команда буде трохи відрізнятися, оскільки з'явиться ще кілька параметрів.

sfc / scannow / OFFBOOTDIR = X: \ / OFFWINDIR = X: \ windows

Тут X потрібно замінити на букву диска на якій знаходиться ОС яку ми хочемо перевірити. Складність в тому, що букви дисків в Windows RE можуть не збігатися з буквами розділів в самій Windows. Щоб їх дізнатися виконаємо послідовно наступні команди.

Diskpart List disk Sel disk 0 Detail disk Exit

В результаті отримаємо список томів на системному диску і відповідні їм мітки. Потрібну мітку підставимо замість X в команду запуску сканування системних файлів. Втім дізнатися потрібну мітку диска можна і по іншому, методом перебору.

cd / d C: dir / b

Тут ми спочатку перейшли на диск C, а потім вивели список файлів в цьому розділі, за яким ми можемо зрозуміти який це диск насправді. Чи не вгадали, тоді переходимо на наступну букву і знову дивимося список.

cd / d D: dir / b

Методом «наукового тику» рано чи пізно буде знайдений системний диск. Припустимо в середовищі відновлення у диска з Windows буде буква G і ми хочемо перевірити оригінальність і в разі необхідності автоматично виправити файл "C: \ Windows \ System32 \ msconfig.exe», тоді команда прийме наступний вигляд:

sfc /scanfile=G:\Windows\System32\msconfig.exe / offbootdir = G: \ / offwindir = G: \ windows

Ми розглянули різні способи відновлення пошкоджених системних файлів в Windows в автоматичному і ручному режимах, в тому числі з використанням середовища відновлення Windows. З її допомогою ви зможете усунути неполадки в роботі комп'ютера викликані пошкодженими компонентами операційної системи.

Dll ", Destination = [l: 72 { 36}] "\ ?

Новости