/
/

Come creare uno script per la pulizia automatica dei file temporanei e dei vecchi profili utente sulle macchine remote

di Team Ninja
How to Script Automatic Clean-Up of Temporary Files and Old User Profiles on Remote Machines blog banner image

Riepilogo

Questo post del blog NinjaOne offre un elenco completo di comandi CMD di base e un’analisi approfondita dei comandi di Windows con oltre 70 comandi cmd essenziali sia per i principianti che per gli utenti avanzati. La guida si propone si piegare in modo pratico i comandi del prompt dei comandi per la gestione dei file, la navigazione nelle directory, la risoluzione dei problemi di rete, le operazioni su disco e l’automazione, con esempi reali per migliorare la produttività. Che tu voglia imparare i comandi cmd fondamentali o padroneggiare gli strumenti avanzati della CLI di Windows, questa guida ti aiuterà a utilizzare il Prompt dei comandi in modo più efficace.

I file temporanei e i profili utente obsoleti sono dati non essenziali che si accumulano silenziosamente su un dispositivo. Possono sembrare innocui, ma questi file e profili residui arrivano a occupare molto spazio su disco prezioso.

Se vengono lasciati senza controllo per lungo tempo, possono creare rischi per la sicurezza negli ambienti multiutente o con workstation condivise.

Un modo per mantenere tutti i tuoi endpoint leggeri e con prestazioni ottimali è automatizzare la pulizia.

Oggi ti mostriamo come creare script di automazione per pulire i file temporanei e i vecchi profili utente sulle macchine remote.

Ti serve una spiegazione visiva dell’argomento? Guarda il nostro video “Come creare uno script per la pulizia automatica dei file temporanei e dei vecchi profili utente sulle macchine remote”.

Come automatizzare la pulizia dei file temporanei e dei profili utente con PowerShell

La pulizia dei file temporanei e la rimozione dei vecchi profili utente sono considerate attività di routine per gli MSP. Aiutano a mantenere i sistemi efficienti, liberano spazio su disco prezioso e riducono i rischi per la sicurezza.

Farlo manualmente su centinaia di endpoint, però, richiede molto tempo: per questo la maggior parte dei sysadmin usa script PowerShell per automatizzare l’intero processo.

Prima di procedere, assicurati di soddisfare i seguenti requisiti:

📌 Prerequisiti:

  • Windows 10/11 o Server 2016+
  • PowerShell versione 5.1 o successiva
  • Diritti di amministratore locale
  • NinjaOne o altri strumenti RMM per la distribuzione e il recupero dei log (facoltativo)
  • Accesso ai GPO per applicare le policy di pulizia (facoltativo)

Questi sono gli strumenti principali che ti servono per questa guida.

📌 Strategie di distribuzione consigliate:

Fai clic per scegliere un metodo 💻
Ideale per singoli utenti
💻💻💻
Ideale per le aziende enterprise
Metodo 1: crea uno script per la pulizia dei file temporanei con PowerShell ✓ ✓
Metodo 2: crea uno script per rimuovere i vecchi profili utente con PowerShell ✓
Metodo 3: usa i Criteri di gruppo per standardizzare o integrare la pulizia ✓

Metodo 1: crea uno script per la pulizia dei file temporanei con PowerShell

📌 Situazione d’uso: crea uno script che rimuove i file temporanei e le directory utente da un endpoint per ridurre il disordine e liberare spazio di archiviazione.

Pulizia delle directory temporanee di Windows e degli utenti:

# System temp
$systemTemp = “$env:windir\Temp”
Get-ChildItem -Path $systemTemp -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue# User temp
$users = Get-ChildItem 'C:\Users' -Directory
foreach ($user in $users) {
$tempPath = “$($user.FullName)\AppData\Local\Temp”
if (Test-Path $tempPath) {
Get-ChildItem -Path $tempPath -Recurse -Force -ErrorAction SilentlyContinue |
Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
}
}

Ricorda di escludere gli account di sistema e le sessioni utente attive per evitare perdite accidentali di dati.

Metodo 2: crea uno script per rimuovere i vecchi profili utente con PowerShell

📌 Situazione d’uso: distribuisci uno script che individua ed elimina i profili utente inattivi in base alla data dell’ultimo accesso.

A. Rimuovere i profili non usati negli ultimi 30 giorni

$cutoff = (Get-Date).AddDays(-30)
Get-CimInstance -ClassName Win32_UserProfile | Where-Object {
-not $_.Special -and $_.LastUseTime -lt $cutoff
} | ForEach-Object {
Remove-CimInstance -InputObject $_
}

B. Verificare senza rimuovere

Get-CimInstance -ClassName Win32_UserProfile | Where-Object {
-not $_.Special -and $_.LastUseTime -lt $cutoff
} | Select-Object LocalPath, LastUseTime

Metodo 3: usa i Criteri di gruppo per standardizzare o integrare la pulizia

📌 Situazione d’uso: applica le impostazioni dei Criteri di gruppo per imporre la pulizia dei profili al riavvio del sistema e standardizzare il processo su tutti i dispositivi.

  1. Apri l’Editor Criteri di gruppo
  2. Vai a: Configurazione del computer > Modelli amministrativi > Sistema > Profili utente.
  3. Imposta su Abilitato l’impostazione “Elimina i profili utente più vecchi di un numero di giorni specificato al riavvio del sistema”.
  4. Imposta il valore su 30 giorni.

💡Suggerimento: puoi usarla insieme a uno script di automazione PowerShell per garantire l’applicazione a livello di sistema.

Passaggi aggiuntivi per automatizzare la pulizia dei file temporanei e dei profili utente

Ecco alcuni passaggi aggiuntivi che puoi seguire per semplificare l’eliminazione dei file temporanei e dei vecchi profili utente.

Metodo 1: pianifica la pulizia con l’Utilità di pianificazione

📌 Situazione d’uso: crea un’attività pianificata che esegue automaticamente gli script di pulizia nelle ore di minor carico, così da mantenere il sistema in ordine.

A. Creare un’attività pianificata tramite CMD

schtasks /create /tn “AutoCleanup” /tr "powershell.exe -File C:\Scripts\Cleanup.ps1" /sc weekly /st 02:00 /ru SYSTEM

B. Convalidare la pianificazione

schtasks /query /tn “AutoCleanup”

Applica una pianificazione di pulizia coerente su tutti i tenant per il reporting e la conformità.

Metodo 2: registra i risultati della pulizia nel Registro di sistema per la visibilità dell’RMM

📌 Situazione d’uso: registra l’attività di pulizia nel Registro di sistema o in file locali, così che il tuo strumento RMM possa monitorarla, includerla nei report e sottoporla ad audit.

A. Creare la chiave di audit e memorizzare i metadati

New-Item -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Name "LastCleanupDate" -Value (Get-Date).ToString(“u”)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Name "ProfilesRemoved" -Value 3
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Name "TempFilesDeletedMB" -Value 512

B. Eseguire la query tramite CMD

reg query HKLM\SOFTWARE\Org\CleanupAudit

In questo modo il tuo strumento RMM avrà un dato da usare per il monitoraggio e il sistema di alert.

⚠️ Aspetti a cui prestare attenzione

Tieni presente questi rischi mentre segui la nostra guida:

Rischi Possibili conseguenze Come rimediare
Rimozione dei file temporanei degli account di sistema Malfunzionamenti dei servizi o instabilità del sistema Usa una whitelist per escludere gli account di sistema noti.
Esecuzione di attività pianificate senza i permessi adeguati Lo script fallisce senza segnalarlo o genera errori Esegui le attività con l’account SYSTEM o con diritti di amministratore completi.
File non rimossi per problemi di permessi Pulizia parziale Verifica la presenza di file bloccati o di permessi ereditati da un altro utente.
Attività pianificata non eseguita per errori di configurazione La pulizia non viene eseguita Controlla il percorso dello script, la sintassi e le impostazioni di sistema.
Il GPO non si applica al comportamento previsto Comportamento di pulizia non uniforme tra i dispositivi Usa gpresult /h report.html per verificare l’ereditarietà dei Criteri di gruppo su tutti gli endpoint.
Applicazione delle policy di pulizia senza test Perdita accidentale di dati ed errori di sistema Testa gli script e le impostazioni dei Criteri di gruppo in un ambiente di staging prima di distribuirli.

Guida rapida

NinjaOne mette a disposizione diversi script utili per la pulizia dei file temporanei e la gestione dei profili utente. Ecco alcune opzioni pertinenti:

1. Report sui profili utente orfani: esiste uno script che “Cerca le cartelle dei profili utente che non hanno un account utente associato.” In questo modo puoi individuare i profili utente vecchi o non necessari.

2. Gestione dei file temporanei: non esiste uno script dedicato alla “pulizia dei file temporanei”, ma NinjaOne offre funzionalità di scripting flessibili che ti permettono di creare uno script personalizzato per:

  • Trovare e rimuovere i file temporanei
  • Pulire directory specifiche
  • Rimuovere i vecchi profili utente

3. Flessibilità dell’automazione: la piattaforma ti permette di creare script personalizzati in grado di:

  • Cercare file più vecchi di una data specifica
  • Rimuovere file dalle directory temporanee
  • Gestire i profili utente sulle macchine remote

Best practice per automatizzare la pulizia dei profili utente e dei file temporanei

Per essere certo che i tuoi script funzionino senza problemi in ambienti diversi, segui questi consigli pratici:

Verifica le sessioni utente attive prima di eliminare i profili

Se non controlli le sessioni utente attive, rischi di eliminare un account ancora in uso e di interrompere la giornata di lavoro di qualcuno.

Per evitarlo, usa quser su CMD oppure Get-Process -IncludeUserName su PowerShell per verificare se un utente è ancora connesso.

Escludi dalla pulizia gli account di servizio e gli accessi condivisi

Eliminare account usati da servizi in background o condivisi tra più utenti può bloccare le attività automatizzate.

La soluzione è escludere gli account di servizio dalla pulizia tramite un array di whitelist.

Proteggi i profili utente recenti dall’eliminazione usando soglie di età prudenti

Il fatto che un profilo non venga usato da un po’ non significa necessariamente che non serva più. Alcuni profili utente vengono creati per un uso temporaneo, ad esempio per personale remoto o dirigenti.

Impostare una soglia ampia (ad esempio 60 o 90 giorni) quando individui i profili inattivi ti aiuta a non rimuovere per sbaglio account ancora validi.

Ruota regolarmente i log per garantire tracciabilità e gestione dello spazio.

Crea riepiloghi delle pulizie in file locali o condivisioni di rete per semplificare la risoluzione dei problemi. Questi log dovrebbero indicare quanti file temporanei e profili utente ha rimosso il tuo script e quando.

Inoltre, devi ruotare i riepiloghi delle pulizie per risparmiare spazio su disco. Puoi farlo archiviando o eliminando i log più vecchi.

Come NinjaOne semplifica la pulizia da remoto di file temporanei e profili

NinjaOne rende più semplice mantenere gli endpoint remoti puliti e in salute perché ti permette di:

  • Distribuire e pianificare gli script di pulizia su tutti gli endpoint.
  • Monitorare le chiavi di registro relative all’ultima pulizia e al numero di profili eliminati.
  • Ricevere alert in caso di finestre di pulizia mancate o errori degli script.
  • Assegnare tag ai dispositivi per la remediation dei controlli di integrità in base all’uso del disco.
  • Generare report su tutti i tenant relativi alla copertura e al successo delle pulizie.

Con NinjaOne, gli MSP possono automatizzare l’igiene degli endpoint su larga scala e monitorare i risultati in tempo reale di più basi clienti da un’unica dashboard.

Migliora l’igiene degli endpoint con la pulizia automatizzata di profili e file temporanei

Automatizzare la rimozione e la pulizia dei file temporanei e dei vecchi profili utente è una scelta intelligente per qualsiasi MSP. Elimina il lavoro manuale legato alla manutenzione di centinaia di endpoint e garantisce prestazioni di sistema costanti in più ambienti cliente.

Pianificando le pulizie, puoi prevenire in modo proattivo problemi come rallentamenti del sistema e carenza di spazio su disco.

Argomenti correlati:

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.