среда, 17 июля 2013 г.

WSUS. Удаляем $NtUninstall старше 90 дней.

понадобятся
freeware конвертер vbs в exe  (не обязательно наверное, но я люблю, когда юзеры не догадываются, что я есть :), использую параметры  "консольное" и "скрыть от пользователя")
Собственно сам скрипт (спасибо автору)
на всякий продублирую мой окончательный вариант: убраны сообщения пользователю и вставлено сравнение дат и версии ОС (будут отрабатывать только на XP и 2003)


Set oShell = CreateObject("WScript.Shell")

sOSType = Trim(oShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion")) 
If (sOSType = "5.1") OR (sOSType = "5.2") Then 

Set oFSO = CreateObject("Scripting.FileSystemObject")
sWinDir = oFSO.GetSpecialFolder(0)
Set oFolder = oFSO.GetFolder(sWinDir)
Set oDictionary = CreateObject("Scripting.Dictionary")
For Each oSubFolder In oFolder.SubFolders
IF oSubFolder.DateCreated < Now() - 90 then
sFolderName = LCase(oSubFolder.Name)
sFolderPath = LCase(oSubFolder.Path)
If Left(sFolderName, 13) = "$ntuninstallq" _
Or Left(sFolderName, 14) = "$ntuninstallkb" Then
' Get the update name for the registry delete:
sUpdateName = Mid(sFolderName, 13, Len(sFolderName) - 13)
' Never delete folders/files while enumerating a file/folder collection.
' Adds them to a dictionary object for later handling instead:
oDictionary.Add sUpdateName, sFolderPath
End If
End if
Next
sDeleted = ""
For Each sUpdateName In oDictionary.Keys
sDeleted = sDeleted & vbCrLf & sUpdateName
sFolderPath = oDictionary.Item(sUpdateName)
On Error Resume Next
' Remove entry in Add/Remove Programs:
oShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows\" _
& "CurrentVersion\Uninstall\" & sUpdateName & "\"
On Error Goto 0
' Delete the unisntall folder:
oShell.Run "%Comspec% /C RD /S /Q " _
& Chr(34) & sFolderPath & Chr(34), 0, True
Next
End if

Готовый exe распространяем любимым способом:
Сначала была идея повесить людям в планировщик (автоматически ест-но) - отказалась - нет возможности отследить общую картину. Использую бонусы Касперского: Создаем новую групповую задачу 


- и получаем красивый результат:


Все. 

Комментариев нет:

Отправить комментарий