Basic Steps for the Micro Focus Desktop Containers Application Packaging Process (formerly ZAV)

  • 7017277
  • 18-Feb-2016
  • 09-Sep-2020

Environment

ZENworks Configuration Management
Novell ZENworks Application Virtualization
Micro Focus Desktop Containers

Situation

Capturing an application with Micro Focus Desktop Containers Studio using the snapshot feature.
This document isn't all inclusive and only basic application build. 
Refer to the MFDC documentation (formerly ZAV) to understand settings and processes completely.


Resolution

Build a workstation with the OS compatible with the application to be captured.
  • On this an "OS only" workstation, and only used for the application capture and building process.
  • Install all critical Windows Updates to the device (rebooting and checking until 0 critical updates are to be applied).
  • Log in as the local administrator. (Enable local Administrator if disabled)
  • Disable start up apps & processes and services by running "msconfig", these might contact network resources or (re)start processes after reboot:
    (Commands like msconfig, gpedit, can be run in a DOS prompt (command prompt) by typing in search "cmd")
Windows Updates
SSDP Discovery
Background Intelligence
Windows Firewall (all properties)
Windows Defender AntiVirus (if applicable) - gpedit.msc
        Comp Config > Admin Temp > Win Components > Windows Defender AntiVirus > Turn off Windows Defender=Enabled
OneDrive (if applicable) - gpedit.msc
        Comp Config > Admin Temp > Win Components > OneDrive > Prevent the usage of OneDrive for file storage = Enabled
        Comp Config > Admin Temp > Win Components > OneDrive > Prevent the usage of OneDrive for the file storage on Windows 8.1 = Enabled
Notifications (if applicable) - Settings > System > Notifications & Actions > Notifications Section = Disable
Skype (if applicable) -
Open Skype > Tools > Options > uncheck option to start Skpe when windows starts > Save
Open Task Manager (taskmgr) and review started services and processes (be careful there are some dependencies).
To be sure of services or processes being removed you may need to reboot and recheck.
Open Command DOS window "cmd" and type "set" and those are the computers default "settings".
    PATH may have unnecessary locations, verify if all are needed.
Remove unnecessary files (these change between OS types);
C:\Windows\SoftwareDistribution\Download\*.*
C:\Windows\Installer\*.*  (Win7)
C:\Windows\Temp\*.*
Empty Recycle Bin from desktop
  • Control Panel > Programs > Uninstall any unnecessary programs OR any programs that may be installed that you want to capture.
    • Xbox, Games, etc.
  • Install the ZAV Utility
  • License the ZAV Utility
  • Shut down the workstation.
  • Copy VM (or image) this workstation to save as a template.
  • (If working with a VM workstation, Save as "ZAVReady".  Include comments of OS version, OS bit type, etc.)
  • Start up the workstation.
  • Log in as local Administrator.
  • Copy installation files (or load the installation media) onto workstation, that is not to be captured in the package.
  • Connect to any network services that the application needs in normal use (drive mappings, login to a particular system, etc).
  • Launch the ZENworks Application Virtualization Utility. (run as administrator and use the latest ZAV version available)
  • License the installed ZAV utility (otherwise the captured app will be "trial" time bombed)
Up to this point the workstation should have all the necessary resources to run the application about to be installed.
Yet the device is as plain an OS as possible. 
Note: If the ZAV Package deltas and builds can be saved locally or to a network location.
If the builds are to be saved to a network location or repository, connect to the repository at this point so it is available when you build the application package.  (Or you can move the files after the capture.)

Process of Capturing the Application
  • ZAV Utility | select "Capture Before", once complete move to the next step.
  • Add any files wanted to be contained in the "Capture" (Files and Registry can be added after the Capture, modifying the package before the Build)
  • Install the application
  • Open the application (this is important to have settings saved to Capture)
  • Any installation prompts - answer them to Capture those settings.
Example: Microsoft Office applications prompts on initial install the Updates-Automatic, Notify, or None.  Keep in mind, if Automatic or Notify is selected, each time the app opens it will attempt to go to the vendor to get those updates.
  • License the installed application (if required)
  • Add/Remove/Modify registry changes, shortcuts, files, etc.
  • Close the application
  • Open the application again making sure all application prompts do not appear (if another prompt appears answer it and close/open the application again)
  • Empty Trash
Capturing the Application
If there is nothing else to add the the package
ZAV Utility | select "Capture and Diff"
Select a the location for the deltas (snapshot) to be saved (this can be on the local device or a network repository if connected previously).
Add/Remove/Modify registry changes, shortcuts, files, etc. (if added earlier then already captured)
Example: MS Office creates shortcuts, these can be removed from the delta file system Start Menu or desktop.
VBWarning registry settings that MSAccess uses, can be added/imported into the delta Registry
ZAV Utility | Multiple (button)
Add all possible triggers to the package (use all .exe's in the application), by doing this a rebuild won't be necessary when another .exe is needed from the package. 
Note: If this is not done and an internal .exe needs to be executed, the package will have to be modified with the trigger, rebuilt and redistributed.

Runtimes - If  common runtimes are needed in the ZAV application - a selection of Runtimes can be selected above under Runtimes (tab).  (Java, Dot NET, etc.) This can be in lieu of installing the Runtime in the application while creating the build.  Refer to documentation for use.
MSI Installer - To create an .msi installer for the virtual application choose "Setup" and under "Project Details", Browse to the output file location and check "Automatically generate MSI after successful application build"  this will put a .msi version of the application in the specified Output file location along with the .exe. 
.msi version will put the application in Add/Remove Programs to uninstall.

ZAV Utility | Output File - select the location and name the zav application package.
Triggers - Auto Start
Remember a 32-bit OS can not run an app built on 64-bit OS.

Building the Virtualized Application
Selecting Build, will build the package and compile into an .exe (and .msi if specified)
After the "Build" copy the .exe (or .msi) to your location for launch and test it on the production environment.
This can be deployed through ZENworks Configuration Management system as a Bundle.
Save the ZAV Configuration
Save the Image (or snapshot the VM) as <ApplicationName>-ZAV

Modifications to Captured package - go to Output File location, open the "snapshot.xappl", modify, rebuild and redeploy to test on production device.

Test
Be sure to test, if fails on a regular environment device, run it on the "ZAVReady" image saved above.
Note: Testing on ZAVReady VM (or image) requires manually adding the network resources required by the application.

Tips
Put "ZAV" in the name of the .exe so the application is easily identifiable.
Example: MSAccess2010RT-ZAV.exe
Put the ZAV file in their own directory for application separation.
Example: for runtime version of MSAccess 2010
C:\Program Files (x86)\ZAV\Microsoft\MSAccess2010RT-ZAV.exe
Note: If running a 32-bit ZAV application on a 64-bit OS environment, put the ZAV file in C:\Program Files (x86)\ file structure so it can find all the 32-bit host .dll's required to run.  Also, 64-bit ZAV Applications cannot run in a 32-bit environment.


Additional Information

Virtualizing IE see details in TID 7017198.

Windows 10 may start unnecessary services so these commands may assist in capturing just the necessary files, otherwise they may keep starting up causing errors on the capture.

net stop wuauserv
net stop bits
net stop SSDPSRV
net stop schedule
net stop usosvc

sc config wuauserv start= disabled
sc config bits start= disabled
sc config SSDPSRV start= disabled
sc config schedule start= disabled

sc config usosvc start=disabled

psexec ---s schtasks /change /tn "microsoft\windows\updateorchestrator\schedule scan" /disable
psexec ---s schtasks /change /tn "microsoft\windows\windowsupdate\scheduled start" /disable
psexec ---s schtasks /change /tn "microsoft\windows\WaaSMedic\PerformRemediation" /disable

In this document ZAV is used synonymously with MFDC (or Desktop Containers).
References:
Micro Focus Desktop Containers 12.x Documentation Site
ZENworks Application Virtualization 11 Documentation Site
ZENworks Application Virtualization 11 - Basics steps on building a virtualized application - Video Tutorial