Link to home
Start Free TrialLog in
Avatar of pdixit1977
pdixit1977Flag for India

asked on

Preparing a batch script to uninstall and reinstall a program

Hi Experts,
we are running a client app on 100 numbers of windows server 2003 R2 64 bit, now an upgraded version comes and client asking us to do reinstall that on all those servers. Here is the text flowchart of that batch script which i m planning to create to automate this.
1. uninstall that program (but no user intervention is required).
2. Reboot the server.
3. install the latest version.
4. copy 3 config file to installed program directory (files are already there but the one we copying is upgraded one).
5. Reboot the server again.

But i got stuck on first point, i tried

msiexec /x path_app.msi /q

it does nothing, then i remove Quiet switch but now it is asking Yes/No option for removal

Please help..
Avatar of becraig
Flag of United States of America image

Did you check the eventlog on the server you ran against with the /q flag to see what entry was in the event log for the msi installer source ?

This will help you know what happened when you ran with the /q flag so we can determine how to resolve this.
Avatar of pdixit1977


i checked that and there is nothing in event logs..
you may want to look into c:\temp on the target server to see if any logs were generated.

It seems the msi installer was not invoked if you are not seeing any msi entries in the eventlog.
Try using

msiexec /x path_app.msi /quiet
I would request you to please read my question carefully, i already did that but it not worked.

No, there is no such logs in c:\temp too
So I hate shooting in the dark but here are some options:

1. msiexec /x path_app.msi /qn
2. msiexec /x path_app.msi /l path to some logfile so we can see what is really up
3. msiexec /x path_app.msi /passive
Why not add some logging to see what is going on, and perhaps use /passive for now instead of /quiet

msiexec /x app.msi /passive /log C:\temp\logfile.txt

(Cross posted there with becraig)
/q is NOT /quiet the same, so you did not try that. There are slight differences.
I tried
msiexec /x app.msi /passive /log C:\temp\logfile.txt

but it neither uninstalled the app NOR log something

msiexec /x path_app.msi /l path to some logfile  asking for user intervention yes/no

i already tried /q and /quiet but that also not worked for me..
This is the strangest case I have ever heard, did the Application log on the computer this was run against show any msi installer entries for any of the commands you ran ?

Also please be sure to use verbose logging

msiexec /l*v
msiexec /x app.msi /l*v C:\Appuninstalllogfile.txt

but its asking for user intervention yes/no
also be sure to use either passive or /qb or /qn with this, e.g.

msiexec /x  /qb app.msi /l*v C:\Appuninstalllogfile.txt
msiexec /x  /qn app.msi /l*v C:\Appuninstalllogfile1.txt
msiexec /x  /passive app.msi /l*v C:\Appuninstalllogfile2.txt
Odd!  /log should do the same as /l*v afaik?

is this one particular application btw, could always be that for some reason it won't allow/accept such uninstalls?

Does the msiexec task still continue running in task manager, or if you start it from cmd.exe does it return control straight away or show anything?

Steve has a good point I would also try running the command from the command line on one of the servers to see what the command line returns.

As for what logging options exist and what does what, see below:
Windows Installer handles its installations through Msiexec.exe. The logging options offered by this tool allow you to create different types of logs, depending on the information you need about the installation. These options are:

    i - Status messages
    w - Nonfatal warnings
    e - All error messages
    a - Start up of actions
    r - Action-specific records
    u - User requests
    c - Initial UI parameters
    m - Out-of-memory or fatal exit information
    o - Out-of-disk-space messages
    p - Terminal properties
    v - Verbose output
    x - Extra debugging information
    + - Append to existing log file
    ! - Flush each line to the log
    * - Log all information, except for v and x options
It might be possible the uninstall requires additional flags that we can pass into the command, more information would be required to accomplish this.
Is it possible that an MSI package has some problem which not allowing it to run via command however it works if you install thru GUI ?
i m saying it because i tried to install same app thru below command on another server

msiexec /i OpenSpanRuntimeEntSetup.msi /quiet /l* C:\Appuninstalllogfile.txt

and it says "the installation package could not be opened, verify that the package exist and you can access it"
you get that error if the path to the msi is not reachable from the location the command is being called.

There are other potential issue but I think that is it, please ensure the msi is present in the location specified when running...

e.g. If running on a remote server copy the msi to c:\temp on that server then run via invoke-command or psexec msiexec c:\temp\file.msi
i tried some other application installation and uninstallation with they way you guys suggest and they all were installed and uninstalled successfully but only this MSI giving error.

i m going back to client to ask another copy of MSI and also validate if they put any restrictions in code to not to install via command..

thanks for your help and i will update you soon..
OK, good luck.
As expected, that MSI file was having problem. Client gave me another MSI file which is working as yous suggested.
Avatar of becraig
Flag of United States of America image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial