Uninstall a Program or Patch

Die automatische Deinstallation per Script ist etwas unschön über die WUAPI gelöst.
Mein Script ermittelt in der Registry das gesuchte KB-Patch oder Programm und startet dann die Deinstallation:

uninstallProg.vbs
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
suche = "KB2509470" 'hier das gesuchte Programm eingeben
 
strOriginalKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
 
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
 
FindKeyValue(strOriginalKeyPath)
 
'-------------------------------------------------------------------------
Function FindKeyValue(strKeyPath)
 
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
 
    errorCheck = oReg.EnumKey(HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys)
 
    If (errorCheck=0 and IsArray(arrSubKeys)) THEN
        For Each subkey In arrSubKeys
            strNewKeyPath = strKeyPath & "\" & subkey
            FindKeyValue(strNewKeyPath)
        Next
    End If
 
    oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath,arrValueNames, arrValueTypes
 
    IF (errorCheck=0 and IsArray(arrValueNames)) THEN
        For i=0 To UBound(arrValueNames)
           IF arrValueNames(i) = "DisplayName" THEN
             strValueName = arrValueNames(i)
             oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, szValue
             IF InStr(szValue,suche) THEN
               wscript.echo "Displayname: " & szValue
               strValueName2 = "UninstallString"
               oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName2, szValue2
               wscript.echo "Deinstallation durch:" & vbCRLF & szValue2
               WSHShell.Run szValue2, 1, FALSE
             End IF
        END IF
        Next
    End if
end Function
'-------------------------------------------------------------------------

Sollte man einen Fehler bekommen:
WindowsInstaller
Das Entfernen von Patches wird durch eine Richtlinie nicht zugelassen.
so hat man mal wieder keine Adminrechte.

oder so:

wusa /uninstall /kb:3097877 /quiet /forcerestart