Nel corso dell’utilizzo quotidiano del browser, Google Chrome accumula una grande quantità di dati locali: cache, cookie e cronologia di navigazione. Questi elementi hanno una funzione utile, velocizzare il caricamento delle pagine, mantenere le sessioni attive e migliorare l’esperienza utente, ma al tempo stesso possono diventare un problema.
Questi i principali motivi per cui è consigliabile una pulizia periodica
- Prestazioni degradate: una cache troppo grande può rallentare il browser
- Problemi di privacy: i cookie possono tracciare le abitudini di navigazione
- Errori di caricamento: file corrotti in cache possono causare malfunzionamenti
Tuttavia, una cancellazione indiscriminata può risultare controproducente. Eliminare tutti i cookie, ad esempio, comporta la perdita delle sessioni di login, mentre la rimozione completa dei dati può influire sull’esperienza utente.
Per questo motivo, una soluzione più evoluta consiste nel cancellare solo i dati più vecchi di un certo numero di giorni, mantenendo quelli recenti. Questo approccio bilancia prestazioni, sicurezza e continuità operativa.
Script PowerShell per la pulizia
Di seguito uno script PowerShell progettato per:
- Eliminare cache, cookie e cronologia più vecchi di X giorni
- Mantenere i dati recenti
- Non toccare i segnalibri (Bookmarks)
- Accettare il numero di giorni come parametro
param (
[int]$GiorniDaConservare = 7
)
# Encoding UTF-8 per evitare problemi con accenti
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
Write-Host "=== Pulizia Google Chrome ===" -ForegroundColor Cyan
Write-Host "Giorni da conservare: $GiorniDaConservare" -ForegroundColor Yellow
# Chiusura processi Chrome
Write-Host "Chiusura processi Chrome..." -ForegroundColor Yellow
Get-Process chrome -ErrorAction SilentlyContinue | Stop-Process -Force
Start-Sleep -Seconds 2
# Percorso Chrome
$ChromePath = "$env:LOCALAPPDATA\Google\Chrome\User Data\Default"
if (!(Test-Path $ChromePath)) {
Write-Host "Percorso Chrome non trovato!" -ForegroundColor Red
exit
}
# Funzione pulizia file vecchi
function CancellaVecchiFile($Path, $Giorni) {
if (Test-Path $Path) {
try {
$files = Get-ChildItem -Path $Path -Recurse -Force -ErrorAction SilentlyContinue
$oldFiles = $files | Where-Object {
$_.LastWriteTime -lt (Get-Date).AddDays(-$Giorni)
}
if ($oldFiles.Count -gt 0) {
$oldFiles | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
Write-Host "Puliti $($oldFiles.Count) file vecchi in: $Path" -ForegroundColor Green
} else {
Write-Host "Nessun file vecchio da eliminare in: $Path" -ForegroundColor DarkGray
}
}
catch {
Write-Host "Errore durante la pulizia di $Path" -ForegroundColor Red
}
}
}
# Pulizia cache
Write-Host "`n[Cache]" -ForegroundColor Cyan
$CachePath = Join-Path $ChromePath "Cache"
CancellaVecchiFile -Path $CachePath -Giorni $GiorniDaConservare
# Pulizia Cookies
Write-Host "`n[Cookies]" -ForegroundColor Cyan
$CookiesPath = Join-Path $ChromePath "Cookies"
if (Test-Path $CookiesPath) {
try {
Remove-Item $CookiesPath -Force -ErrorAction SilentlyContinue
Write-Host "File Cookies rimosso." -ForegroundColor Green
}
catch {
Write-Host "Impossibile rimuovere Cookies (probabilmente in uso)" -ForegroundColor Red
}
} else {
Write-Host "File Cookies non trovato." -ForegroundColor DarkGray
}
# Pulizia cronologia
Write-Host "`n[Cronologia]" -ForegroundColor Cyan
$HistoryFiles = @("History", "History Provider Cache")
foreach ($file in $HistoryFiles) {
$path = Join-Path $ChromePath $file
if (Test-Path $path) {
try {
Remove-Item $path -Force -ErrorAction SilentlyContinue
Write-Host "$file rimosso." -ForegroundColor Green
}
catch {
Write-Host "Errore rimozione $file" -ForegroundColor Red
}
} else {
Write-Host "$file non trovato." -ForegroundColor DarkGray
}
}
Write-Host "`nPulizia completata con successo!" -ForegroundColor CyanLo script consente di definire il numero di giorni da conservare, rendendolo riutilizzabile in diversi scenari. Se non viene specificato nessun parametro viene utilizzato un valore di default pari a 7 giorni.
La funzione “CancellaVecchiFile” scansiona file e sottocartelle, filtra per data di modifica ed elimina solo ciò che è più vecchio della soglia specificata. All’interno della funzione, -ErrorAction SilentlyContinue, previene interruzioni dello script in caso di file bloccati o non accessibili.
Questi sono alcuni esempio di utilizzo
# Default (7 giorni)
.\PulisciChromeParam.ps1
# Mantieni ultimi 15 giorni
.\PulisciChromeParam.ps1 -GiorniDaConservare 15
# Mantieni ultimi 30 giorni
.\PulisciChromeParam.ps1 -GiorniDaConservare 30
# Cancella tutto
.\PulisciChromeParam.ps1 -GiorniDaConservare 0Questo script può essere facilmente utilizzato con il Task Scheduler di Windows o script di logon/logoff. Eseguito settimanalmente o mensilmente, garantisce un sistema sempre pulito senza intervento manuale.
