AdminStudio is a product from Flexera Software that can be a complete, end-to-end application management system. It includes products for application modification and deployment. It comes with Repackager, Tuner, and InstallShield, as well as a host of other products. This article will focus exclusively on Repackager.
I will start with all of the information you need to know about Repackager, then go through a simple example where I repackage Mozilla Firefox into an MSI.
Repackager is a product for converting legacy EXE installers into deployable MSI installers. It captures all changes made to a system during installation and creates an MSI from these changes. This product is very useful for administrators who must deploy software using Group Policy. GPO’s can only deploy MSI installers, so this a required product for an organization that does not have a system like System Center Configuration Manager.
Repackager can also be used to detect system changes that occur from configuring a product after installation. I use it all the time to see what changed on a system whenever I open a program and check a box in the program’s settings. This is especially useful if you must deploy an application with a certain set of settings. Repackager can tell you almost instantly what changed, and you can either deploy the MSI that is created from Repackager, or grab the file or registry key that changed.
Repackager does have some limitations. It absolutely cannot capture drivers. Flexera is very open and forward about this. If an application installs a driver as part of its installation, Repackager is not a solution for deployment. In these instances, software installation is almost always a manual process and cannot be automated.
Another limitation is that Repackager can pick up erroneous data. If you do the snapshot method (more on that later), it will pick up EVERY change made to the system. That means if your virus scanner updates its definitions that will be picked up. If Windows Update runs a sync it will be picked up. The newest version of Repackager (v11.5) mitigates this somewhat with Installation Monitoring. I will go into more detail about this later in the article.
To minimize capturing erroneous data with Repackager, I recommend creating a “clean” computer to do your capturing on. I also recommend that this be a virtual machine that can easily be snapshotted back to a clean state. Products such as Hyper-V, VirtualBox, and VMware Workstation can satisfy these requirements. I further recommend that you do not install virus protection and that you disable Windows Update and Windows Firewall. This will greatly reduce the amount of erroneous data captured with Repackager. I also do not join my Repackager machine to my domain or have it in my CM 2012 environment.
The AdminStudio suite can be installed on your primary machine. Version 9 debuted the Remote Repackager. This is a shared directory that gets mounted inside your VM. Repackager then runs from the clean machine, while the suite is installed on a different machine. Flexera has a very good guide for setting this up here: http://kb.flexerasoftware.com/doc/Helpnet/adminstudio901/Content/ashelplibrary/ISR_Optimal_Remote.htm. These directions are for version 9, but they work with the newest version (11.5).
One further recommendation is to repackage the application on the operating system that it will be deployed on. For example, if I’m deploying to Windows 7, I will repackage on Windows 7. The system is supposed to work crossing operating system versions, but I have had better experiences when keeping the operating system version the same. Also, I have noticed that architecture (32 vs. 64-bit) does not make a difference. If I am deploying to both, I still try to package the application in 32-bit.
Installation Monitoring vs. Snapshot
This is basically the only option your given (besides package name) when setting up a repackage. This is the method that Repackager will use when analyzing the application installation.
For simple applications, installation monitoring works really well. It watches the installation and captures the changes. This most suited for applications that need no extra configuration after install. You can adjust shortcuts after install, but that is it. If you need to make any configuration changes, snapshot is the method that you need to use.
Snapshot takes a “picture” of the operating system before and after install. It then analyzes the before and after and captures the changes. This is most suited for applications where post-install configuration is needed. This post-install configuration can be activating the software, clicking through the EULA, or just changing an application setting. Always make sure that your license agreement supports activating the software for all users or accepting the EULA on behalf of your users. If you launch the application before analyzing the changes, any change you make will be preserved in the captured MSI.
Overall, I use the snapshot method almost exclusively. Over time, I have seen better results with this method. There is more data that you have to exclude on every capture (more on exclusions later), but it seems to work better.
If you are trying to figure out a change outside of an installation, snapshot must be used. This is where you are trying to figure out what changes when you change an application setting, or anything post-install.
After capture, the repackaging wizard comes up. This is where you can exclude erroneous information. There is no set of items that you can automatically exclude after every capture. You must look at it the files and registry keys and decide if what Repackager captured really belongs with this installation. After doing a few these, you will get the hang of what can be excluded. If you find that you excluded something that should’ve been included, you can always change it back and rebuild the MSI.
A few general things to look for are files stored in Windows, system32/SysWOW64, and off the root of your system drive. Most applications do not write to these locations anymore. Again, you cannot just blanket exclude changes in these directories, but they are a good place to start.
On the registry side, things that write to HKLM\SOFTWARE\Microsoft or HKLM\Software\Classes can be excluded. In the Classes key, be sure not to exclude items that have to do with your product. Sometimes, file associations can be written to these registry keys. Also, anything written to HKLM\SYSTEM can normally be excluded.
The main thing to remember when excluding things is to just pay attention to what you are doing. If something seems like it’s needed, then keep it. Also, remember that if you exclude something and the install does not work, you can always go back and include it.
Here is an example of the Repackager process. I am going to use Firefox as an example. This is a simple demo, but it will illustrate all of the features of the program. I will use the snapshot method to capture the installation. After install, I will set a bookmark that will persist into the MSI. After capture, I will compile it into an MSI, reset my VM to a snapshot, and install the MSI.
When you first open Repackager, you are presented with this screen. We want to capture an installation, so we select “Capture an Installation Using Repackaging Wizard”.
Next, you are presented with this screen. This is where you tell it if you want to use Installation Monitoring or Snapshot. Since I want to set a bookmark in my Firefox install, I am going to select snapshot.
On the next screen, I select multiple steps. The single step process is pretty much the same thing as installation monitoring, so we will not be able to customize Firefox. Once we analyze the system status, the second option, “Analyze system status changes”, will be selectable.
When we click “Next”, the system analysis will begin. This process can take some time, depending on your system. After the analysis is complete, you get this screen:
When you click Finish, the wizard goes away. This is where we install our application. I am not going to go through the Firefox install process, but I did use all of the defaults.
I am now going to open Firefox and set a bookmark.
While doing this, it also took care of initializing and authorizing any plugins. It also performed the import of IE settings.
Now that I have my configured application, I am going to launch the Repackager again. I select the “Capture an Installation Using Repackaging Wizard” option again. Select “Snapshot” again for the capture type, and you’re presented with this screen:
As you can see, the analyze system option is now selected. Just click “Next” on this screen.
Next is the product information page. Fill in these values and click “Next”. Note that the “Product Name” and “Company Name” options are required. These fields define their corresponding MSI property fields.
Keep the default package location on the next screen and click “Start”. Repackager now analyzes your system. Again, this process can take a few minutes. When it is done, click the “Finish” button. Repackager now launches the project.
This set of screens is where we can go through and exclude files, registry keys, and INI file settings. With this particular example, there were no files/folders that need to be excluded. Here is a screenshot of what I am excluding from the registry section:
As you can see, even with a simple installation, there were a lot of erroneous registry keys that the system captured.
Once you have gone through everything and excluded the bad data, we need to compile this into an MSI. You can do that by clicking the “Build” icon in the toolbar:
This constructs the MSI and saves it to “C:\Packages\MSI_Package”. You are looking for the file called “Firefox.msi” in this directory. Once you have the MSI, you can import it into SCCM, Group Policy, or whatever deployment system you choose.
After I built the MSI, I reverted my VM back to the snapshot and installed my MSI. Before reverting your VM, be sure that you copy the ENTIRE Packages directory off of the VM. You will need the entire directory (not just the MSI) to make any further changes.
Here is a screenshot of the Firefox windows, complete with my custom bookmark:
That was a quick and simple example of the power of Repackager. I have used it to repackage applications much more complicated, as well as capture settings such as the bookmark. I could have used Repackager to only capture the bookmark if I wanted too, or to simply find where the file is that controls Firefox bookmarks. More information and pricing for the entire AdminStudio suite can found here: http://www.flexerasoftware.com/.