A common pain point in an IT administrator’s career is user profiles. User profiles are a ubiquitous part of a Windows IT pro’s life; especially those that manage virtual desktop environments like Remote Desktop Services (RDS) or Citrix. In this post, I’m going to demonstrate a way you take out your aggression by using PowerShell to delete user profiles (and discover them).
Gli amministratori di sistema di Windows devono affrontare:
- registri utente danneggiati
- file che devono essere condivisi tra tutti i profili utente
- capire come ricreare profili danneggiati
- …e altro ancora
Ciò che una volta era un’esperienza frustrante è diventata un po’ meno frustrante con PowerShell. Ecco alcuni modi in cui PowerShell può rendere più facile la gestione dei profili utente di Windows.
Gestisci e Riporta Active Directory, Exchange e Microsoft 365 con ManageEngine ADManager Plus. Scarica la versione di prova gratuita!
Enumerazione dei Profili Utente
È facile dare un’occhiata ai profili utente nel sistema di file su un singolo computer Windows. Basta guardare nella cartella C:\Users. Ma non solo non otterrai l’intera immagine quando lo fai, è anche problematico a causa dei potenziali problemi di accesso al sistema di file. C’è un modo migliore e questo avviene tramite WMI o CIM. In CIM, esiste una classe chiamata Win32_UserProfile. Questa classe contiene tutti i profili che esistono su una macchina e molte altre informazioni utili che una semplice cartella del sistema di file non ti dirà.
Utilizzando PowerShell, puoi accedere a questa classe CIM con il comando Get-CimInstance
.
Sotto, sto cercando il primo profilo utente sul computer locale. Noterai molti utili dettagli informativi come LastUseTime
, SID
e così via.
Il cmdlet Get-CimInstance
funziona non solo a livello locale, ma anche in remoto. Utilizzando il parametro ComputerName
, puoi specificare 1, 10 o 100 diversi computer remoti e li interrogherà felicemente ognuno.
Cancellazione dei profili utente
Una volta capito come enumerare i profili utente sui computer, puoi fare un passo ulteriore e cancellare anche quei profili utente.
I can’t count how many times I’ve had to delete user profiles because something got corrupted and I just needed the user to log in again and recreate it. At one time, I would simply have the user log off and remove the C:\Users<UserName> folder from the file system. Usually it works, sometimes it didn’t. What I didn’t realize was that I was actually leaving some remnants behind.
Il modo corretto per farlo è avviare una rimozione tramite CIM.
Utilizzando la stessa classe CIM che hai appena esaminato, è possibile non solo visualizzare i profili ma è possibile rimuoverli completamente. Questo è equivalente ad andare nella casella Profili utente nelle impostazioni di sistema e premere il pulsante Elimina.

Per fare ciò, enumera nuovamente i profili utente e questa volta applica un filtro per selezionare un singolo profilo utente da rimuovere. In questo caso, rimuovi il profilo utente chiamato UserA. Puoi farlo utilizzando il cmdlet Where-Object
di PowerShell e alcune manipolazioni di stringhe per ottenere il nome della cartella dell’utente dalla proprietà LocalPath
come mostrato di seguito.
Una volta che sei in grado di restringere quel singolo profilo, puoi passare quell’istanza CIM al cmdlet Remove-CimInstance
per ciascun oggetto restituito da Get-CimInstance
. Questo processo rimuoverà il profilo utente dal sistema di file e dal registro.
Di nuovo, se desideri estendere questo a più computer, dovresti semplicemente utilizzare il parametro ComputerName
su Get-CimInstance
.
Gestisci e segnala Active Directory, Exchange e Microsoft 365 con ManageEngine ADManager Plus. Scarica la versione di prova gratuita!
Riassunto
Hai ora visto un modo facile per enumerare ed eliminare i profili utente di Windows. Se non eri a conoscenza della classe CIM Win32_UserProfile, potresti aver correlato la cartella C:\Users<Username> come il profilo, ma ora dovresti sapere di eliminare l’istanza CIM Win32_UserProfile.
Puoi vedere che c’è molto di più nel profilo utente rispetto a una semplice cartella di sistema. Utilizza CIM la prossima volta che hai bisogno di interrogare o eliminare i profili utente dai computer Windows nel tuo ambiente.
Source:
https://adamtheautomator.com/powershell-delete-user-profile/