1.3K
Los controladores de Windows no son algo que le importe a un usuario habitual de PC. Uno podría empezar a pensar en los controladores sólo cuando los juegos dejan de funcionar (o funcionan mal) o cuando necesitan limpiar la unidad C y recuperar almacenamiento. Una vez que se elimina todo lo posible, los usuarios comienzan a experimentar con la carpeta Driver Store, que es responsable de almacenar los controladores de Windows antiguos y no utilizados. Lo hacen por una razón: la carpeta a menudo consume cantidades asombrosas de espacio, a veces más de decenas de gigabytes.
Este artículo le mostrará cómo eliminar controladores antiguos no utilizados de la carpeta Driver Store utilizando PowerShell y otros métodos. Se aplica a Windows 10 y 11.
Puede encontrar la carpeta Driver Store en C:\Windows\System32\DriverStore\FileRepository. Navegar al directorio revela una lista impresionantemente grande de carpetas con nombres difíciles de leer. Esos son los controladores antiguos que Windows ya no usa. Sin embargo, no puede simplemente utilizar Mayús + Eliminar: Windows tiene un procedimiento dedicado para eliminar los controladores no utilizados de la carpeta Tienda de controladores.
Importante. Algunos blogs recomiendan cambiar el propietario de la carpeta Driver Store y eliminarla manualmente. ¡No hagas eso! Un script para Power Shell y una aplicación gratuita de terceros que mencionaremos a continuación son opciones mucho mejores, más seguras y más convenientes para eliminar controladores antiguos no utilizados de su computadora.
Eliminar controladores antiguos de la tienda de controladores mediante PowerShell
En lugar de Mayús+Eliminar la carpeta de la Tienda de controladores, utilice un script de Power Shell. Elimina todos los controladores duplicados y deja solo las últimas versiones que pueda necesitar para solucionar problemas.
Considere lo siguiente antes de eliminar controladores antiguos de Windows mediante Power Shell:
- Actualice Power Shell a Windows Management Framework 4 o posterior.
- Cree un punto de restauración del sistema en caso de que algo salga mal. Es una excelente práctica crear puntos de restauración cada vez que modifica la configuración del sistema, experimenta con el registro, trabaja con controladores, etc. Puede crear un punto de restauración ejecutando PowerShell como administrador y ejecutando el siguiente comando:
Checkpoint-Computer -Description “PointBeforeDeleteUnusedDrivers”
Después de eso, verifique su punto de restauración con el Comando Get-ComputerRestorePoint.
Ahora puede comenzar a eliminar controladores antiguos. Ejecute el siguiente comando para obtener la lista de todos los controladores de terceros: dism /en línea /get-drivers. Después de eso, debe analizar la salida en Power Shell, seleccionar los duplicados del controlador y ordenarlos por fecha. También puede excluir los controladores más recientes de los resultados.
Nota. Consulte nuestra guía sobre cómo ejecutar el script de PowerShell en una computadora remota.
Aquí está el script que le permite eliminar controladores antiguos no utilizados de Driver Store mediante Power Shell.
Consejo. Para mostrar sólo los controladores no utilizados, escriba Invocar-expresión y agregue el carácter # antes del comando Invoke-Expression -Command “pnputil.exe -d $Name.
$dismOut = dism /online /get-drivers $Lines = $dismOut | select -Skip 10 $Operation = "theName" $Drivers = @() foreach ( $Line in $Lines ) { $tmp = $Line $txt = $($tmp.Split( ':' ))[1] switch ($Operation) { 'theName' { $Name = $txt $Operation = 'theFileName' break } 'theFileName' { $FileName = $txt.Trim() $Operation = 'theEntr' break } 'theEntr' { $Entr = $txt.Trim() $Operation = 'theClassName' break } 'theClassName' { $ClassName = $txt.Trim() $Operation = 'theVendor' break } 'theVendor' { $Vendor = $txt.Trim() $Operation = 'theDate' break } 'theDate' { # change the date format for easy sorting $tmp = $txt.split( '.' ) $txt = "$($tmp[2]).$($tmp[1]).$($tmp[0].Trim())" $Date = $txt $Operation = 'theVersion' break } 'theVersion' { $Version = $txt.Trim() $Operation = 'theNull' $params = [ordered]@{ 'FileName' = $FileName 'Vendor' = $Vendor 'Date' = $Date 'Name' = $Name 'ClassName' = $ClassName 'Version' = $Version 'Entr' = $Entr } $obj = New-Object -TypeName PSObject -Property $params $Drivers += $obj break } 'theNull' { $Operation = 'theName' break } } } Write-Host "All installed third-party drivers" $Drivers | sort Filename | ft Write-Host "Different versions" $last="" $NotUnique = @() foreach ( $Dr in $($Drivers | sort Filename) ) { if ($Dr.FileName -eq $last ) { $NotUnique += $Dr } $last = $Dr.FileName } $NotUnique | sort FileName | ft Write-Host "Outdated drivers" $list = $NotUnique | select -ExpandProperty FileName -Unique $ToDel = @() foreach ( $Dr in $list ) { Write-Host "duplicate found" -ForegroundColor Yellow $sel = $Drivers | where { $_.FileName -eq $Dr } | sort date -Descending | select -Skip 1 $sel | ft $ToDel += $sel } Write-Host "Drivers to remove" -ForegroundColor Red $ToDel | ft # removing old drivers foreach ( $item in $ToDel ) { $Name = $($item.Name).Trim() Write-Host "deleting $Name" -ForegroundColor Yellow Write-Host "pnputil.exe -d $Name" -ForegroundColor Yellow Invoke-Expression -Command "pnputil.exe -d $Name" }
Copie el script y guárdelo en un archivo llamado drv_cleanup.ps1. Puede pegar el script en el Bloc de notas, guardar el archivo y luego cambiar el nombre de su extensión txt a ps1. Coloque el archivo en C:\Ps. Ahora abra Windows Terminal o Power Shell como administrador y permita ejecutar scripts sin firmar con el siguiente comando: Set-ExecutionPolicy -Proceso de alcance -ExecutionPolicy Bypass.
Nota. Consulte nuestra guía sobre qué hacer cuando no puede configurar la impresora como predeterminada en Windows.
Ejecute el script almacenado en C:\Ps con el C:\Ps\drv_cleanup.ps1 dominio. Espere a que el sistema complete el procedimiento. Después de eso, reinicie su computadora.
Elimine los controladores antiguos no utilizados de la tienda de controladores utilizando DriverStoreExplorer
Entendemos que Power Shell podría no ser la forma más fácil de usar para eliminar controladores antiguos y no utilizados de Driver Store. Aquellos que no se sientan cómodos con los comandos y scripts pueden intentar usar la aplicación DriverStoreExplorer. Tiene una interfaz de usuario mucho más fácil de usar que le permite explorar todos los controladores no utilizados, ordenarlos por categorías, verificar sus versiones, fecha del controlador, tamaño, etc. Es una aplicación excelente y también es completamente gratuita.
- Descargue DriverStoreExplorer desde Github.
- Extraiga el archivo en una carpeta conveniente.
- Abre el rapr archivo.
- Espere a que la aplicación analice su carpeta Driver Store. Tenga en cuenta que el proceso puede tardar un poco, dependiendo del tamaño de la carpeta.
- Hacer clic Seleccione controladores antiguos.
- La aplicación seleccionará los controladores antiguos y no utilizados que podrá eliminar de forma segura.
- Hacer clic Eliminar controladores. No eliminar controladores la opción Seleccione controladores antiguos No lo ha comprobado. Esto podría provocar que la aplicación elimine los controladores que están actualmente en uso.
Ahora puede ir a la carpeta C:\Windows\System32\DriverStore\FileRepository y ver cuánto espacio ha recuperado la utilidad al eliminar los controladores antiguos no utilizados del Repositorio de controladores.
Así es como se eliminan los controladores antiguos no utilizados del repositorio de controladores mediante Power Shell y aplicaciones de terceros.
One Comment