+ Post New Thread
Results 1 to 6 of 6
Windows Thread, MSIEXEC query... in Technical; We use wpkg ( Main Page - WPKG | Open Source Software Deployment and Distribution ) to deploy software to ...
  1. #1

    Join Date
    Dec 2007
    Posts
    149
    Thank Post
    0
    Thanked 5 Times in 5 Posts
    Rep Power
    15

    MSIEXEC query...

    We use wpkg (Main Page - WPKG | Open Source Software Deployment and Distribution) to deploy software to our workstations

    The silent install xml files listed often use MSIEXEC to install the software silently
    eg : Foxit Reader - WPKG | Open Source Software Deployment and Distribution
    Code:
    <install cmd='msiexec /i "%SOFTWARE%\foxit-reader\FoxitReader30_enu.msi" /qn /norestart' />
    These are pretty standard lines. However the uninstall lines tend to come in two flavours and I don't know what the difference is between these two different methods. Can anyone tell me what the difference is please?
    Sometimes the msi file is used

    Code:
    <remove cmd='msiexec /qn /x %SOFTWARE%\pdfcreator\zPDFCreator-0_9_3-AD_DeploymentPackage-WithoutToolbar.msi' />
    Sometimes a string similar to the following is used.

    Code:
    <remove cmd='msiexec /x {CA8A9780-280D-11CF-A24D-444553540000} /passive /norestart' />
    Is this code always the same for all computers installing that software? How do you find out which code (is there a name for it?) relates to which application?

    Is there a preferred method or one that is considered best practice?

    ChrisJ

  2. #2
    ChrisH's Avatar
    Join Date
    Jun 2005
    Location
    East Lancs
    Posts
    4,938
    Thank Post
    114
    Thanked 272 Times in 250 Posts
    Rep Power
    104
    One is specifying no interface and the other just ensures it doesn't ask to restart the computer. The code is specfic to the MSI package it's called a GUID.

  3. #3
    ajbritton's Avatar
    Join Date
    Jul 2005
    Location
    Wandsworth
    Posts
    1,632
    Thank Post
    23
    Thanked 75 Times in 45 Posts
    Rep Power
    33
    To clarify link between GUID and MSI;

    If you tell MSIEXEC to uninstall based on the GUID, it will go to the registry and look up the application based on the GUID that was in the MSI file when the software was installed. Once found, it will uninstall the package associated with the GUID.

    If you tell MSIEXEC to uninstall based on the .MSI file, it will look up the 'Product' GUID in the MSI file, then go look this GUID up in the registry and uninstall the associated package.

    In theory, every new MSI file package should have a unique Product GUID.

    Windows is able to uninstall without the original MSI as it makes it's own copy of the MSI in %windir%\installer when the package is installed. Note that the MSI file gets renamed and has any installation files removed; it's just the database at this point. This is done support several features on Windows Installer such as install-on-demand and self-repair.

    Least ways, that's how it was a few years back !

  4. Thanks to ajbritton from:

    SYNACK (5th August 2009)

  5. #4

    Join Date
    Aug 2005
    Location
    London
    Posts
    3,144
    Thank Post
    113
    Thanked 518 Times in 447 Posts
    Blog Entries
    2
    Rep Power
    121
    Quote Originally Posted by ajbritton View Post
    In theory, every new MSI file package should have a unique Product GUID.
    Sadly, that's not always the case - I've come across a few things where the same GUID is used for different versions of the package. This is a real pain when you want to uninstall version 1 and install version 2 for example!

  6. #5

    Join Date
    Dec 2007
    Posts
    149
    Thank Post
    0
    Thanked 5 Times in 5 Posts
    Rep Power
    15
    So is there any benefit of using one method instead of the other? Apart from the errors I'm gettingusing the GUID

  7. #6
    ajbritton's Avatar
    Join Date
    Jul 2005
    Location
    Wandsworth
    Posts
    1,632
    Thank Post
    23
    Thanked 75 Times in 45 Posts
    Rep Power
    33
    I agree with SRochford's point.

    I wonder if there is some confusion between Product GUIDs and Package GUIDs. IIRC, the Product GUID can remain the same for minor updates but the Package GUID should be unique.

    According to Technet, the MSIEXEC command requires either a valid MSI file or a Package GUID. In other words, you have to you the exact same MSI for uninstall as was used for install.

    In terms of best practise, my hunch would be that the GUID would be the way to go although your experience suggests this can be problematic. If you search the registry for 'UninstallString' you will find command lines that are used to uninstall Windows Installer based applications and they all seem to use the GUID.

SHARE:
+ Post New Thread

Similar Threads

  1. psexec, msiexec, domain, permissions etc
    By sparkeh in forum Windows
    Replies: 5
    Last Post: 27th February 2009, 08:06 PM
  2. DNS Query
    By brahma in forum Windows
    Replies: 4
    Last Post: 17th July 2008, 02:33 PM
  3. Testdisk query
    By HughR in forum Hardware
    Replies: 1
    Last Post: 18th June 2008, 04:11 PM
  4. Query of existing query data in PHP
    By markwilliamson2001 in forum Web Development
    Replies: 5
    Last Post: 5th October 2007, 08:43 AM
  5. MSIexec
    By tosca925 in forum Windows
    Replies: 6
    Last Post: 10th September 2005, 10:22 AM

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •