Avatar of GSLBermuda
GSLBermuda
 asked on

Need to modify application removal script

I'm using the script below to remove some apps like Groupwise and Novell Client.  I need to modify it so that when prompted with the "Do you want to uninstall" it automatically selects yes.  I don't want any user interaction with this script.  I believe I need to use the /qn switch somewhere, but I'm not sure where?
Here is the script:
Option Explicit
 
Dim strComputer, strMSI, MSIapp, App, AppToRemove, objShell
 
strComputer = "."
set objShell = CreateObject("WScript.Shell")
 
'========================================
AppToRemove = "Groupwise"
 
'
strMSI = UninstallString(AppToRemove)
If strMSI<>"" Then
      wscript.echo strMSI
      objShell.Run strMSI
End If
 
function UninstallString(strProductName)
      dim strComputer, oReg, strKeyPath, arrSubKeys, subkey, x
      Const HKEY_LOCAL_MACHINE = &H80000002
      strComputer = "."
      
      Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
 
      ' Get array of subkeys under uninstall registry entry
      strKeyPath = "SOFTWARE\microsoft\windows\currentversion\uninstall"
      oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
      
      For Each subkey In arrSubKeys
            x=FindUninstallString(subkey, strProductName)
            if x<>"" then
                  if LCase(Left(x,7))="msiexec" then
                        ' Check msiexec for parameters...
                        if InStr(1,x,"/I")>0 then x=Replace(x, "/I","/X")
                        if InStr(1,x,"/quiet")<1 then x=x & " /quiet"
                        if InStr(1,x,"/noreboot")<1 then x=x & " /noreboot"
                  end if
                  UninstallString=x
                  exit function
            end if
      Next
end function
 
function FindUninstallString(strKey, strProductName)
      dim DisplayName, Publisher, UninstallString, search
      On Error Resume Next
      DisplayName=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\DisplayName")
      Publisher=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\Publisher")
      UninstallString=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\UninstallString")
      search = Instr(1, DisplayName, strProductName, 1)
      
      ' Get uninstall string
      if search>0 Then
            if UninstallString="" then UninstallString="MsiExec.exe /X" & strKey
            FindUninstallString = UninstallString
      end if
end function
Microsoft Legacy OSWindows OS

Avatar of undefined
Last Comment
TheBuzzMan

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
TheBuzzMan

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck