W tym krótkim wpisie omówię w jaki sposób sprawdzić integralność systemu Windows i jak naprawić repozytorium w przypadku problemów z integralnością.
Już od paru wersji Windows posiada mechanizm sprawdzania integralności systemu operacyjnego. Odbywa się to przy wykorzystaniu sum kontrolnych dla każdego pliku systemu, pliki pogrupowane są w pakiety i dostarczane w czasie aktualizacji Windows lub też pochodzą z iso systemowego, dla pakietów, które rzadko się zmieniają.
W celu dokonania weryfikacji działającego Windows, należy wykonać komendę:
sfc /scannow
Spowoduje to sprawdzenie wszystkich plików systemowych i pokazanie ewentualnych niezgodności. Uzyskanie tutaj zgodności daje bardzo dużą szansę na to, że nasz komputer nie jest zainfekowany robakiem lub też, bardziej prozaicznie, system plików nie uległ uszkodzeniu.
Jeśli weryfikacja przy pomocy sfc zawiedzie, to wtedy możemy próbować odzyskać dane z pakietów, których kopia przechowywana jest w systemie po instalacji aktualizacji. Takie starsze pakiety instalacyjne są przeglądane i odpowiedni brakujący plik lub pliki jest podstawiany w zamian za uszkodzony.
Naprawianie archiwów zaczynamy od wykonania komendy:
DISM /Online /Cleanup-Image /RestoreHealth
Jeśli tylko w systemie, w katalogu C:\Windows\WinSxS znajdują się odpowiednie starsze wersje pakietów instalacyjnych Windows, pliki zostaną odzyskane przez powyższą komendę DISM i komenda sfc /scannow powinna się zakończyć sukcesem.
Jeżeli jednak nie mamy odpowiednich pakietów w systemie (na przykład po przeczyszczeniu zbytecznych plików w katalogu Windows, oczyszczany jest też WinSxS, to możemy stare pakiety instalacyjne przegrać z innego komputera, do którego mamy dostęp, musi być tylko ta sama wersja Windowsa.
Aby sprawdzić co robi komputer podczas wykonywania tych komend, można śledzić plik C:\Windows\Logs\CBS\CBS.log. Są tam zapisane wszelkie informacje na temat wykonywanych operacji na pakietach instalacyjnych.
Jeśli DISM nie rozwiązuje problemów z sytemem, to można uruchamiać go w trybie Offline (z płyty instalacyjnej Windows). Jeśli i to nie pomaga, można próbować odinstalowywać niektóre pakiety MS Windows ręcznie, i potem je instalować, też ręcznie, tak, aby uzyskać komplet plików w systemie z właściwymi sumami kontrolnymi. Odinstalowywanie pakietów robi się komendą:
wusa /uninstall /kb:(numer kb)
Zamiast rozwiązywać ręcznie te problemy, możemy skorzystać z programu SFCfix autorstwa niemiro. Wystarczy ze strony forum ściągnąć plik SFCfix.exe i postępować zgodnie z wytycznymi na ekranie. Programik wykonuje większość czynności automatycznie, nie działa tylko wtedy, gdy brakuje wymaganych kopii pakietów.