Quando un account Windows viene cancellato in maniera non corretta dal sistema operativo, per esempio eliminando semplicemente la cartella che contiene il suo profilo, rimangono delle chiavi di registro "orfane" che possono provocare problemi, come la creazione degli account temporanei o di account nel formato nome.cognome.dominio, nel caso in cui lo stesso utente riutilizzi quel computer. Caso similare è quando qualche file che si trova nella cartella dell'account non può essere cancellato perché risulta in uso, magari perché bloccato dall'antivirus, o il suo percorso complessivo eccede il numero di caratteri supportato dal sistema operativo e così la cartella non viene rimossa.
Così, quando un collega IT mi ha detto che per recuperare spazio nel disco fisso dei computer della sede si limitava a cancellare le cartelle dei vecchi account presenti, mi sono messo a ricercare uno script che individuasse queste cartelle e chiavi di registro "orfane" e facesse pulizia.
Lo script di partenza lo avevo trovato in questa pagina, ma visto che il comando gwmi è stato ormai deprecato da tempo, e lo script non funzionava, mi sono affidato a ChatGPT per ottenere un risultato migliore.
Lo script per la ricerca e pulizia è allegato all'articolo e si chiama Account_orfani.ps1.
Il problema degli account "orfani" si presenta in maniera particolare nei computer aziendali, dove decine/centinaia di persone li condividono, ma può capitare anche in quelli casalinghi, quello che vedete nella foto è il mio personale, dove a seguito di qualche esperimento erano rimaste delle tracce nel registro di configurazione dell'account "Lavoro", la cartella "Zane" l'avevo creata manualmente io durante le prove dello script.

Lo script prevede una fase di scansione, che non cancella nulla, e solo rieseguendolo con l'aggiunta dell'opzione -clean al comando effettua la rimozione di quello che ha trovato.
Ho testato lo script su numerosi computer aziendali, dato che posso eseguirlo anche da remoto tramite NinjaOne, i risultati sono stati buoni ma, dato che gli ambienti in cui applicarlo possono essere diversi dal mio, fate sempre un minimo di verifica prima di usare l'opzione -clean e cancellare gli account sbagliati.

Quando avevo controllato questo computer il risultato mi aveva un attimo spiazzato, solo dopo ho visto che esisteva una cartella C:\Users\Public, che è quella vera, mentre questa Pubblic conteneva solo un link sul Desktop a un programma che era installato nel computer. Ho quindi potuto rimuoverla senza problemi.

Per darvi un ulteriore esempio, questo è uno dei computer dove il collega IT aveva cancellato le cartelle degli account senza eliminare le chiavi di registro.

Ricordo che le chiavi di registro dei vari account di Windows presenti nel computer si trovano in questa zona HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, sono eliminabili manualmente, e per sapere a chi appartengono bisogna fare riferimento al ProfileImagePath che si vede nella schermata a destra.

Dopo aver eseguito le varie pulizie, il risultato finale deve essere uguale a questo.

Conclusioni
Avevo a disposizione numerosi computer aziendali su cui fare le prove, non dico che su ognuno di essi trovassi qualcosa di nuovo e di strano, ma poco ci manca, account orfani duplicati, chiavi di registro corrotte o mancanti, presenza di file dal nome troppo lungo che impedivano la rimozione della cartella del profilo, strani account temporanei presenti con numerazione progressiva.
Questo ha richiesto numerose consultazioni di ChatGPT, ricordo di aver utilizzato tale strumento per la compilazione, e riscritture dello script.
Il risultato finale mi sembra piuttosto buono, e funzionante, non posso però escludere che ci siano altri casi, o "stranezze", che io non ho incontrato durante i miei test.
