Hace poco tuvimos que lidiar con unos equipos bastante problemáticos, son equipos de salas de reunión, que por una cosa u otra acaban con el espacio en disco.
Tras mirar y revisar el tema, nos pusimos manos a la obra, y decidimos hacer una política para borrar los temporales del equipo, que lanzamos todos los viernes por la tarde, que es cuando no hay nadie ya en la oficina, o menos gente, trabajando.
En unos días, ejecutando este parche, hemos pasado a recibir una media de 3 tickets a la semana, pero suele ser ya tema de cables o funcionamiento, ya no recibimos tickets algunos de equipos lentos o sin espacio que hace que abrir un Excel o un simple Word una misión imposible.
Esto solo sirve cómo tarea preventiva, pero si en el fondo quieres hacer más limpieza y quieres borrar un perfil de Windows de un equipo, podrías crear una política para borrarlos o bien podrías usar este tutorial que hice hace un tiempo para borrarlos.
-----------------------------------------------------------------------------------------------------------------
os copio el enlace por si queréis usarlo.
#- Clear-WindowsUserCacheFiles # #------------------------------------------------------------------# Function Clear-WindowsUserCacheFiles { param([string]$user=$env:USERNAME) Remove-CacheFiles "C:\Users\$user\AppData\Local\Temp" Remove-CacheFiles "C:\Users\$user\AppData\Local\Microsoft\Windows\WER" Remove-CacheFiles "C:\Users\$user\AppData\Local\Microsoft\Windows\Temporary Internet Files" } #------------------------------------------------------------------# #- Clear-GlobalWindowsCache # #------------------------------------------------------------------# Function Clear-GlobalWindowsCache { Remove-CacheFiles 'C:\Windows\Temp' Remove-CacheFiles "C:\`$Recycle.Bin" Remove-CacheFiles "C:\Windows\Prefetch" C:\Windows\System32\rundll32.exe InetCpl.cpl, ClearMyTracksByProcess 255 C:\Windows\System32\rundll32.exe InetCpl.cpl, ClearMyTracksByProcess 4351 } #------------------------------------------------------------------# #- Clear-ChromeCache # #------------------------------------------------------------------# Function Clear-ChromeCache { param([string]$user=$env:USERNAME) if((Test-Path "C:\users\$user\AppData\Local\Google\Chrome\User Data\Default")) { $chromeAppData = "C:\Users\$user\AppData\Local\Google\Chrome\User Data\Default" $possibleCachePaths = @('Cache','Cache2\entries\','Cookies','History','Top Sites','VisitedLinks','Web Data','Media Cache','Cookies-Journal','ChromeDWriteFontCache') ForEach($cachePath in $possibleCachePaths) { Remove-CacheFiles "$chromeAppData\$cachePath" } } } #------------------------------------------------------------------# #- Clear-UserCacheFiles # #------------------------------------------------------------------# Function Clear-UserCacheFiles { Kill-BrowserSessions ForEach($localUser in (Get-ChildItem 'C:\users').Name) { Clear-ChromeCache $localUser Clear-FirefoxCacheFiles $localUser Clear-WindowsUserCacheFiles $localUser } } #------------------------------------------------------------------# #- Clear-FirefoxCacheFiles # #------------------------------------------------------------------# Function Clear-FirefoxCacheFiles { param([string]$user=$env:USERNAME) if((Test-Path "C:\users\$user\AppData\Local\Mozilla\Firefox\Profiles")) { $possibleCachePaths = @('cache','cache2\entries','thumbnails','cookies.sqlite','webappsstore.sqlite','chromeappstore.sqlite') $firefoxAppDataPath = (Get-ChildItem "C:\users\$user\AppData\Local\Mozilla\Firefox\Profiles" | Where-Object { $_.Name -match 'Default' }[0]).FullName ForEach($cachePath in $possibleCachePaths) { Remove-CacheFiles "$firefoxAppDataPath\$cachePath" } } } #------------------------------------------------------------------# #- Clear-WaterfoxCacheFiles # #------------------------------------------------------------------# Function Clear-WaterfoxCacheFiles { param([string]$user=$env:USERNAME) if((Test-Path "C:\users\$user\AppData\Local\Waterfox\Profiles")) { $possibleCachePaths = @('cache','cache2\entries','thumbnails','cookies.sqlite','webappsstore.sqlite','chromeappstore.sqlite') $waterfoxAppDataPath = (Get-ChildItem "C:\users\$user\AppData\Local\Waterfox\Profiles" | Where-Object { $_.Name -match 'Default' }[0]).FullName ForEach($cachePath in $possibleCachePaths) { Remove-CacheFiles "$waterfoxAppDataPath\$cachePath" } } } #------------------------------------------------------------------# #- Kill-BrowserSessions # #------------------------------------------------------------------# Function Kill-BrowserSessions { $activeBrowsers = Get-Process Firefox*,Chrome*,Waterfox* ForEach($browserProcess in $activeBrowsers) { try { $browserProcess.CloseMainWindow() | Out-Null } catch { } } } #------------------------------------------------------------------# #- Remove-CacheFiles # #------------------------------------------------------------------# Function Remove-CacheFiles { param([Parameter(Mandatory=$true)][string]$path) BEGIN { $originalVerbosePreference = $VerbosePreference $VerbosePreference = 'Continue' } PROCESS { if((Test-Path $path)) { if([System.IO.Directory]::Exists($path)) { try { if($path[-1] -eq '\') { [int]$pathSubString = $path.ToCharArray().Count - 1 $sanitizedPath = $path.SubString(0, $pathSubString) Remove-Item -Path "$sanitizedPath\*" -Recurse -Force -ErrorAction SilentlyContinue -Verbose } else { Remove-Item -Path "$path\*" -Recurse -Force -ErrorAction SilentlyContinue -Verbose } } catch { } } else { try { Remove-Item -Path $path -Force -ErrorAction SilentlyContinue -Verbose } catch { } } } } END { $VerbosePreference = $originalVerbosePreference } } #------------------------------------------------------------------# #- MAIN # #------------------------------------------------------------------# Clear-UserCacheFiles Clear-GlobalWindowsCache
------------------------------------------------------------------------------------------
Para más información del script: Fuente
No hay comentarios:
Publicar un comentario