lunedì 21 luglio 2025

Windows: Individuare quale utente ha installato o rimosso un programma

In ambienti IT complessi e distribuiti, dove molteplici amministratori operano su un'infrastruttura condivisa, la necessità di mantenere una tracciabilità dettagliata delle modifiche al software è cruciale. Ogni modifica al parco software di un'azienda, sia essa un'installazione o una disinstallazione, può avere implicazioni significative. L'introduzione di nuove applicazioni può portare a vulnerabilità di sicurezza se non gestite correttamente, mentre la rimozione non autorizzata di software essenziale può causare interruzioni operative. Identificare rapidamente l'autore di tali azioni non solo facilita l'audit e la conformità normativa, ma permette anche una risposta tempestiva a eventuali problemi di configurazione o di sicurezza.

MsiInstaller e Registo Eventi di Windows

Il sistema operativo Windows, attraverso il suo meccanismo di logging degli eventi, registra in dettaglio le attività svolte. In particolare, quando si installano o disinstallano applicazioni "classiche" basate sul programma di installazione MSI (Microsoft Installer), eventi specifici vengono scritti nel log di sistema. Il provider `MsiInstaller` è il principale responsabile della registrazione di queste operazioni.

Due eventi chiave nel log "Applicazione" sono di particolare interesse:
  • ID Evento 11707: Indica il completamento con successo dell'installazione di un'applicazione MSI.
  • ID Evento 11724: Indica la disinstallazione di un'applicazione MSI.

Analisi Manuale tramite il Visualizzatore Eventi

Per iniziare l'indagine, è possibile utilizzare la console del Visualizzatore eventi di Windows (eventvwr.msc). Una volta aperta, seguire questi passaggi:
  1. Navigare su Registri di Windows->Applicazione.
  2. Nel pannello di destra, selezionare Filtra registro corrente....
  3. Nel campo "ID evento:", inserire '11707, 11724'.
  4. Nel campo "Origini evento:", selezionare 'MsiInstaller'.
  5. Cliccare su OK.
Filtro registro corrente
FIG 1 - Filtro registro corrente


Verrà visualizzato un elenco filtrato di eventi relativi all'installazione e alla rimozione di programmi. Ogni evento contiene una descrizione dettagliata dell'operazione, inclusi il nome del prodotto coinvolto e l'esito. Ad esempio:
Product: Python 3.13.5 Add to Path (64-bit) -- Installation completed successfully.
Prodotto: Adobe Acrobat Reader - Italiano -- Removal completed successfully.

La proprietà "Utente" di ogni evento rivela l'account che ha eseguito l'azione, fornendo immediatamente la necessaria attribuzione.
Registro Eventi Applicazione, Origine MsiInstaller
FIG 2 - Registro Eventi Applicazione, Origine MsiInstaller

Automazione con PowerShell per una Ricerca Rapida

Per ambienti con un elevato volume di eventi o per necessità di automazione, PowerShell offre un metodo più efficiente per interrogare i log degli eventi. Il seguente script PowerShell permette di filtrare rapidamente gli eventi di installazione e disinstallazione per un'applicazione specifica, fornendo il nome utente associato:

Get-WinEvent -FilterHashtable @{LogName="Application"; ID=11707,11724; ProviderName='MsiInstaller'} | Where-Object { $_.Message -like '*NomeApplicazione*' } | Select TimeCreated, @{Name='Username'; Expression={(New-Object System.Security.Principal.SecurityIdentifier($_.userid)).Translate([System.Security.Principal.NTAccount]).Value}}, Message

Sostituire `'*NomeApplicazione*'` con una parte del nome del programma che si desidera tracciare (ad esempio, `'*Python*'`).


Get-WinEvent -FilterHashtable @{...}
Questo cmdlet è utilizzato per recuperare eventi dai log di Windows.

LogName="Application"
Specifica il log degli eventi "Applicazione".

ID=11707,11724
Filtra per gli ID evento di installazione e disinstallazione.

ProviderName='MsiInstaller'
Limita la ricerca agli eventi generati dal provider MsiInstaller.

Where-Object { $_.Message -like '*NomeApplicazione*' }
Filtra ulteriormente gli eventi in base al contenuto del messaggio, cercando il nome dell'applicazione di interesse.

Select TimeCreated, @{Name='Username'; Expression={(New-Object System.Security.Principal.SecurityIdentifier($_.userid)).Translate([System.Security.Principal.NTAccount]).Value}}, Message
Seleziona le proprietà desiderate:
  • TimeCreated: L'ora in cui l'evento è stato generato.
  • Username: Questa è una proprietà calcolata. Il campo 'userid' nell'evento contiene il Security Identifier (SID) dell'utente. Questa espressione PowerShell converte il SID in un nome di account utente leggibile ('NTAccount'), rendendo l'informazione immediatamente utile.
  • Message: Il messaggio completo dell'evento, contenente i dettagli dell'operazione.
PowerShell, Get-WinEvent
FIG 3 - PowerShell, Get-WinEvent


Considerazioni Aggiuntive e Best Practices

  • Log Retention Policy: Assicurarsi che la policy di conservazione dei log degli eventi sia adeguatamente configurata per mantenere i dati per un periodo sufficiente. Una policy troppo restrittiva potrebbe causare la sovrascrittura di informazioni preziose.
  • Gestione Centralizzata dei Log: In ambienti di grandi dimensioni, è consigliabile implementare un sistema centralizzato di gestione dei log (SIEM o un log collector dedicato). Questo non solo facilita la ricerca e l'analisi su più sistemi, ma migliora anche la sicurezza dei log, proteggendoli da manipolazioni locali.
  • Alternative di Installazione: È importante notare che questo metodo è primariamente efficace per installazioni e disinstallazioni che utilizzano l'installer MSI. Software installati tramite altri metodi (ad esempio, XCOPY deployment, Windows Store Apps, o script personalizzati) potrebbero non generare eventi MsiInstaller e richiedere metodi di monitoraggio alternativi.
  • Least Privilege: Implementare sempre il principio del privilegio minimo per gli account utente e di servizio. Questo riduce la superficie di attacco e limita le possibilità di modifiche non autorizzate al software.




venerdì 18 luglio 2025

Windows: Scrivere i log nel Visualizzatore eventi di Windows con PowerShell e CMD

Il Registro Eventi di Windows è uno strumento integrato nel sistema operativo che registra eventi, errori e avvisi relativi a diverse componenti del sistema e alle applicazioni installate. Questi registri sono fondamentali per il monitoraggio del sistema, la diagnostica dei problemi e la sicurezza e sono accessibili attraverso il Visualizzatore Eventi (Event Viewer) anch'esso incluso nel sistema operativo .

Per le nostre applicazioni/script, anziché affidarci esclusivamente a file di log testuali, possiamo sfruttare le potenzialità del registro eventi di Windows.

In questo articolo vedremo come scrivere informazioni nel Registro Eventi utilizzando PowerShell e il Prompt dei Comandi (CMD), due strumenti indispensabili per ogni amministratore di sistema.

1. Scrivere Eventi con PowerShell

Il cmdlet principale per scrivere eventi nel Visualizzatore Eventi è 
Write-EventLog

Per scrivere un evento informativo nel  registro eventi Applicazione si può utilizzare il comando:
Write-EventLog -LogName Application -Source "Application" -EntryType Information -EventID 1 -Message "Messaggio personalizzato"

-LogName:
Specifica il nome del registro eventi di destinazione (es. "Application", "System", "Security").
-Source:
Definisce l'origine dell'evento. Se l'origine non esiste, PowerShell tenterà di crearla, ma è buona pratica crearla esplicitamente prima.
-EntryType:
Indica il tipo di evento. I valori accettati sono: Error, Information, FailureAudit, SuccessAudit, Warning.
-EventID:
Specifica un identificatore numerico per l'evento, utile per la categorizzazione e il filtraggio.
-Message:
Il testo descrittivo dell'evento.
PowerShell, Creare un evento nel Registro Eventi
FIG 1 - PowerShell, Creare un evento nel Registro Eventi

Visualizzatore Eventi
FIG 2 - Visualizzatore Eventi

Creazione e Utilizzo di una Origine Evento Personalizzata
Per una migliore organizzazione e identificazione, è consigliabile creare un'origine evento personalizzata per i propri script. Questo permette di filtrare facilmente gli eventi generati dalle proprie applicazioni.

Per creare una nuova origine evento:
New-EventLog -LogName Application -Source "MioScript"

Questo comando registra "MioScript" come nuova origine nel registro eventi "Applicazione".

Per scrivere un evento con l'origine personalizzata:
Write-EventLog -LogName Application -Source "MioScript" -EntryType Warning –EventID 1 –Message "Messaggio personalizzato"
Creazione e utilizzo di una origine evento personalizzata
FIG 3 - Creazione e utilizzo di una origine evento personalizzata

Dopo aver eseguito questi comandi, aprire il Visualizzatore Eventi (digitando eventvwr.msc nella finestra Esegui o nel Prompt dei Comandi), espandere "Registri di Windows" quindi selezionare il registro "Applicazione" e verificare la presenza del nuovo evento con la descrizione personalizzata.
Visualizzatore eventi, Evento con origine personalizzata
FIG 4 - Visualizzatore eventi, Evento con origine personalizzata


Gestione dei Registri Eventi Personalizzati
Oltre ai Registri Eventi predefiniti, è possibile crearne di personalizzati per raggruppare eventi specifici. Questo è particolarmente utile per applicazioni complesse o per la segregazione dei log.

Il cmdlet New-EventLog consente anche di creare un intero log eventi personalizzato, specificando più origini associate:
New-EventLog -LogName MioRegistroEventi -source 'Origine1','Origine2','Origine3'


Importante: Affinché un nuovo log eventi personalizzato appaia nel Visualizzatore Eventi, è necessario inviargli almeno un evento.

Quando si scrivono eventi in un registro eventi personalizzato, è una buona pratica verificare se il registro esiste già per evitare errori:

If ([System.Diagnostics.EventLog]::SourceExists('MioRegistroEventi') -eq $False) {
 New-EventLog -LogName MioRegistroEventi -source 'Origine1','Origine2','Origine3'
}
Write-EventLog -LogName MioRegistroEventi -Source Origine1 -EntryType Information -EventID 1 -Message "Test"

Un nuovo file .evtx verrà creato nella cartella %SystemRoot%\System32\Winevt\Logs per ogni registro personalizzato.

All'interno del Visualizzatore Eventi il nuovo registro eventi sarà visibile all'interno di "Registri applicazioni e servizi".
Nuovo Registro Eventi
FIG 5 - Nuovo Registro Eventi



2. Scrivere Eventi con CMD

Per gli script batch (.bat/.cmd), lo strumento da utilizzare è eventcreate.exe.

Per aggiungere un evento informativo al registro eventi "Applicazione":
eventcreate /t information /l application /id 1 /d "Messaggio personalizzato"

/t
Specifica il tipo di evento (es. ErrorInformationSuccessWarning).
/l:
Indica il nome del registro eventi di destinazione (es. "Application", "System", "Security").
/id:
L'ID numerico dell'evento.
/d:
La descrizione dell'evento.

EventCreate, Creazione Evento da Prompt dei Comandi
FIG 6 - EventCreate, Creazione Evento da Prompt dei Comandi



3. Query e Filtraggio dei Registri Eventi

Una volta che gli eventi sono stati registrati, il cmdlet Get-WinEvent è lo strumento più potente per cercarli e filtrarli in PowerShell. Questo cmdlet è più moderno e versatile rispetto a Get-EventLog (che opera solo sui log classici).
Get-WinEvent -FilterHashtable @{logname='MioRegistroEventi';id=1}|ft TimeCreated,Id,Message | Select-Object -First 15

Questa query filtra gli eventi nel log "MioRegistroEventi" con EventID pari a 1 e visualizza le prime 15 occorrenze, mostrando la data di creazione, l'ID e il messaggio.
PowerShell, Query registro eventi
FIG 7 - PowerShell, Query registro eventi



4. Considerazioni

Considerazioni su PowerShell Core
Nelle versioni più recenti di PowerShell Core (7.x e successive), il cmdlet Write-EventLog non è supportato nativamente per impostazione predefinita. Tentare di usarlo genererà un errore.

Per usare Write-EventLog in PowerShell Core, è necessario importare il modulo Microsoft.PowerShell.Management con l'opzione -UseWindowsPowerShell:

Import-Module Microsoft.PowerShell.Management -UseWindowsPowerShell

Questo consente a PowerShell Core di accedere ai cmdlet di gestione specifici di Windows PowerShell.


Permessi di Accesso
Per scrivere eventi nel Visualizzatore Eventi utilizzando Write-EventLog o eventcreate.exe, l'account utente che esegue lo script deve essere membro del gruppo Administrators locale. Un utente non amministratore può solo inviare eventi a log eventi personalizzati che sono stati creati da un amministratore.




mercoledì 16 luglio 2025

Google Easter Egg: Pac-man

Il 21 maggio 2010, per celebrare il 30° anniversario di Pac-Man, Google pubblicò sulla propria homepage un nuovo Doodle che consisteva in una versione completamente giocabile dell'iconico videogioco.

Il doodle giocabile è ancora accessibile, basta ricercare dalla homepage di Google la parola chiave pacman o pac-man.
Pac-man
FIG 1 - Pac-man


Il doodle giocabile è accessibile direttamente anche da https://www.google.com/logos/2010/pacman10-i.html mentre maggiori informazioni sul doodle sono consultabili dalla seguente pagina https://doodles.google/doodle/30th-anniversary-of-pac-man/.





martedì 15 luglio 2025

MS Outlook: Errore "Memoria Insufficiente" alla selezione di una cartella

Durante l'utilizzo delle versioni del client di posta Microsoft Outlook (in particolare Outlook 2010, Outlook 2013, Outlook 2016 e Outlook 2019), gli utenti potrebbero riscontrare un errore indicante "memoria insufficiente" al momento di accedere a una cartella specifica. Tale anomalia si manifesta tipicamente con messaggi di errore del tipo

Messaggio di errore 1
  • "Memoria disponibile insufficiente per eseguire questo programma. Chiudere uno o più programmi e riprovare."
  • "There is not enough free memory to run this program. Quit one or more programs, and then try again."

Messaggio di errore 2
  • "Impossibile visualizzare la cartella. Memoria disponibile insufficiente per eseguire questo programma. Chiudere uno o più programmi e riprovare."
  • "Unable to display the folder. There is not enough free memory to run this program. Quit one or more programs, and then try again."

Messaggio di errore 3
  • "Impossibile visualizzare la cartella. Memoria disponibile insufficiente per eseguire questo programma. Chiudere uno o più programmi e riprovare."
  • "Cannot display the folder. There is not enough free memory to run this program. Quit one or more programs, and then try again."

I messaggi possono variare leggermente nella formulazione, ma il nucleo del problema rimane lo stesso.
MS Outlook



Possibili cause del problema
Questo errore si verifica a causa di una carenza di memoria disponibile per visualizzare la cartella desiderata. Le ragioni possono essere molteplici e spesso interconnesse:
  • Personalizzazioni delle Viste: Una delle cause principali è legata alle personalizzazioni applicate alle viste delle cartelle, come l'impostazione di filtri complessi o raggruppamenti. Queste modifiche possono richiedere una quantità maggiore di memoria per essere elaborate.
  • Gestione degli Add-in: Molti add-in di Outlook, sebbene utili, possono sottoscrivere un numero elevato di cartelle in diverse posizioni all'interno del profilo utente. Ogni sottoscrizione MAPI (Messaging Application Programming Interface) consuma una porzione di memoria condivisa. Una combinazione elevata di elementi e cartelle, unita a un numero considerevole di sottoscrizioni da parte degli add-in, può facilmente esaurire la memoria disponibile per il client.
  • File di Dati PST di Grandi Dimensioni: La presenza di file di dati di Outlook (.pst) estremamente grandi e con un numero elevato di cartelle può anch'essa contribuire all'esaurimento della memoria, soprattutto se questi file sono attivi e in fase di indicizzazione o sincronizzazione.


Workaround
Per mitigare l'errore di "memoria insufficiente", la strategia principale consiste nell'aumentare la memoria heap disponibile per le sottoscrizioni MAPI. Questa operazione richiede una modifica del Registro di sistema di Windows:
  • Assicurarsi che Outlook sia completamente chiuso prima di iniziare.
  • Aprire l'Editor del Registro di Sistema cliccando su Start, quindi Esegui (o premere la combinazione di tasti WIN+R) e digitare regedit seguito da Invio.
  • Navigare alla Sottocartella del Sottosistema di Messaggistica di Windows
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Messaging Subsystem
  • Creare il Valore DWORD (32-bit) SharedMemMaxSize.
  • Cliccare con il tasto destro su SharedMemMaxSize e selezionare Modifica. Nel campo Dati valore, digitare 300000. Assicurarsi che l'opzione Base sia impostata su Esadecimale e cliccare su OK.

    SharedMemMaxSize
    FIG 1 - SharedMemMaxSize

  • Navigare alla Sottocartella di Outlook 
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Messaging Subsystem\Applications\Outlook
    Se le sottocartelle Applications e Outlook non esistono, sarà necessario crearle manualmente.
  • Creare un secondo Valore DWORD (32-bit) SharedMemMaxSize (se necessario).
  • Cliccare con il tasto destro su SharedMemMaxSize e selezionare Modifica. Nel campo Dati valore, digitare 300000. Anche in questo caso, assicurarsi che l'opzione Base sia impostata su Esadecimale prima di cliccare su OK
  • Uscire dall'Editor del Registro di Sistema

Se impostare entrambi i valori del Registro di sistema a 0x300000 (equivalente esadecimale di 3.145.728 in decimale) non risolve il problema, è possibile aumentare ulteriormente questi valori fino a 0x800000 (equivalente esadecimale di 8.388.608 in decimale).

Oltre alla modifica del Registro di sistema, esistono altre strategie che possono contribuire a risolvere o prevenire l'errore di memoria:
  • Gestione dei File PST/OST: Se si utilizzano file di dati Outlook (.pst o .ost) di grandi dimensioni, considerare le seguenti azioni:
    - Chiusura dei file non necessari: Chiudere i file .pst che non sono attivamente utilizzati.
    - Riduzione del numero di cartelle: Ottimizzare la struttura delle cartelle, riducendo il numero complessivo di sottocartelle, specialmente in file di dati molto grandi. Archiviare le vecchie email può essere d'aiuto.
  • Revisione e disabilitazione degli Add-in:
    Disabilitazione Selettiva: Disabilitare temporaneamente gli add-in uno per uno per identificare quello che potrebbe causare il problema.
    Disinstallazione degli Add-in non essenziali: Rimuovere gli add-in che non sono più necessari o che mostrano comportamenti anomali.





lunedì 14 luglio 2025

Windows 11: Attivazione design Mica in Microsoft Edge

L’aggiornamento 120 di Microsoft Edge porta con sé un cambiamento estetico: l’integrazione degli effetti visivi di Windows 11 all’interno del browser. Pur non essendo evidente nelle note di rilascio, che hanno preferito mettere in luce le nuove policy di telemetria, questo affinamento grafico offre un’esperienza d’uso più coerente per gli utenti di Windows 11.  

Il design Mica è un materiale visivo opaco e dinamico ideato per fondere il tema e lo sfondo del desktop con l’interfaccia delle finestre persistenti su Windows 11.  

Inizialmente introdotto in Edge, era stato rimosso a causa di rallentamenti segnalati dagli utenti.  Nella versione 120, Microsoft ha reintrodotto Mica in anteprima, estendendo l’effetto alla barra del titolo e alla toolbar di Edge. Trattandosi di una funzionalità sperimentale, va attivata manualmente ed è possibile riscontrare impatti sulle prestazioni, a seconda della configurazione hardware e software del dispositivo.  

Requisiti preliminari
Per attivare gli effetti visivi n Microsoft Edge bisogna disporre di Windows 11 aggiornato e almeno la versione 120.0.2210.77 del browser. Per verificare la release Microsoft Edge installata, digitare nella barra indirizzi
edge://settings/help
oppure cliccare sul pulsante impostazioni (i 3 puntini), selezionare Guida e feedback quindi Informazioni su Microsoft Edge.
Versione Microsoft Edge
FIG 1 - Versione Microsoft Edge


Attivazione degli effetti visivi in Edge
  • Digitare nella barra indirizzi di Edge
    edge://flags/#edge-visual-rejuv-mica
  • Individuare la voce "Show Windows 11 visual effects in browser".  
  • Selezionare "Enabled" al posto di "Default" o "Disabled".  
  • Riavviare il browser per applicare le modifiche.  
Show Windows 11 visual effects in browser
FIG 2 - Show Windows 11 visual effects in browser

Al successivo avvio, la barra del titolo e la toolbar di Edge rifletteranno il design Mica di Windows 11.


Verifica e gestione degli effetti visivi
Per controllare se Mica è attivo:
  • Mella barre indirizzi di Edge digitare
    edge://settings/appearance
  • - Scorrere fino a individuare l’opzione “Mostra gli effetti visivi di Windows 11 nel browser” e attivare o disattivare il toggle.
Mostra gli effetti visivi di Windows 11 nel browser
FIG 3 - Mostra gli effetti visivi di Windows 11 nel browser



Risoluzione dei problemi
In caso di rallentamenti o instabilità:
  • Tornare su 
    edge://flags/#edge-visual-rejuv-mica
  • Ripristinare lo stato a "Default" o "Disabled".  
  • Riavviare Edge per tornare all’aspetto standard.



L’integrazione di Mica in Microsoft Edge segna un passo significativo verso un ecosistema Windows 11 più coerente e immersivo. Pur essendo ancora in fase sperimentale, questa funzionalità offre un assaggio di come il browser e il sistema operativo possano fondersi visivamente. Gli utenti più curiosi possono già sperimentare l’effetto, mentre chi preferisce la massima stabilità potrà attendere il rilascio definitivo.




venerdì 11 luglio 2025

Microsoft Service Status: Monitoraggio dello stato dei servizi cloud di Microsoft

Per le aziende e i professionisti IT, il monitoraggio dello stato dei servizi cloud di Microsoft è fondamentale per la continuità operativa. Microsoft offre portali dedicati per comunicare in tempo reale l'integrità dei propri servizi:


Integrità dei servizi Microsoft 365
Il portale dell'Integrità dei servizi Microsoft 365 è progettato per fornire una visione chiara e immediata dell'integrità dei servizi Microsoft 365 rivolti al consumatore come Outlook.com, OneDrive, Microsoft Copilot, Teams (Consumer), ecc.
Funzionalità Principali:
  • Riepilogo dello Stato: La pagina mostra lo stato complessivo dei servizi e indica se sono "healthy" (in esecuzione) o "interrupted" (interrotti).
  • Dettagli sugli Incidenti: In caso di interruzioni, il portale fornisce informazioni specifiche sull'incidente, inclusa una descrizione dell'impatto sugli utenti, i metodi di connessione interessati (ad esempio, Outlook.com, Outlook Mobile, client desktop) e lo stato delle indagini.
  • Aggiornamenti in Tempo Reale: Vengono comunicati gli orari di inizio dell'incidente e l'orario previsto per il prossimo aggiornamento, consentendo agli utenti di monitorare l'evoluzione della risoluzione.
Questo portale è essenziale per gli utenti consumer e gli amministratori che gestiscono servizi come Outlook.com, OneDrive e Microsoft Teams (Consumer).
Integrità dei servizi Microsoft 365, problema in corso
FIG 1 - Integrità dei servizi Microsoft 365, problema in corso

Integrità dei servizi Microsoft 365
FIG 2 - Integrità dei servizi Microsoft 365


Service Health Status (Stato dei Servizi Cloud Microsoft)
Service Health Status è il portale pubblico che comunica lo stato dei servizi Microsoft Cloud. Sebbene spesso venga identificato come la pagina di stato di Azure, questo portale offre una copertura più ampia e comunica l'integrità di vari servizi Microsoft.
Funzionalità principali:
  • Copertura Amplia dei Servizi: Il dominio cloud.microsoft è una piattaforma unificata per numerose applicazioni e servizi Microsoft. Il portale status.cloud.microsoft copre una vasta gamma di offerte cloud, tra cui Microsoft Azure, Microsoft 365 (Business o Enterprise), Power Platform Admin Center e Microsoft 365 consumer.
  • Comunicazione degli Incidenti Diffusi: La pagina è utilizzata per segnalare incidenti di ampia portata che influiscono su Azure e altri servizi a livello globale.
  • Portale Pubblico: È un punto di riferimento primario per la comunicazione di interruzioni significative. Per le informazioni dettagliate e personalizzate sullo stato di specifici servizi aziendali, gli utenti sono invitati a utilizzare il Centro di amministrazione di Microsoft 365  o Azure Service Health .
Service Health Status
FIG 3 - Service Health Status








giovedì 10 luglio 2025

Windows: Rigenerare la cache delle icone

In ambiente Windows la cache delle icone è responsabile della memorizzazione dei glifi delle applicazioni e degli elementi di sistema, consentendo un caricamento e un rendering grafico rapidi e fluidi. L'obiettivo primario della cache delle icone è accelerare la visualizzazione, migliorando così la reattività generale dell'interfaccia utente e garantendo un'interazione senza intoppi con il sistema.

Nonostante la sua efficienza, la cache delle icone può occasionalmente subire danni o corruzioni. Quando ciò accade, gli utenti possono riscontrare una serie di problemi visivi, tra cui icone errate, obsolete, duplicate, mancanti o semplicemente non visualizzate correttamente. Nella maggior parte dei casi, la causa sottostante di queste anomalie è proprio la corruzione della cache delle icone. Fortunatamente, la soluzione a tali problematiche prevede la ricostruzione di questo archivio. Le istruzioni illustrate di seguito sono applicabili sia a Windows 11 che a Windows 10.

Esistono due approcci principali per forzare la ricostruzione della cache delle icone, uno più rapido e l'altro più approfondito, da utilizzare in caso il primo non sia risolutivo.

Metodo 1: Ricostruzione Rapida tramite Terminale
Il metodo più semplice per avviare la ricostruzione della cache delle icone consiste nell'eseguire un comando specifico tramite il Terminale di Windows con privilegi amministrativi:
  • Cliccare, con il tasto destro del mouse, sul pulsante Start (o on alternativa premere la combinazione di tasti WIN+X) quindi selezionare Terminale (Admin) dall'elenco proposto.
  • Una volta aperta la finestra del Terminale, digitare il seguente comando
    ie4uinit.exe -show 
    e premere Invio per eseguirlo. L'esecuzione non restituirà alcun messaggio di conferma, il che è del tutto normale.

    ie4uinit
    FIG 1 - ie4uinit

Questo comando tenta di forzare un aggiornamento della cache. Se i problemi di visualizzazione persistono dopo aver provato questo primo metodo, è consigliabile procedere con una ricostruzione più approfondita.


Metodo 2: Ricostruzione approfondita tramite Prompt dei Comandi
Qualora il comando precedente non abbia risolto il problema, è possibile procedere con una ricostruzione più radicale, che prevede l'eliminazione diretta dei file della cache corrotti e il riavvio del processo di Esplora file. Questa procedura richiede l'utilizzo del Prompt dei comandi.
  • Aprire il menu Start, digitare cmd nella barra di ricerca e selezionare Prompt dei comandi. Assicurarsi di non avviare una sessione PowerShell, che in genere è l'opzione predefinita del Terminale.
  • All'interno della finestra del Prompt dei comandi, digitare la seguente sequenza di comandi, premendo Invio dopo ciascuno:
    taskkill /IM explorer.exe /F
    CD %userprofile%\AppData\Local
    del iconcache.db /a
    CD %localappdata%\Microsoft\Windows\Explorer\
    del iconcache*
    start explorer.exe


L'esecuzione di questi comandi termina e riavvia il processo explorer.exe, cancellando i file della cache corrotti e forzando Windows a ricrearli da zero. Vediamo la sequenza nel dettaglio:
taskkill /IM explorer.exe /F: Questo comando termina forzatamente il processo di Esplora file. Ciò causerà la temporanea scomparsa della barra delle applicazioni e di eventuali finestre aperte. Questo comportamento è previsto e verrà risolto con il riavvio del file manager tramite il comando finale.

CD %userprofile%\AppData\Local: Questo comando cambia la directory corrente e la sposta nella cartella locale dell'utente, dove è memorizzato il file principale della cache.

del iconcache.db /a: Questo comando elimina il file principale della cache delle icone (iconcache.db). L'opzione /a assicura che vengano eliminati anche i file con attributi nascosti, di sistema o di sola lettura.

CD %localappdata%\Microsoft\Windows\Explorer\: Successivamente, ci si sposta nella cartella dedicata alla cache delle icone all'interno della directory di Explorer.

del iconcache*: Questo comando rimuove tutti i file relativi alla cache delle icone presenti nella cartella corrente. Il carattere jolly (*) assicura l'eliminazione di tutti i file con prefisso "iconcache".

start explorer.exe: Infine, questo comando riavvia il processo di Esplora file, ripristinando l'interfaccia utente di Windows e permettendo al sistema di ricreare una nuova e pulita cache delle icone.

Prompt dei comandi
FIG 2 - Prompt dei comandi



È fondamentale comprendere che la ricostruzione della cache delle icone è una soluzione mirata esclusivamente ai problemi derivanti da file corrotti all'interno della cache stessa. In altre circostanze, ad esempio quando un'icona viene spostata o eliminata fisicamente dal sistema, la procedura descritta potrebbe non essere efficace. In tali situazioni, l'intervento deve essere diretto sulla configurazione del collegamento o del programma interessato, verificandone il percorso o ripristinando il file dell'icona originale.