troubleshooting Question

Need to modify application removal script

Avatar of GSLBermuda
GSLBermuda asked on
Microsoft Legacy OSWindows OS
1 Comment1 Solution307 ViewsLast Modified:
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
                  exit function
            end if
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

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 1 Comment.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 1 Comment.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros