This might seem a bit newbie for some of you guys, but for most CMS Admins Uninstall is a must, and not all softwares have MSI Installers so...
I discovered this method to uninstall almost any Software, that are listed under Windows "Add/Remove Programs", using the program {MSIGUID}, next I´m gonna explain the details on how to discover the software {MSIGUI} and then create an Uninstall command for the Software Package.
{MSIGUID} is an unique identifier for each software installed, and its unique in all clients
Now lets begin:
Step One: Install the desired software into a test client machine, in this particular case we will use Adobe Reader 9.1, after the software is installed, open regedit and navigate to the following Key: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, then you will have to locate your software, based on the right column, the field DisplayName shows the label as seen in "Add/Remove Programs", in our case the folder is selected below, note the DisplayName "Acrobat Reader 9.1".
Notice the
UninstallString field, there you can extract the correct product
{MSIGUID} which we will use in the Software Uninstall Command, double click it to edit, like the window below, and copy the string.
Step Two: Create the Uninstall command in the Software Package previously created in the Notification Server, open the Console, then go to
Manage > Software.
Now expand
Software Catalog, and select
Deliverable Software then select your Software Package, in our case
Adobe Reader 9 (EN) then click the pencil icon to edit the package.
Now we´re going to edit the Package and add the
Uninstall command using the
{MSIGUID} we discovered before, select the Tab
Package then click the button
Add command to add a specific command into this Software Package.
Now for the
Uninstall command we need to configure the
Command Type to be
Uninstall and the desired command line, in which we will insert our previous gathered
{MSIGUID}, since we need the Uninstall command to be silent to the end user, we will need to add specific switches to the msiexec.exe to not display any user interface and also not to reboot the system, for that we will use the following switches:
MsiExec.exe /qn /x {AC76BA86-7AD7-1033-7B44-A91000000001} REBOOT=REALLYSUPRESS
Switches used:
/qn - Specify that no UI will be displayed in the client.
/x {MSIGUID} - Command switch /x to uninstall specific software defined by the {MSIGUID}.
REBOOT=REALLYSUPRESS - Force the client system not to reboot after uninstall.
Notice the
Success code used is necessary otherwise the Software Task will shown as failure, since there's no success code informed, in this case the code is
3010, which I found after testing the package with the uninstall command and noticed that the software was indeed removed from the client, but still reported failure since Altiris assumes the success code is 0, and that change with different softwares.
Now let´s save our package and it´s ready for deliver :)
Added a .XML file to create the report that show the UninstallString for the software after a full inventory of the computer(s).
Big thanks goes to Spanky_McSpank for the SQL query!! :)