Formazione e Tecnologia
Pulizia dei profili di Microsoft Windows con Powershell.

Pulizia dei profili di Microsoft Windows con Powershell.

L’impiego di sistemi di centralizzazione delle utenze implica che le persone possano usare le une i computer delle altre per specifiche esigenze lavorative, una situazione che si verifica sovente anche nel caso di postazioni di lavoro con utenze locali.

Con il passare del tempo è del tutto naturale che questi profili, così si chiamano, permangano dimenticati nei diversi computer, in aggiunta a quelli dei collaboratori non più presenti o passati in altri uffici con nuove postazioni di lavoro.

L’accumulo può portare al fatidico allarme di spazio disco in esaurimento, anticipato dal sempre presente RMM, il palesarsi dell’allarme è tanto più rapido nel tempo, quanto più è piccola la capacità del disco.

La pulizia di questi profili vaganti deve essere eseguita con prudenza, così da evitare la cancellazione di utenti che ancora operano sulla postazione o, peggio, di profili di sistema.

Esistono diverse strade per compiere questa operazione, una è quella di usare gli strumenti grafici interni di computer/server; tuttavia, quella che prediligiamo è costituita da due comandi Powershell integrati in una procedura del RMM.

Il passaggio da Powershell ha inoltre tempi di cancellazione molto più rapidi rispetto alla versione grafica.

Tabella dei Contenuti

Individuare i profili presenti

L’individuazione dei profili passa come spesso accade dall’interrogazione del database CIM di Windows, dal quale si individuano i percorsi nel filesystem e conseguentemente l’utenza associata.

Get-CimInstance -ClassName win32_userprofile | Select-Object LocalPath,LastUsetime

Al comando applichiamo un filtro di visualizzazione per ottenere la stampa del solo percorso locale e della data di ultimo accesso.

Lista completa dei profili esistenti.

Lista completa dei profili esistenti.

Questo semplice output rende possibile perfezionare una condizione di ricerca per individuare i profili inutilizzati da mesi o anni, procedendo quindi con una cancellazione automatica attraverso un monitor RMM.

LEGGI ANCHE -  Usare Powershell per cercare le regole del firewall

Get-CimInstance -ClassName win32_userprofile | Select-Object LocalPath,LastUsetime | where { $_.LastUsetime -le (get-date).AddDays(-15) }

Questa modifica del comando rende possibile individuare i soli profili in cui l’ultimo accesso si è verificato da prima di quindici giorni.

Lista dei profili con accessi prima di quindici giorni.

Lista dei profili con accessi prima di quindici giorni.

È importante non chiedere la cancellazione dei profili di sistema, che in condizioni normali sono protetti e restituiscono un errore di accesso negato.

Per questa evenienza può essere perfezionata la ricerca andando ad escludere a priori i percorsi che contengono specifici valori.

Get-CimInstance -ClassName win32_userprofile | Select-Object LocalPath,LastUsetime | where { $_.LocalPath -notlike “*c:\Windows*” }

Lista dei profili con percorsi non di sistema.

Lista dei profili con percorsi non di sistema.

Questa condizione esclude la visualizzazione dei profili di sistema con percorso nella cartella del sistema operativo.

Individuata la lista dei percorsi è possibile risalire al nome utente andando ed estrarre la parte terminare della stringa visualizzata nel campo LocalPath.

Cancellazione del profilo

Individuati i profili veramente da rimuovere è possibile richiederne in modo selettivo la cancellazione, l’elemento su cui operare è sempre il database CIM.

La localizzazione del percorso, vista in precedenza, non è necessaria se sono già noti i nomi dei profili, che possono essere estrapolati anche per altre vie.

La sintassi dei comandi per eseguire la cancellazione è la seguente:

Get-CimInstance -Class Win32_UserProfile | Where-Object { $_.LocalPath.split(‘\’)[-1] -eq ‘Nome.Utente’ } | Remove-CimInstance

L’interrogazione al database CIM impiega il medesimo cmdlet usato per isolare i percorsi dei profili e il nome utente dall’ultima parte della stringa.

La differenza è la condizione di filtraggio, che va ad individuare il profilo che contiene come percorso locale il nome dell’utente, per la ricerca deve essere sostituito il valore “Nome.Utente” con il login dell’utente da rimuovere.

LEGGI ANCHE -  Quando ad uno script monitor RMM serve un file specifico

Il risultato della ricerca filtrata è passato con una pipe al cmdlet Remove-CimInstance, che determinerà la cancellazione del profilo, anche se di dominio, e la cancellazione del percorso locale con i relativi file contenuti.

Con una combinazione degli elementi precedenti è possibile cancellare a priori tutti profili inutilizzati da prima di un intervallo di tempo specifico.

Get-CimInstance -ClassName win32_userprofile | where { $_.LocalPath -notlike “*c:\Windows*” -and $_.LastUsetime -le (get-date).AddMonths(-6) } | Remove-CimInstance

Questa sintassi cancella tutti i profili non legati al percorso del sistema operativo ed inutilizzati da almeno sei mesi. È opportuno prestare la massima attenzione prima di eseguire questo tipo di comando, che potrebbe cancellare profili particolari.

Conclusioni

La soluzione elaborata fornisce uno strumento ulteriore per la manutenzione dei computer, in particolare per quanto concerne l’occupazione dello spazio dei dischi.

L’automatizzazione di tale processo senza specificare un utente può tuttavia presentare dei rischi. Nei computer possono essere presenti delle utenze non utilizzate da una persona, ma utilizzate per l’avvio di servizi o altro, questo tipo di utenti non aggiorna la data di accesso al profilo del disco. Il mancato aggiornamento della data di ultimo accesso invalida il filtro basato sul tempo, diventa quindi fondamentale creare delle opportune configurazioni di esclusione.

Per maggiori informazioni sull’uso e la realizzazione degli script di automazione leggi questo articolo e contattaci senza impegno.

I componenti distribuiti sono forniti senza alcuna garanzia. Non vi sono garanzie che il software soddisfi le vostre esigenze o sia esente da errori. In nessun caso gli sviluppatori saranno responsabili per eventuali danni.

I componenti proposti sono stati collaudati nel modo più esaustivo possibile e sono utilizzati in modo regolare in ambienti di produzione, durante il loro utilizzo non si sono verificate anomalie di funzionamento.

LEGGI ANCHE -  Powershell e SSH per potenziare l'RMM e non solo
Archivi
Prossimi eventi

Non ci sono eventi imminenti.

Iscriviti alla nostra Newsletter
Seleziona lista (o più di una):
Manteniamo i tuoi dati privati e NON li condividiamo con terze parti. Per maggiori informazioni, consulta la nostra Privacy Policy.
Confermo di aver letto la Policy sul trattamento dei dati

Automatizzare in autonomia

Ecco come diventare autonomi nella realizzazione di procedure o come beneficiare di quanto già pronto all'uso.
Il misticismo della Tuscia e le curatrici

Un progetto parallelo ambientato nella Tuscia Sutrina: piante da giardino locali, tecniche di coltivazione, storia e leggende del territorio, racconti fantasy a tema. Botanica, cultura e tradizioni in un unico spazio.

A volte basta una breve pausa per ritrovare la concentrazione: qualche minuto tra verde e fantasia può aiutare a tornare al lavoro con nuove idee.

Visita il sito