Advertisement
qiwichupa

Remove KB folders older than 7 days from %WINDIR%

Jul 27th, 2011
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Set oShell = CreateObject("WScript.Shell")
  2. Set oFSO = CreateObject("Scripting.FileSystemObject")
  3. sWinDir = oFSO.GetSpecialFolder(0)
  4. Set oFolder = oFSO.GetFolder(sWinDir)
  5. Set oDictionary = CreateObject("Scripting.Dictionary")
  6.  
  7. For Each oSubFolder In oFolder.SubFolders
  8. IF oSubFolder.DateCreated < Now() - 7 then
  9.  
  10. sFolderName = LCase(oSubFolder.Name)
  11. sFolderPath = LCase(oSubFolder.Path)
  12.  
  13. If     Left(sFolderName, 13) = "$ntuninstallq" _
  14. Or Left(sFolderName, 14) = "$ntuninstallkb" Then
  15.  
  16. ' Get the update name for the registry delete:
  17.  
  18. sUpdateName = Mid(sFolderName, 13, Len(sFolderName) - 13)
  19.  
  20. ' Never delete folders/files while enumerating a file/folder collection.
  21. ' Adds them to a dictionary object for later handling instead:
  22.  
  23. oDictionary.Add sUpdateName, sFolderPath
  24.  
  25. End If
  26. End If
  27. Next
  28.  
  29. sDeleted = ""
  30. For Each sUpdateName In oDictionary.Keys
  31.  
  32. sDeleted = sDeleted & vbCrLf & sUpdateName
  33. sFolderPath = oDictionary.Item(sUpdateName)
  34.  
  35. On Error Resume Next
  36.  
  37. ' Remove entry in Add/Remove Programs:
  38.  
  39. 'oShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows\" _
  40. '& "CurrentVersion\Uninstall\" & sUpdateName & "\"
  41. 'On Error Goto 0
  42.  
  43. ' Delete the unisntall folder:
  44.  
  45. oShell.Run "%Comspec% /C RD /S /Q " _
  46. & Chr(34) & sFolderPath & Chr(34), 0, True
  47. Next
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement