Windows File Protection

In Windows a partire da Windows 2000 è stata implementata la funzioanlità WFP (Windows File Protection) che previene la sovrascrittura di alcuni file di sistema in quanto ovviamente la modifica di alcuni file di sistema utilizzati da svariati servizi e applicazioni può causare seri problemi al sistema.

WFP viene eseguita in background e rileva i tentativi di sostituzione di file di sistema ricevendo notifiche di modifica a directory relative a file nelle directory protette. Ricevuta la notifica WFP determina se il file è stato modificato e nel caso sia un file protetto ricerca la signature del file in un catalog per determinare se ha una versione Microsoft corretta e in caso contrario ripristina la versione corretta ricercandola nelle seguenti posizioni nel seguente ordine:

  1. Directory dllcache
  2. Condivisione di rete, nel caso il sistema sia stato installato da una share di rete.
  3. CD di installazione.

Nel caso il file sia trovato WFP lo sostituisce senza avviso, se il file non viene trovato viene visualizzata una richiesta di inserire il Cd di installazione o di annullare l’operazione di restore.

Tramite il tool SFC (System File Checker) è possibile analizzare file protetti per verificarne le versioni e nel caso venga rilevata una sovrascrittura viene recuperata la versione corretta del file come descritto precedentemente.

Per eseguire il controllo dei file di sistema è necessario accedere come amministratore o come membro del gruppo Administrators e utilizzare i seguenti comandi:

  • sfc /scannow (analizza i file di sistema protetti e sostituisce le versioni non corrette con quelle Microsoft corrette. Questo comando richiede l’accesso ai file di origine dell’installazione di Windows).
  • sfc /scanonce (analizza i file di sistema protetti una volta al successivo riavvio del computer. Questo comando richiede, al riavvio del computer, l’accesso ai file di origine dell’installazione di Windows e imposta il valore DWORD SfcScan a 2 nella seguente chiave di registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon)
  • sfc /scanboot (analizza i file di sistema protetti ogni volta che si avvia il computer. Questo comando richiede, all’avvio del computer, l’accesso ai file di origine dell’installazione di Windows e imposta il valore DWORD di SfcScan a 1 nella seguente chiave di registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon)
  • sfc /Revert: ripristina l’impostazione predefinita di analisi, ossia i file protetti non vengono analizzati all’avvio del computer.
  • sfc /Purgecache: elimina il contenuto della cache dei file e analizza tutti i file di sistema protetti. Questo comando richiede l’accesso ai file di origine dell’installazione di Windows.
  • sfc /Cachesize=x: imposta la dimensione della cache dei file a x MB. La dimensione predefinita della cache è di 50 MB. Questo comando richiede il riavvio del computer e successivamente viene eseguito il comando /purgecache per regolare la dimensione della cache su disco. Questo comando imposta il valore DWORD SfcQuota a x nella seguente chiave di registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Morale in caso si sospetti di avere qualche problema con le versioni dei file di sistema o con la cache, ad esempio perchè viene visualizzato il messaggio ri richiesta di inserire il Cd di installazione è possibile provare ad eseguire i comandi:

  • sfc /scannow
  • sfc /Purgecache

Per ulteriori informazioni si vedano: