Eliminación de controladores antiguos y no utilizados de Driver Store usando Powershell – 2xsoftware

Los controladores de Windows no son algo que le importe a un usuario normal de PC. Uno podría comenzar a pensar en los controladores solo cuando los juegos dejan de funcionar (o funcionan mal) o cuando necesitan limpiar la unidad C y recuperar el 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 sin usar. Lo hacen por una razón: la carpeta a menudo consume cantidades asombrosas de espacio, a veces más allá de decenas de gigabytes.

Este artículo le mostrará cómo eliminar controladores antiguos no utilizados de la carpeta Driver Store mediante PowerShell y otros métodos. Se aplica a Windows 10 y 11.

Puede encontrar la carpeta del almacén de controladores en C:WindowsSystem32DriverStoreFileRepository. 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 presionar Shift + Eliminar: Windows tiene un procedimiento dedicado para eliminar los controladores no utilizados de la carpeta Driver Store.

Importante. Algunos blogs recomiendan cambiar el propietario de la carpeta Driver Store y eliminarlo manualmente. ¡No hagas eso! Una secuencia de comandos para Power Shell y una aplicación de terceros gratuita 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 Driver Store usando PowerShell

En lugar de Mayús+Eliminar la carpeta del almacén de controladores, utilice un script de Power Shell. Elimina todos los controladores duplicados y deja solo las últimas versiones que pueda necesitar al solucionar problemas.

Considere lo siguiente antes de eliminar los controladores antiguos de Windows con 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 siempre que modifique la configuración de su sistema, experimente con el registro, trabaje 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 los 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á la secuencia de comandos que le permite eliminar controladores antiguos no utilizados de Driver Store usando Power Shell.

Consejo. Para mostrar solo los controladores no utilizados, escriba Expresión de invocació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 -Alcance Proceso -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:Psdrv_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 Driver Store usando DriverStoreExplorer

Entendemos que Power Shell podría no ser la forma más sencilla de eliminar controladores antiguos no utilizados de Driver Store. Aquellos que no se sientan cómodos con los comandos y las secuencias de comandos pueden intentar usar la aplicación DriverStoreExplorer. Tiene una interfaz de usuario mucho más fácil de usar que le permite navegar por todos los controladores no utilizados, clasificarlos por categorías, verificar sus versiones, la fecha del controlador, el tamaño, etc. Es una aplicación excelente y también es completamente gratis.

  1. Descarga DriverStoreExplorer desde Github.
  2. Extraiga el archivo en una carpeta conveniente.
  3. Abre el rapero archivo.
  4. Espere a que la aplicación analice su carpeta Driver Store. Tenga en cuenta que el proceso puede demorar un tiempo, según el tamaño de la carpeta.
  5. Hacer clic Seleccionar controladores antiguos. eliminar controladores no utilizados windows 10
  6. La aplicación seleccionará controladores antiguos y no utilizados que puede eliminar de forma segura.
  7. Hacer clic Eliminar controladores. No eliminar controladores la opción Seleccionar controladores antiguos no ha comprobado. Eso podría resultar en que la aplicación elimine los controladores que están actualmente en uso. eliminar controladores antiguos

Ahora puede ir a la carpeta C:WindowsSystem32DriverStoreFileRepository y ver cuánto espacio ha reclamado la utilidad al eliminar los controladores antiguos no utilizados del Repositorio de controladores.

Así es como elimina los controladores antiguos no utilizados del Repositorio de controladores utilizando Power Shell y aplicaciones de terceros.

Valora este artculo post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *