Limpiar la papelera de reciclaje de todos los usuarios
 
  Julio 20, 2019

La emergencia 馃敂

Notificaci贸n 馃敂, urge que te conectes al servidor remoto para ejecutar una script de SQL, te conectas y 馃挜


An error occurred while executing batch. Error message is: There is not enough space on the disk....

Revisas y te das cuenta que no hay espacio en la unidad C -nada, 0, no cabe un bit mas- Resulta que el SSMS de SQL necesita espacio en C:\Users\...\AppData\Local\Temp para los resultados de un Query


Revisas archivos temporales, tu papelera, etc. luego ejecutas el asistente de limpieza de windows, nada ayuda, cuando mucho ganas unos pocos megas

WinDirStat

De pronto recuerdas esta maravillosa herramienta WinDirStat y la dejas analizar la unidad. Gracias a ella te das cuenta de dos carpetas que se estan comiendo tu espacio en el disco:

Limpia la papelera de todos los usuarios


1. Tus compa帽eros no son muy cuidadosos con su papelera de reciclaje

Asi que abres el terminal en modo administrador y ejecutas lo siguiente:

 Vaciar la papelara de reciclaje de todos los usuarios

            

rd /s c:\$Recycle.Bin
            
            
        
Si alguien te reclama despu茅s, puedes decirle !ey, no me culpes隆, por algo estaban en la papelera

Carpeta de instalaci贸n de Windows


2. Windows no es bueno limpiando su propio folder de instalaciones \Windows\Installer

Esto debe de abordarse con cuidado, es un error conocido que la carpeta de Windows Installer crece con el tiempo sobre todo si estas instalando muchas aplicaciones (Ahora imaginate si esta PC se comparte con mas usuarios cada uno instalando y actualizando sus propias aplicaciones). En resumen, el problema es que cuando se desinstala una app, estas no eliminan de forma correcta sus paquetes de instalaci贸n/actualizaci贸n. Se supone que no deber铆amos de tocar esta directorio, pero como en todo debemos de proceder con cuidado.

El fix en si es identificar los paquetes de instalaci贸n/actualizaci贸n que pertenecen a aplicaciones que ya se desinstalaron del sistema.

Manualmente puedes ejecutar el siguiente VBA Script el cual genera un archivo que contiene los archivos que est谩n instalados y que DEBEMOS de mantener en el sistema, lo dem谩s puede ser borrado

 VBA Script

            

'' Identify which patches are registered on the system, and to which
'' products those patches are installed.
''
'' Copyright (C) Microsoft Corporation. All rights reserved.
''
'' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
'' KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
'' IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
'' PARTICULAR PURPOSE.

'Option Explicit

Dim msi : Set msi = CreateObject("WindowsInstaller.Installer")

'Output CSV header
WScript.Echo "The data format is ProductCode, PatchCode, PatchLocation"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("output.txt", True)
objFile.WriteLine "ProductCode, PatchCode, PatchLocation"
objFile.WriteLine ""
' Enumerate all products
Dim products : Set products = msi.Products
Dim productCode

For Each productCode in products
' For each product, enumerate its applied patches
Dim patches : Set patches = msi.Patches(productCode)
Dim patchCode

    For Each patchCode in patches
    	' Get the local patch location
    	Dim location : location = msi.PatchInfo(patchCode, "LocalPackage")
        objFile.WriteLine productCode & ", " & patchCode & ", " & location

    Next

Next
WScript.Echo "Data written to output.txt, these are the registered objects and SHOULD be kept!"
            
            
        

Agradecimientos a Raymond.cc en su post se detallan ademas de el script anterior algunas otras formas de limpiar este directorio.


Suerte espero que estos dos tips te ayuden a recuperar valioso espacio en tu sistema.