Elsőként jelentkezzünk be rendszergazdaként és kapcsoljuk be a rejtett fájlok megjelenítését. A későbbiekben szükségünk lesz mindkettőre. Utóbbit a Vezérlőpult > (Megjelenés és témák) > Mappa beállításai > Nézet (Control Panel > (Appearance and Themes) > Folder Options > View) oldalon a "Rejtett fájlok és mappák megjelenítése" ("Show hidden files and folders") rádiógomb aktivizálásával tehetjük meg.
Miért van szükség a fájlvédelemre? A problémák a Windows 95 és 98 verziókban hatalmasodtak el, amikor egy feltelepített alkalmazás vagy játék saját részre módosította - pontosabban lecserélte - a rendszerfájlok egy részét. Ez azt eredményezte, hogy az adott program működött, de egy másik már nem biztos. Olyan méreteket is ölthetett a rendszer "összekuszálódása", hogy teljes újratelepítésre volt szükség. Valahogy ezt meg kellett akadályozni és a megoldást a Windows File Protection (WFP) hozta.
Hogy működik a védelem? Tárol az operációs rendszer egy listát a védelem alatt álló fájlokról és tároló mappáikról. Minden fájlmódosítást eredményező kérés áthalad a WFP szolgáltatáson, mielőtt továbbítódik a rendszer azon részei felé, melyek kiszolgálják. A WFP mintegy szűrőként működik: vagy átengedi, vagy eldobja. Először megvizsgálja, hogy a módosítás helyét jelentő mappa védelem alá esik-e. Ha igen, akkor következik a fájl ellenőrzése, ha ez is védve van, akkor nem mehet tovább a kérés. A kétlépcsős ellenőrzés jótékony hatással van a végrehajtási sebességre, mert ha minden alkalommal csak fájlellenőrzés hajtódna végre, akkor lassulna a WFP működése.
Mikor lehetséges lecserélni a védelem alatt álló fájlokat? A védelem ellenére fenn kell tartani a csere lehetőségét, ami a következő esetekben automatikusan rendelkezésre áll:
- Javítócsomagok (Service Packs) telepítése alkalmával.
- Gyorsjavítások (Hotfixes) telepítésénél.
- Operációs rendszer frissítésnél (upgrade).
- A Windows Update szolgáltatás használatakor.
Mi történik, ha mégis lecserélünk egy fájlt? Érzékelve a módosítást a rendszer visszaállítja az eredeti állományt. Hogy lehetséges ez? Nagyon egyszerűen, mert a védelem alatt álló állományokból készül egy biztonsági másolat és csak innen kell visszamásolnia a Windows-nak. Alapértelmezésben a %systemroot%\system32\dllcache mappában található a másolat, de módosítható a helye, ha a következő registry kulcs alatt létrehozunk egy új bejegyzést:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Nevének "SFCDllCacheDir"-nek kell lenni, típusa "REG_EXPAND_SZ". Értéke az új tároló elérési útvonala, ahol a DLLCACHE könyvtár automatikusan létrejön. Hálózati elérési útvonalak használata nem támogatott.
Általában véve igaz, hogy egy új rendszerfájl mindig hosszabb, mint egy régi. Sőt az is lehet, hogy újabb fájlok adódnak a rendszerhez egy frissítés alkalmával. Lényeg, hogy a DLLCACHE mérete nem csökken, hanem folyamatosan növekszik, ami helyhiány miatt problémát jelenthet. Vajon hogy lehet határt szabni a növekedésnek? Ismét a regisztrációs adatbázishoz kell fordulnunk és a fenti helyen megkeresni az "SFCQuota" nevű, "REG_DWORD" típusú bejegyzést (ha nem létezik, létre kell hozni). Értéke egyenlő a DLLCACHE mappa maximális méretével, MB-ban számolva. Alapértelmezésben 0xffffffff számot látunk, ami az összes védelemi fájl elmentését jelenti, korlátozás nélkül. Ha a tényleges méret meghaladja a beállított értéket, a további fájlok nem kerülnek rögzítésre.
Letiltható-e teljesen a fájlvédelem? Igen és ismét a registry-t kell módosítani. Maradva az előző helynél, létre kell hozni egy "SFCDisable" nevű, "REG_DWORD" típusú bejegyzést az alábbi értékekkel:
- 0 = a fájlvédelem engedélyezve van (alapértelmezés)
- 1 = le van tiltva, de a következő újraindításnál megjelenik egy ablak, ahol visszakapcsolható
- 2 = csak a következő rendszerindítás erejéig tiltódik le
- 4 = engedélyezve van, de egy megjelenő ablakban letiltható.
A CodeRed vírus aktívan használta az "SFCDisable" bejegyzést, mielőtt kifejtette jótékonynak nem nevezhető hatását gépek százezrein. Letiltott fájlvédelem mellett lehetővé válik a rendszerfájlok cseréje.
Utólagos ellenőrzések
Eddig automatikus fájlellenőrzésekről írtunk, de kérhető utólag is a vizsgálat az SFC nevű parancssori segédprogrammal:
Azonnali ellenőrzést hajt végre.
Csak a következő rendszerindításnál fut le.
Minden rendszerindításnál lefut.
Használata közben szükségünk lesz a Windows telepítő CD-re, mert az eredeti példányokkal fogja összehasonlítani a meglévőket.
További kapcsolók:
Visszaállítja az alapértelmezett beállításokat.
Beállítja a fájl cache méretét (alapértelmezés: 50 MB).
Törli a fájl cache-t.
Leállítja az ellenőrzést.
Automatikusan lecseréli a nem egyező állományokat, anélkül, hogy a felhasználót értesítené.
A regisztrációs adatbázist is használhatjuk az ellenőrzések ütemezésére:
Hozzuk létre az "SFCScan" nevű, "REG_DWORD" típusú bejegyzést a fent megadott helyen és értéknek adjuk a következőket:
- 0 = nem végez keresést (alapértelmezés)
- 1 = minden rendszerindításnál keres
- 2 = csak a következő rendszerindításnál keres.
Van még egy érdekes - bár nem túl hasznos - lehetőség: letiltható a fájlellenőrzés folyamatának megjelenítése egy "SFCShowProgress" nevű, "REG_DWORD" típusú bejegyzés létrehozásával akkor, ha értéke nulla. Amennyiben egy, akkor ismét megjelenik a folyamat kijelzése.
A kézi ellenőrzéseknél fel szokott merülni egy probléma, mégpedig az, hogy az SFC program kéri tőlünk a telepítő CD-t, de amikor beraktuk közli, hogy nem találhatók a keresett fájlok. Ennek magyarázata a válaszfájllal történő rendszertelepítésben, illetve a telepítési elérési út megváltozásában keresendő. Ellenőrizzük az alábbi registry beállításokat:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Setup\SourcePath
Az itt található útvonalon keres az SFC, szükség szerint módosítsuk, hogy a telepítő CD gyökérkönyvtárára mutasson (pl: d:\).