Solved

Need a script to uninstall multiple versions of same software execpt one

Posted on 2009-03-30
4
347 Views
Last Modified: 2012-06-27
I have an application with multiple versions I need to uninstall but leave the correct version intact. I need a script that checks for the appp name and app version and unintalls all but the correct version.

tx!
0
Comment
Question by:geewizzz
  • 3
4 Comments
 
LVL 14

Accepted Solution

by:
rejoinder earned 500 total points
ID: 24025842
Modify the script below to match your files name and version number.
I recomend you uncomment the echo command in the loop and comment out the uninstallByGuid line so you can double check that all the right files are being targeted.
To tweak, the select statement will have to be modified a little.
strComputer = "."

strSoftName = "Adobe Acrobat"

strVersion  = "9.0"
 

Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")

Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_Product Where Name like '" & strSoftName & "%' AND Version <> '" & strVersion & "'")

For Each objItem in colItems

    'WScript.Echo objItem.IdentifyingNumber

    WScript.Echo UninstallByGuid(objItem.IdentifyingNumber) 

Next

 

Function UninstallByGUID(sGUID)   

    Set oWMIroot = SWBemlocator.ConnectServer(strComputer,"root\CIMV2") 

    Set oWMIColl = oWMIroot.ExecQuery("Select * FROM Win32_Product Where IdentifyingNumber = '" & sGUID & "'") 

    For Each oWMIval In oWMIColl

        oWMIval.Uninstall() 

        UninstallByGUID = "Removal of " & oWMIval.Name & " complete (" & err.number & ")"

    Next 

    If UninstallByGUID = "" Then

        UninstallByGUID = "Application GUID not found."

    end if

End Function

 

msgbox ("All done")

Open in new window

0
 

Author Comment

by:geewizzz
ID: 24028979
Fantastic, tx for the quick response!
Nice script, very clean. I had figured it out last night but yours way better!
One issue I am having with it is some apps installs(Java) dont have 'Version' info. This uninstalled all versions of Java except the one I entered PLUS the one that doesnt have version info. I assume we would incorporate another line, something like ....
If Version = ""
then....

Any ideas?

FYI, I also have another question open - looking for a script that will delete a locked file???  500 pts and no one has solved it. I figure if a tool like 'Unlocker' can do it- why not a script???
0
 
LVL 14

Expert Comment

by:rejoinder
ID: 24054247
Thanks very much.
I will see what can be done about the version number issue.  I will get back to you soon.
Can you post the link to the other question and I will check it out.
0
 
LVL 14

Expert Comment

by:rejoinder
ID: 24054430
That might work.  The block of code would look like this...
For Each objItem in colItems
    if objItem.Version <> "" then
        'WScript.Echo objItem.IdentifyingNumber
        WScript.Echo UninstallByGuid(objItem.IdentifyingNumber)
    end if
Next
It would need testing at your end to see if it is giving you the desired results.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is an addendum to the following article: Acitve Directory based Outlook Signature (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_24950055.html) The script is fine, and works in normal client-server domains…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
A company’s greatest vulnerability is their email. CEO fraud, ransomware and spear phishing attacks are the no1 threat to a company’s security. Cybercrime is responsible for the largest loss of money to companies today with losses projected to r…

937 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

1 Experts available now in Live!

Get 1:1 Help Now