Often times we get asked how to build up a simple proof of concept (POC) environment and what all is involved. I thought I would take the time to put a few things together here to help the “Do-It-Yourself-ers” here.
There are a number of videos on how to do this…
…but it always helps to have a simple document to follow in order to check stuff off as it’s done.
What Is Needed:
The following are the basic things which are needed with my comments and general recommendations.
- A system to act as the host which has enough RAM and disk space to start (I would say no less than 4GB of RAM and 50GB of disk space but that’s just my own recommendation). This can be a Mac or a Windows system (I’m assuming a workstation and not an ESX/vSphere server, but you could use a VM located on an ESX/vSphere server).
- VMware Workstation 7.x or VMware Fusion 3.x.
- A Windows XP Pro SP2 or SP3 CD (Other Windows operating systems can be used such as Win Vista, Win 7, Win 2000 SP4 or even NT4 SP6 can be used if needed for older apps – but this is a Proof of Concept meant to show the technology working).
- A Valid Windows Operating System License.
- A simple application: I know everyone is probably “Firefox’ed” out about now but it does make for a simple demonstration of the technology – and one which you can easily configure and demonstrate all of the different ThinApp functionalities. If you don’t have any online capabilities, maybe something such as Paint.Net or Adobe Reader.
- One other thing to note is, it is recommended to create a VMware Store Account Login if you don’t already have one. It’s free to do, you don’t have to associate it to your company if you do not wish to, and you can opt out of all the email notifications if desired. This will allow you to not only download the necessary VMware products and eval licenses, but also give you access to the VMware Communities and other items of support. Plus, if you wish to purchase anything (such as VMware Fusion or VMware Workstation), it’s easily done once you have a VMware Store Account.
NOTE: An operating system Volume License key of some sort may be desireable.
Before we get started, let’s list off some resources to get most everything needed. Please note, I am listing both the product home page and the product download page. If you do not have a full or eval license registered to your account, the product download page may not allow you to download the product! Therefore, I’ve listed the Product Home Page for each product as within each product home page is a link to request an evaluation (yes, you need to fill in your personal info, but it’s a minuscule price for a fully functioning, time-bombed copy of the product).
- VMware Workstation – Home, Download
NOTE: The Linux version of Workstation can also be used and is available from these links.
- VMware Fusion (in case you are a Mac user) – Home, Download
- VMware ThinApp – Home, Download
- While it is totally possible for you to build your ThinApp Capture-and-Build (CnB) system on any virtual system host such as ESX/ESXi, vSphere, and incorporate it with other VMware products such as Lab Manager, View, etc., for the sake of this article, I’m going to stick with the basics as our goal is to create a simple ThinApp CnB environment.
The very first thing you need is a virtual machine host system to build your clean Capture-and-Build VM on. Travis Sales has written up a nice blog article on why a Clean PC is needed which goes into some detailed explanations around why this is desired.
- For a Windows system, you’ll need to ensure it meets the VMware Workstation Host System Requirements prior to installing VMware Workstation. If your Windows host system meets the requirements, go ahead and start VMware Workstation installation – it’s a pretty straight forward install.
- For a Mac system, you’ll need to ensure it meets the VMware Fusion Host System Requirements (NOTE: Here is a direct link to the Fusion host system requirements). If your Mac system meets the requirements, go ahead and start the VMware Fusion installation – it’s even simpler to install than Workstation on Windows!
The Capture-and-Build VM:
Now that you have a host system configured, we need to install a clean capture-and-build (CnB) system.
In step 2. in the above video, around 1 minute, 30 seconds in (1:30), we can see this process. The video shows using the New Virtual Machine wizard built into VMware Workstation – shown below.
The option within VMware Fusion similar to this is the second option in the Fusion Home screen, “Install Windows or another operating system in a new virtual machine.“
Both of the above options within VMware Fusion and VMware Workstation will ask for the following items:
- Windows operating system installation media or ISO of installation media. The common recommendation is to use your lowest supported operating system – for this pilot and what we find is most common, I’ll assume you’re using XP Pro SP3.
- Windows operating system license key (recommend Volume License Key).
- Virtual Machine Name.
Installation Media Notes: If you have an ISO of your install media, you’re welcome to use that. Otherwise, just stick the Windows OS Install CD-ROM into your host system CD drive. Also, we recommend using an OS Volume License Key.
CnB VM Creation Notes: While the video (shown above) goes into editing the VM settings to remove things such as Audio cards, etc. it is recommended just to accept the default settings as these are perfectly acceptable for a ThinApp CnB environment. Oh…and by far, this will be where the most time is spent waiting….and waiting….and waiting for the Windows OS to load. ☺
CnB VM Customizations:
Once your clean build VM is loaded, there are some simple customizations you’ll likely want to make.
- VMware Tools Installation. If these don’t happen automatically, you’ll probably want to ensure they get installed. Just see the help in VMware Workstation or VMware Fusion to see about getting these installed. Specifically, under the VM there’s a menu option to “Install VMware Tools“. Remember, if you disable the Auto-Run of inserted media, then you’ll need to browse to the CD drive (probably D:) and double-click the SETUP.EXE to get that going manually. By default, Windows leaves the Auto-Run of inserted media enabled so you shouldn’t have to worry about this.
- Your own appearance customizations. Personally, I like to set all folders to show hidden and system content as well as use the details view in Windows Explorer.
- Install ThinApp. Just follow the wizard from the downloaded evaluation (or your own licensed version) copy and accept all the defaults. If you need help here, see the ThinApp Online Help for procedures on installing ThinApp.
- Create any desired desktop shortcuts and static drive mappings. This way when you go to capture an application, you’ll have everything ready to go.
- Setup Shared Folders if desired. I do like the use of shared folders as it makes working with ThinApp just a bit easier since this very easily allows the ThinApp project location to be set to the shared folders (should be mapped drive Z:).
- Cleaning Up Windows. Remove any leftover files from setup/install. Here’s how my desktop looks.
- Create a Clean Build Snapshot. Once you get things configured the way you want, you’ll then want to create a Clean Build Snapshot to be able to quickly role back to after each ThinApp capture of an application. In VMware Fusion there should be a “Take a Snapshot” button on the menu bar of the VM window as well as in the option for it in the “Virtual Machine” menu on the Apple toolbar. In VMware Workstation, the Snapshot button is located in the menu as well as the option located in the Snapshot sub-menu of the VM menu.
Notes on Antivirus and Firewall software:
While we’re not naïve about the need for antivirus and firewall software on a Windows desktop, please keep in mind how ThinApp works. As a refresher, ThinApp works on the good old, tried-and-true delta snapshot technology. This means it takes a picture of how a system looks at one point in time, then, after the application is installed/configured/tested/etc., it takes another picture of the system and compares the two in order to get a template for building the ThinApp project. Remembering how installer packages work, basically having a list of files with version info and registry modifications which need to occur to the system in order for the application to run correctly, this means if an application – any application (including AV/Firewall) – installs a file or creates a registry prior to ThinApp’s initial scan, then if that file or registry modification is also needed for the application to be packaged by ThinApp, and it doesn’t exist natively on the system where the ThinApp packaged version of the application is to be run, then the ThinApp packaged application will not work as the delta snapshot technology did not see a change because the installer saw the needed file/registry mod was already in place.
The other thing to keep in mind about Antivirus and Firewall software is how most software manufacturer’s installation instructions for their product will begin with the steps to disable these items. Therefore, if you can go without these, it may help alleviate issues. And if you’re concerned about security, please be aware you can configure your clean VM to not have a network (or Internet) connection at all or to just have a Host Only connection. Additionally, rather than enabling any network connection, it is possible to also leave the Network Adapter disabled while enabling VMware Host Shared Folders. If you absolutely must have AV and firewall software installed on your clean VM, then remember that all other systems on your network under your control should have these same requirements – and theoretically any ThinApp package created on the clean CnB VM which has AV and firewall installed on it should also work on all other systems on your network running the same AV and firewall software. The ThinApp packages potentially may not, however, work on systems which do not have these same AV and firewall software packages (i.e. your home computer or a friend’s laptop). Again, delta technology.
The bottom line here is, there are options and ways to configure the environment so as to meet your personal or company security guidelines.
Creating a ThinApp Package:
Selecting an App:
When it comes to selecting an application for virtualization with ThinApp, there are some things to remember:
- What is a good app to package with ThinApp? This is a POC! ☺ So, at this point, let’s keep it simple. Go with something like Opera or Firefox for an online demonstration/test and FileZilla or IrfanView for an offline (non-Internet app) demonstration/test. Adobe Reader is also a good example to try.
- The tough applications can wait until later.
Taking a moment here to describe the areas of play for application virtualization in general; Application Virtualization solutions can solve 5 general areas of problems.
- Resolving app conflicts – For example, if I have two versions of an application and programming only allows one instance to be installed at any given point in time. Or, an application requiring a specific version of a subcomponent (i.e. Java, .NET FrameWork, etc.) which would conflict with other programs installed or is not natively compatible with the OS.
- Resolving app deployment issues – If an application is large, cumbersome, has multiple pieces (or any/all of the aforementioned), then wrapping all of this up into one package – whatever the size – may make it easier to deploy.
- Resolving app update issues – If an application needs to be updated frequently – and maybe resides on remote systems such as laptops/home users/etc. – then having the ability to easily update an application will help keep everyone at the same version level.
- Alleviating application support loads to the I.T. Help Desk for troublesome apps – If an application is flaky, sporadically crashes, is prone to user misuse/misconfiguration (either knowingly or unknowingly) or requires Local Admin permissions when executing, then these are situations which can be resolved through application virtualization (and specifically by ThinApp).
- Supporting legacy apps such as 16-bit apps (Win and DOS) on 32-bit OSs or running legacy browsers on newer operating systems.
NOTE: 16-bit apps, whether virtualized or installed natively, will not work on 64-bit operating systems. For more information, on this, see the Microsoft Knowledge Base articles 896456 and 282423. There are a number of other articles both on Microsoft’s web sites as well as elsewhere which also discuss the limitations of 16-bit app support on 64-bit operating systems. Wikipedia also has good info on the 64-bit processor architectures – specifically on understanding the Operating Modes of an x86-64 processor and what those modes can and cannot support.
Why do we stop to go into these details? Well, understanding what issues application virtualization can resolve for your network environment will help you in choosing which applications you wish to virtualize further down the road. For those who’ve heard myself and my co-workers speak around this topic, you’ll know our stance is, “Virtualize your pain-points”. What this means is, virtualize the applications which users call the help desk about the most or those applications which cause you (the I.T. Administrator) the most pain. Having been an I.T. Solutions Consultant for more than 10 years and in the I.T. industry for 20+ years, I know everyone has an app which would immediately fill the question, if asked, what app they hate the most. Granted, that application may (and most likely will) change over time due to upgrades, business needs, etc. But everyone has a “most detested app”. 🙂
It’s these apps which provide the easy business cases to virtualize in order to eliminate the pain they cause. But in order to get to these more difficult applications, we need to understand the concept of application virtualization, what it resolves for us, and how it works. Therefore we do this proof of concept on simpler applications here to learn the basics. So, let’s download one of the above application installers and get started!
Creating a ThinApp Packaged Application:
For the exact steps on capturing an application, I’m going to refer you back to a somewhat old (but still valid) article as well as another video.
- The article is one of the first blog articles posted here on the ThinApp Blogs and discusses how to create a ThinApp Packaged Application as well as a Clean Capture-and-Build environment. Please note, the screenshots are not going to be quite the same as the latest version of ThinApp, but the jist of the article is there.
- The Video is the one within ThinApp itself and is created by Tina de Benedictis (one of our leading Technical Course Developers and Trainers) and narrated by Jonathan Clark (founder of Thinstall and inventor of the technology). The video is definitely more recent and contains the correct screen shots of ThinApp.
For the procedures on installing and configuring your application of choice, don’t forget to check out the software manufacturer’s web site for their product.
I’ve captured the app and made a ThinApp package. Now what?
Now that you’ve finished capturing your application, make sure you copy the project off before doing anything else. If you use shared folders, simply copy the project to the VMware Host shared folders. Or, with VMware Workstation and VMware Fusion you can just copy the entire project folder to the desktop of your host system – however I would recommend zipping it up as it makes it easier to move around.
NOTE: You may wish to not grab the BIN folder of the project as that will more or less double the size of your ZIP file seeing as the contents of the ZIP will contain the packaged application – which contains everything within the project folder already.
Once you have a backup of your project, simply revert your CnB VM back to it’s clean state. From there, you can test your application to see if it works as expected. For more detailed testing procedures, see the ThinApp Troubleshooting Methods blog article.
Deploying a ThinApp Package:
For your first POC testing of ThinApp, you’ll probably do what I did and put a couple of apps on a USB stick and walk over to another computer (maybe your friend or coworkers computer) and give these apps a go to see how they work and if they work correctly. Keep in mind, though, ThinApp packages are seen by Windows as regular applications which can be deployed as such. ThinApp not only makes a small, self contained, executable package, but can also embed that package into a Microsoft Installer file (an MSI) for delivery like a regular application. So ThinApp can plug into any Electronic Software Delivery system which can handle either an EXE or MSI. For more on delivery and integration methods, see the ThinApp Blogs section on Integration.
A couple of things to wrap up with. Now that you’ve successfully created your first ThinApp package and have a clean Capture and Build environment, you’ll likely create more ThinApp packages as tests and eventually stumble upon some harder applications. For this, I will highly recommend the ThinApp Blogs Troubleshooting section as well as the ThinApp Online Help. You may specifically want to touch base with the ThinApp Troubleshooting – Repost as it discusses some gotchas around slow apps and package trimming.
You may also wish to familiarize yourself with some of ThinApp’s other features such as AppLink and AppSync as well as some useful tools within ThinApp like SBMerge (and procedures and video to use SBMerge) and ThinReg (and login script examples for use with ThinReg) as well as many other neat things about ThinApp.
Now you have everything you need to start your ThinApp POC.