Advertisement
Guest User

Driver cleaner

a guest
Sep 19th, 2017
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $data = & dism /online /get-drivers /format:table | Select-Object -Skip 12
  2. $HashTable = $data | Select-Object -Skip 2 | ConvertFrom-Csv -Delimiter '|' -Header OEM,FileName,Input,Class,Vendor,Date,Version
  3. Write-Host "All installed third-party drivers" -ForegroundColor Yellow
  4. $HashTable | Sort-Object Class | Format-Table
  5. Write-Host "Different versions" -ForegroundColor Yellow
  6. $last = ''
  7. $NotUnique = @()
  8. foreach ( $Dr in $($HashTable | Sort-Object Filename) ) {
  9.     if ($Dr.FileName -eq $last  ) {  $NotUnique += $Dr  }
  10.     $last = $Dr.FileName
  11. }
  12. $NotUnique | Sort-Object FileName | Format-Table
  13. $list = $NotUnique | Select-Object -ExpandProperty FileName -Unique
  14. $ToDel = @()
  15. foreach ( $Dr in $list ) {
  16.     Write-Host "Duplicate found" -ForegroundColor Yellow
  17.     $sel = $HashTable | Where-Object { $_.FileName -eq $Dr } | Sort-Object date -Descending | Select-Object -Skip 1
  18.     $sel | Format-Table
  19.     $ToDel += $sel
  20. }
  21. Write-Host "Drivers to remove" -ForegroundColor Yellow
  22. $ToDel | Format-Table
  23. foreach ( $item in $ToDel ) {
  24.     $Name = $($item.OEM).Trim()
  25.     & pnputil.exe -d "$Name"
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement