Novell, Inc., makes no representations or warranties with respect to the contents or use of this documentation, and
specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose.
Further, Novell, Inc., reserves the right to revise this publication and to make changes to its content, at any time,
without obligation to notify any person or entity of such revisions or changes.
Further, Novell, Inc., makes no representations or warranties with respect to any software, and specifically disclaims
any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc.,
reserves the right to make changes to any and all parts of Novell software, at any time, without any obligation to
notify any person or entity of such changes.
Any products or technical information provided under this Agreement may be subject to U.S. export controls and the
trade laws of other countries. You agree to comply with all export control regulations and to obtain any required
licenses or classification to export, re-export or import deliverables. You agree not to export or re-export to entities on
the current U.S. export exclusion lists or to any embargoed or terrorist countries as specified in the U.S. export laws.
You agree to not use deliverables for prohibited nuclear, missile, or chemical biological weaponry end uses. See the
Novell International Trade Services Web page (http://www.novell.com/info/exports/) for more information on
exporting Novell software. Novell assumes no responsibility for your failure to obtain any necessary export
approvals.
Novell, Inc.
404 Wyman Street, Suite 500
Waltham, MA 02451
U.S.A.
www.novell.com
Online Documentation: To access the latest online documentation for this and other Novell products, see
the Novell Documentation Web page (http://www.novell.com/documentation).
Page 3
Novell Trademarks
For Novell trademarks, see the Novell Trademark and Service Mark list (http://www.novell.com/company/legal/
trademarks/tmlist.html).
Third-Party Materials
All third-party trademarks are the property of their respective owners.
novdocx (en) 16 April 2010
Page 4
novdocx (en) 16 April 2010
4ZENworks Application Virtualization User Guide
Page 5
2 OVERVIEW
Thank you for using Novell ZENworks Application Virtuali z a tion!
This product will allow you to convert your Windows, .NET, Java, AIR, Flash, Shockwave, or
other Windows-compatible application into a self-contained virtual application that can be
streamed from the web and run instantly on an end-user device. Unlike traditional deployment
methods, virtual applications do not require reboots, administrative privileges, or separate setup
steps for external components and runtimes. Virtual applications are isolated from other system
applications, preventing DL L conflic ts and other deployment nightmares.
This guide explains ho w to use ZENworks Application Virtualization to cr e a te your own virtual
applicati ons and begin enjoying the benefits o f this next-generation deployment technology.
7 Novell ZENworks Application Virtualization
Page 6
2.1WHAT IS A VIRTUAL APPLICATION?
A virtual application is a virtual machine image pre-configured with all o f the files, registry data,
settings, components, runtimes, and other dependencies required for a specific application to
execute immediately. Virtual applications allow applicatio n publishers and IT administrators to
significantly reduce the costs and complexity associated with development, setup, configuration,
deployment, and maintenance of software applications.
For example, a publisher of an application based on the Microsoft .NET Framework or Java
runtime engine might create a virtua l a pplication combining the applica tion with the required
runtime engine. An end-user can run this application immediately, even if the user has not
installed t he required runtime engi ne, or has an incompatible runtime engine installed. This
improves both the user experience and reduces test and support complexity associated with
deploying the application.
Because virtual applications run in isolated execution environments, it is possible to
simultaneo usly execute multiple applications which would otherwise interfere with one a nother.
For example, applications which overwrite system DLLs or require different runtime engine
versions ca n all run simultaneously on a single host device. As an additi onal advantage, virtual
applications can provide access to internal virtualized copies of privileged system resources,
allowing unprivileged users to d irectly execute many applications withou t sec urity exceptions or
irritating Vista UAC prompts.
Unlike other virtualization systems, Novell v ir tual a pplication technology:
•Does not require any "player" software or separate installation: Novell virtual
applications are executable files that run immediately on the end-user machine without
changes to system infrastructure.
•Does not incur significant processi ng or filesystem overhead: Novell low-overhead
virtualization technology allows app lic a tions to run with essentially the sa me
performance characteristics as native executables.
•Does not require any operating syste m to be installed onto the virtual application: Novell
virtual apps provide all require d virtualized operating system functionality within the
internal virtual environment.
8 Novell ZENworks Application Virtualization
Page 7
2.2 ZENWORKS APPLICATIONVIRTUALIZATION FEATURES
OVERVIEW
Use ZENworks Application Virtualization to:
•Create virtual applications that can be streamed from the web: Eliminate long downloads
and installs, and run virtual apps from any desktop with broadband Internet access.
•Create an application as a single executable that runs immediately: Package all
application files, registry settings, runti mes, and c omponents into a single executable that
runs immediately.
•Run Java and .NET without separ a te r unti me in sta lla tions: Java and /or .NET-based
applications run immediately, with no separate installation ste ps or runtime versioning
conflicts.
•Improve desktop security: Execute your applications without grant ing administrative
permissions to e nd-users. Stabilize desktop images by deploying applic a tions in
sandboxed virtual environments.
controls, and content viewers such as Acrobat, Flash, and Shockwave, directly into your
application.
•Eliminate Vista UAC prompts and compatibility errors: Deploy Novell virtual apps
regardless of access to privileged system resources, relieving users of annoying Vista
UAC prompts.
•Leverage Terminal Services and Citrix investments: By isolating applications from global
resource areas, Novell virtual application technology allows non-compliant
applications to function properly in Terminal Server and Citrix environments.
•Deploy inst antly on USB drives: Improve mobile worker productivity by placing your
Novell virtual app lic a tion onto a USB flash-memory drive. Run your application
immediately on remote PCs, with no installation steps, administrative privileges or driver
installations.
•Dramatically reduce test and support costs: Eliminate versioning conflicts, depend e ncies,
and "DLL hel l". Reduce test complexity and eliminate support requests associated with
dependency installation and inte r-application resource conflicts.
9 Novell ZENworks Application Virtualization
Page 8
2.3 DO NOVELL VIRTUAL APPL ICATIONS REQUIRE ANY DEV ICE
DRIVERS
No. Novell virtualization takes place entirely in user-mode, so no device drivers are installed or
required.
?
10 Novell ZENworks Application Virtualization
Page 9
2.4 HOW IS NOVELL VIRTUALIZATION DIFFERE NT F ROM
HARDWARE VIRTUALIZAT ION
Unlike hardware virtualization systems such as Microsoft Virtual PC and VMware, the Novell
application virtualization system virtualizes only those operating s ystem features required for
application execution. This allows virtualized app lic a tions to operate extremely efficiently, with
essentially the same performance characteristics as native executables.
Advantages of Novell virtualization over hardware virtualization include:
•Optimal performance: Novell virtual ap ps execute at essentially the same speed as
applicati ons running natively aga i nst the host hardware, with only a sma l l additional
memory footprint. By contrast, a pplications running within hardware-virtualized
environments experience significant slowdowns and impose a large memory footprint
because the virtual machine must include an entire virtualized host operating system.
•Dramatically reduced application size: Novell virtual apps require a disk footprint
proportional only to the size of the virtualized application, data, and included
components. As a result, Novell virtual apps are typically small enough to be
conveniently and quickly downloaded by end-users. Hardware virtualizatio n requires
an entire host operating system image, i nc l ud in g man y basic subsystems that are already
present on the end-user device. Eac h virtual machine may oc cupy several gigabytes o f
storage.
•Ability to run multip le virtual applications: Because of low-overhead characteristics, it is
possible to run multiple simultaneous virtual environments per processor. Conversely,
due to the high overhead of hardware virtualization, only a very small number of
hardware-virtualized environments per processor can be run.
•Reduced licensing costs: Novell does not require the purchase of separate operating
system licenses to use a virtual application. Hardware virtualization systems require a
host operating system in order function, possibly imposing additional licensing costs and
restrictions.
?
Hardware virtualization may be appropriate in certain specialized scenarios, includi ng:
•Non-Windows o perating sys t ems: Novell virtual apps run only on the Windows operating
system. Hardware virtualization can execute any operating system compatible with the
underlying virtualize d hardware , such as Linux.
•Kernel mode virtualization: The Novell Virtual OS only virtualiz es user-mode operating
system features, whereas hardware virtualization systems emulate the entire OS stack,
including kernel mode components. Applications requiring device drivers or other nonuser-mode software may require a hardware-virtuali zed envir onment to function
properly.
You should carefully evaluate the a dvantages a nd disadvant ages of different virtua lization
approaches before deciding on a technology to adopt for your deployment scenario.
11 Novell ZENworks Application Virtualization
Page 10
2.5 WHAT PLATFORMS ARE SUPPORTED?
ZENworks Application Virtualization supports the following platforms for virtual application
build, snapshotting, and execution:
• Windows XP Pr ofessional
• Windows Embedded XP
• Windows 2000 Professional
• Windows 2000 Server
• Windows Server 2003, all editions
• Windows Vista, all editions
• Windows Server 2008, all editions
• Windo ws 7
ZENworks Application Virtualization supports these oper ating systems running within VMwar e
and Microsoft hardware virtualization and hypervisor environments.
ZENworks Application Virtualization also has limited support for the Windows Preinstallation
Environment (WinPE), though certain applications depending on operating system features
unavailable in WinPE may not function properly.
ZENworks Application Virtualization creates 32- and 64-bit executables. Both 32-bit (und er 32bit mode) and 64-bit executables can be run on x64-based platforms.
12 Novell ZENworks Application Virtualization
Page 11
2.6 WHAT APPL ICATIONS CAN BE VIRTUALIZED US ING ZENWORKS
APPLICATION VIRTUALIZATION?
ZENworks Application Virtualization and the Novell virtualization engine support most major
Windows desktop applications. However, certain applications- by their nature- are unsuitable for
virtualization using Novell' s user-mode virtualization technology. These include application
features which contain or directly depend on interaction with specialized kernel-mode device
drivers or other kernel-mode extensions; operating system components and extensions; anti-virus
applications; and kernel event filtering, monitoring, and intrusion dete c tion applications.
Novell applications are compatible with most major anti-virus, runtime, and security packages
currently available.
13 Novell ZENworks Application Virtualization
Page 12
3 GETTING STARTED
This section describes the system requirements for installing and run ning ZENworks Application
Virtualization, provides an overview of the ZENworks Application Virtualization user interface,
and walks you through the basic steps of creating a virtual application.
14 Novell ZENworks Application Virtualization
Page 13
3.1 SYSTEM REQUIREMENTS
ZENworks Application Virtualization requires a Windows XP, Windows 2000 edition, or higher
operating system. The ZENworks Application Virtualization graphical interface assumes a screen
resolution of at least 800×600, although a screen resolution of at least 1024×768 is highly
recommended.
15 Novell ZENworks Application Virtualization
Page 14
3.2 CONTROL PANEL OVERVIEW
The ZENworks Application V irtualization control panel allows you to configure your virtual
application filesystem and registry, embed external runtimes and components, take snapshots of
the application, and create virtual application executables. The primary interface consists of
a ribbon bar and several panes grouped by a functional area.
Located above the ribbon bar are:
•The Start menu button- located in the circle on the top left of the window- allows virtual
application configurations to be imported, opened, applied, saved, and closed.
•The Options bar provides ZENworks Application Virtualization interface customization
options, and the ability to install license certificates
•The help bar provides access to the ZENworks Application Virtualizat io n documentation
and knowledge base, including a searchable version of this document.
The ribbo n bar accesses common ZENworks Application Virtualization features:
•The Virtual Application tab provides access to the snapshot and build features, as well
as output configuration options such as the startup file, output directory, and diagnosticmode selection.
•The Runtimes tab provides a selection of auto-configurable runtime engi nes which can
be embedded into your application with a single click. These include . NET Framework,
Java, Flash, and Shockwave runti mes.
•The Components p anel allows layering of external virtual application components, such
as toolbars and optional features.
•The Setup panel allows configuration of MSI setup packa ge and shell i ntegration
options.
• The Expiration panel allows configuration of application exp ir a tion options.
• The ZENworks panel allows configuration of ZENworks Application Virtualizatio n
Startup and Bundle Publishing features.
16 Novell ZENworks Application Virtualization
Page 15
Note: ZENworks Application Vir tualiz a tion users are individually responsible for assuring
compliance with licensing for a ny third-party redistributable components included using
virtualization.
17 Novell ZENworks Application Virtualization
Page 16
3.3 METHODS OF CREAT ING VIRT UAL APPL ICAT IONS
ZENworks Application Virtualization offers three ways to create and configure virtualized
applications. The best method in a given scenario depends on the nature of the application to be
virtualized.
•Use an application template: ZENworks Application Virtualization includes templates for
popular applications which can be built and customized using a guided, step-by-step
process. This method is recommended for first-time users of ZENworks Applicatio n
Virtualization.
•Install via application snapshot: Snapshotting captures system state before and after an
application is installed and aut omatically configures virtual application settings based on
observed system changes. This method is ideal for virtualizing off-the-shelf applications
(Refer to the sub-section “Snapshotting applic ations” in t he “Configuring virtua l
applications” section for more information on this method).
•Manually configure an application: This method is most often used by developers
virtualizing internal ly developed applications. Manual configuration requires a high
degree of technical knowledge but allows the maximum a mount of control over vi rtual
application settings (Re fer to the sub-se c ti on “M a nua l l y confi gur i ng a si mple vir t ua l
application” in the “Walkthroughs” section for more information on this method).
All methods allow additional c onfiguration and customization once the initial virtual application
configuration has been constructed.
18 Novell ZENworks Application Virtualization
Page 17
3.4 CREATING YO UR FIRS T VIRTUAL APPL ICAT ION
ZENworks Application Virtualization includes automated virtual application configuration
wizards for certain popular software applications. Novell recommends that first-time users begin
by building one of these auto-configurable virtual applications using the ZENworks Application
Virtualization Configuration Wiz ard .
To build an auto-configure d application:
•Open the ZENworks Application Virtualization Configuration Wizard. The wizard is
displayed on program startup, or can be opened by pressing the Configuration Wizard
button on the Virtual Application ribbon bar.
• Click on the box labeled Build a virtual application from a template.
• Select an application to virtualize from the Application dropdown. Some applications
may require download of additional configuration information or source application
media.
•Follow the wizard steps to construct the virtual application.
After completing the wizard, the virtual application configuration will remain loaded in the
ZENworks Application Virtualization interface. This allows the configuration settings generated
by the wizard to be inspected and additional customization to be performed (Refer to the following
sections “Configuring virtual applications” and “Customizing virtual applications” for more
information on configuration and c ustomization).
Congratulations on building yo ur first virtual application!
19 Novell ZENworks Application Virtualization
Page 18
3.5 CONFIGUR ING V IRTUAL APPLICATIONS
Virtualization allows application deployment to be dramaticall y simplified by allowing files,
registry settings, components, and other application dependencies to be directly embedded into the
application executable. Use of Novell virtualization reduces setup complexity, prevents DLL
collisions, and allows applications to simulate the use of privileged disk and registry resources
without requiring ad mi nistrative privileges on the host machine.
20 Novell ZENworks Application Virtualization
Page 19
3.6 SNAPSHOTTING APPLICATIONS
Most commercial applications require complex combinations of files ystem and registry entries in
order to function properly. In order to facilitate virtualization of these application s, ZENworks
Application Virtualization can snapshot application installations and automatically configure them
based on modifications made to the host system during application setup.
3.6.1 Snapshotting
Snapshotting uses "before” and “after" images of the host machine to determine the virtual
application configuration:
•“Before” snapshot: Taken prior to installing the application. This captures the state of the
host device without the target application installed.
•“After” snapshot: Taken after installing the application. Thi s captures a ll changes to the
host device during application installation. ZENworks Applic a tion Virtualization then
computes the changes, or deltas, between the before and after snapshots, and inserts these
changes into the configuration.
To use the sna pshot feat ure:
•Prepare the host device by either removing the target application and all dependencies, or
copying ZENworks Application Virtualization onto a "clean" machine.
•Click on the Virtual Application tab on the ribbon bar and click Capture Before. This
captures the "before" snapshot image. Snapshotting iterates through the filesystem and
registry, and therefore may take several minutes to complete.
•(Optional) Novell recommends you save the "before" snapshot before continuing. This
allows you to skip this s te p whe n snap s ho tt i n g sub seq uent applications from the same
clean machine image. To save the snapshot, click on the down arrow underneath the
Capture Before button and select Save Snapshot . Note that while ZENworks
Application Virtualization auto matically saves the most recent captured "before"
snapshot, this snapshot is reset once the Capture and Diff process is complete.
•Install your application along with o ther files, settings, runtimes, and c omponents you
wish to include in the virtual app lic a tion (Refer to the following sub-section “Adding
runtimes and components” for more information on additional configuration). If the
application setup requests a reboot, be sure to save the "before" snapshot and then
proceed with the reboot.
•On the Virtual Application tab on the ribbon bar, click Capture and Diff. This
captures the "after" snapshot, computes the deltas between the two snapshots, and
populates the virtual applicatio n with the delta entries.
•(Optional) Review the files ystem and registry entries, and remove any files or settings
which are not required for proper execution of your virtual application. Remo vi ng un used
entries will reduce virtual applica tion size, but be sure to avoid accidental removal of
required resources, as it will cause your virtual application to no longer function properly.
3.6.2 Saving snapshots
21 Novell ZENworks Application Virtualization
Page 20
In many cases, the desired "before" snapshot remains fixed while many "after" snapshots are
taken. ZENwork s Application Virtualization allows you to save the "before" snapshot image so
that the snapshot does not need to be re-captured each time. Because snap s hotting may t ake
several minutes, this significantly reduces the time required to build virtual applications in this
scenario.
To save the "before" snapshot, click on the down arrow underneath the Capture Before button on
the Virtual Application r ibb on bar and select Save Sna pshot from the dropdown menu. Select
an appropriate filename and location and press Save. Similarly, to load a saved snapshot, select the
Load Snapshot menu item and navigate to the saved snapshot file. To clear the current "before"
snapshot image, select the Clear Snapshot menu item.
22 Novell ZENworks Application Virtualization
Page 21
3.7 ADDING RUNT IMES A ND COMPONENTS
Many components and runtime systems consist of large, complex sets of filesystem entries and
registry settings. To simplify confi guration of the most co mmon components, ZENworks
Application Virtualization con ta ins a collection of pre-configured component settings which can
be added to your virtual application with a single click.
Additional runtimes and components should be added to the virtual application during the
snapshot process, before the “After” snapshot has been taken.
To add a r untime or component:
• Click on the Runtimes tab on the ribbon bar.
• Click on the appropriate runtime or component to select it for inclusion. Selected
components are indicated with a highlighted button. To r emove a component, click on the
button agai n. This toggles the component inclusion state.
For example, if your application is a .NET Framework 2.0 application, then selecting the .NET Framework 2.0 component will allow your executable to run on machines without the .NE T
Framework installed.
Note: Depending on the size of the component, selecting a component for inclusion can
significantly increase the size of the resulting executable. Therefore, you should onl y select
components which are required for proper execution of your application.
Note: You are responsible for assuring compliance with licensing for any third-party
redistributable components included in your virtualized applica tion.
3.7.1 Configuring the Java runtime
ZENworks Application Virtualization provides specialized support for the Java runtime. If your
application is based on Java runtime, press the Sun Java Runtime button on the Runtimes ribbon
bar. This displays the Java c onfiguration menu.
Select the appropriate version of the Java runtime from the Java runtime version dropdown. If
you are deploying your application as a set of .class files, then select the Class option from the
Startup type dropdown; if you are deploying within a .jar file, select the Jar option. Enter
the startup class name or Jar name in the appropriate textbox, along with any additional Java
runtime options.
23 Novell ZENworks Application Virtualization
Page 22
3.8 LOADING AND S AV ING CONFIGURATIONS
Once you ha ve configured your virt ual applicat ion, and taken your “After” snapshot, you will
likely want to save the configuration for future use or modification. It is important to save the
virtual application snapshot in its original state in case erro rs are introduced during virtual
application customization and optimization. This also allo ws the application to be tested and
modified without the need to re-snapshot after each iteration.
To save a co nfiguration:
• Click on the Start button menu and select Save Configuration As...
• Select a filename and location and click Save. This saves the virtual application
configuration file. By default, configuration fi les use the extension .xappl.
Note: Configuration files do n ot store the contents of virtual filesystem files. The configuration
file specifies only the source path for each virtual filesystem entry. The source file must exist at
build time or the virtual applicatio n will not build successfully.
ZENworks Application Virtualization automatically stores source file locations as paths r e la tive to
the location of the saved XAPPL file, in the same directory as the XAPPL file (the folder marked
Files).
Note: ZENworks Application Virtualization users can create their own default settings for
application building by saving a XAPPL file with a few cust omization settings (E.g. changing the
default sandbox location) and no associated application, then loading this XAPPL file (and saving
as a new file) before beginning the snapshot process in a new project.
24 Novell ZENworks Application Virtualization
Page 23
3.9 SPECIFYING A STARTUP FILE
The virtual filesystem may contain a large number of executable files (such as .exe, .cmd, and
.java) and viewable file formats (such as .html and .swf). Ho wever, your virtual application is
consolidated into a single executable. It is therefore necessary for the virtual application designer
to indicate a startup file- the executable or viewable file which is opened when the user executes
the virtual application.
A startup file should be specified after the application has been installed and configured with
runtimes, and the “After” snapshot has been taken.
To select the startup file:
• Click on the Vir tual Application tab on the ribbon bar.
• Click on the St artup File dropdown list. This displays a list of all files in the virtual
filesystem.
•Select the file to be used as the startup file, or navigate to the desired startup file in the
virtual filesystem display, right-cl ick the file, and select Set as Startup File.
Files located on the host device (o utside of the virtual filesystem) may also be used as startup
files. To select a file on the host device a s the startup file, enter the full path to the desir e d startup
file in the Startup File text box. Remember to use well-known root folder variables such as
@WINDIR@ and @PROGRAMFILES@ as the root of the full path to ensure that the startup
file can be properly located on all base operating systems.
Note: While any file can be selected as the startup file, you should only select a file which is
executable or viewable. Selecting a file which cannot be opened will cause an error when the
virtual application is started.
In some situations, a virtual app lic a tion may want to expose multiple start up files. For example,
when using a virtuali zed office productivity suite, one may want to launch either the word
processor, spreadsheet, or presentation component of the suite, while still deploying a single
executable file.
ZENworks Application Virtualization enables this scenario b y allowing multiple entry points into
the virtual application to be triggered based on a command-line argument to the virtual application
executable. For example, in the office suite scenario described above, one might use the command
line argument office word to trigger the word processor and office spreadsheet to trigger the
spreadsheet (Refer to the sub-section “Building OpenOffice via snapshot process” in the
“Walkthroughs” section for an example of Jukeboxing during the OpenOffice build process).
To specify multiple startup files:
•Click the Multiple button nex t to the Startup File textb ox on the Virtua l A pplication
ribbon bar. This displays the Startup Files selection dialog.
•Click on the File column on the first empty row in the startup file list and select the
desired file from the dropdown list. Files located on the host device (outside of the virtual
filesystem) may also be used as startup files. To select a file on the host device as the
startup file, enter the full path to the de sire d startup file in the Startup File text box.
• Enter the desired command line arguments, if any, in the Command Line column.
• Enter the desired command line trigger in the Trigger column. For example, in the
command li n e office word, the trigger would be word.
•Check the Auto Start checkbox if you want the startup file to always be automatically
launched on virtual applicatio n startup.
•After adding a new startup file, hit Enter in order to save
Note: When specifying a startup file lo c a te d outside of the virtual filesystem, r emember to use
well-known root folder variables such as @WINDIR@ and @PROGRAMFILES@ as the root
of the full p ath to ensure that the star tup file can be properly located on all base operating systems.
Note: The Auto Start flag can be specified for multiple startup files to automatically launc h
multiple applications that are t ypically used together in a single sessio n (a lso known as
"shotgunning").
26 Novell ZENworks Application Virtualization
Page 25
3.11 EDITING THE VIRTUAL FILESYSTEM
ZENworks Application Virtualization allows you to embed a virtual filesystem into your
executable. Embedded files are accessible by your ZENworks Application Virtualizationprocessed application as if they were present in the real filesystem. However, virtual files- unlike
actual files on the host device- are not visible from and do not require changes to the host device.
In particular, the use of virtual files does not require a ny security privileges on the host devi ce,
even if the virtual files reside in a privileged directory such as the Windows dire c tory. Also,
because virtual files are embedded in the application executable, shared DLLs embedded in the
virtual filesystem will not inte rfere with or be overwritten by other applic a tions on the host device.
To add virtual files:
•Click on the Filesystem button located on the left side of the ZENworks Application
Virtualization window.
•Using the view on the rig ht, add the files and folders you wish to embed in the
application executable. The Application Directory root folder represents the folder
containing the virtual application binary on the executing device; the other root folders
represent the corresponding folders on the host device.
3.11.1 Virtualization Semantics
In the event of a collision between a file in the virtual filesystem and a file physica lly present on
the host device, the file in the virtual filesystem takes precedence.
Folders may be virtualized in Full, Merge, or Write Copy mode:
•Full mode: Only files in the virtual filesystem will be visible to the applica tion- even if a
corresponding directory exists on the host device- and writes are redirected to the
sandbox data area. Full mode is generally used when a complete level of virtual
application isolation is desired .
•Merge mode: Files present in a virtual folder will be merged with files in the
corresponding directory on the host machine, if such a directory exists. Writes to host
files are passed through to the host device and writes to virtual files are redirected into the
sandbox data area. Merge mode is generally used when some level of interaction with the
host device is desired. For example, Merge mode might be used to allow the virtualized
application to write to the host de vice' s My Documents folder.
•Write Copy mode: Files present on the host device are visible to the virtual environment,
but any modifications to folder contents are redirected to the sandbox data area. Write
Copy mode is generally used when a virtual application needs to read from files already
present on the host device but isola tion of the host device is still desired.
Tip: To apply the selected isolation mode to all sub folders, right-click on the folder, choose
Isolation, click on the checkbox for Apply t o subfolders, and c lick OK.
3.11.2 File At tributes
27 Novell ZENworks Application Virtualization
Page 26
Files and folders may optionally be hidden from shell browse dialogs and other applications
enumerating virtual directory contents. This is often used to prevent internal components and data
files fro m being displayed to the user. To hide a file or folder, click on the checkbox in the
Hidden column next to the desir e d file or folder.
Note: Enabling the hidd en flag only prevents a file or folder from being displayed in browse
dialogs or from directory enumeration APIs. It does not prevent the application, and therefore
potentially the end-user, from accessing the folder or file contents by direct binding.
Flagging file s and folders as read-only will pre vent the application from modifying the file or
folder contents. To make a file or folder read-only, click on t he checkbox in the Read Only
column next to the desired file or folder.
3.11.3 Sandbox Upgradeable Files
By default, ZENworks Application Virtualization allows files in t he virtual filesystem to be
upgraded with patches ( refer to the topic “Updating a Virtua l App lic a tion” in the “Registering
virtual applications in the Windows shell” section for more information o n ap plication updates).
The Upgradeable flag will allow a specific file or folder to be patched in the sandbox at runtime.
To automatically allow a file or group of files to be upgraded, leave the Upgradeable checkbox in
the column next to the desired file or folder checked.
3.11.4 Filesys te m Co mpress io n
To reduce executable size, ZENworks Application Virt ualization can compress virtual files ystem
contents. This typically reduces virtual application payload size by approximately 50%, but also
prevents pr ofiling and st reaming of the app. By d efault, the Compress Payload option in the
Process Configuration area of the Settings panel is unchecked. This option should remain
unchecked during the build process in order to be able to profile and stream applications.
Note: Disabling payload compression may significantly increase the size of the virtual application
binary.
28 Novell ZENworks Application Virtualization
Page 27
3.12 EDITING THE VIRTUAL REGISTRY
ZENworks Application Virtualization allows you to embed a virtual registry into your
executable. Embedded registry keys are accessible by your ZENworks Application Virtualizationprocessed application as if they were present in the real registry. Unlike data present in the registry
on the host d evice, virtual registry keys and values are not visible from and do not require changes
to the host device. In particular, the use of a virtual re gistry does not require an y security
privileges on the host device, even if the virtual registry entries reside in a privileged section of the
registry, such as HKEY_LOCAL_MACHINE. Also, because virtual registry entries are
embedded in the application executable, other applications ar e unable to disrupt application
execution by inadvertent modification of registry entries required by the application.
To add virtual registry data:
•Click on the Registry button located on the left side of the ZENworks Application
Virtualization window.
•Using the view on the right, add the registry keys a nd values you wish to e mbed in the
application executable. When adding blob data, enter the values in hexadecimal format.
The Classes root, Current user root, Local machine, and Users root folders corres pond to the
HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, and
HKEY_USERS keys on the host machine.
Registry strin g va lue s may include well-known root folder variables such as
@PROGRAMFILES@ and @WINDIR@.
3.12.1 Virtualization Semantics
In the event of a collisio n between a key or value i n the virtual filesystem and data present on the
host device registry, information in the virtual registry takes precedence.
Keys may be virtualized in Full or Merge mode:
•Full mode: Only values in the virtual registry will be visible to the applic a tion- even if a
corresponding key exists on the host device- and writes are redirected to the user registry
area.
•Merge mode: Values present in a virtual key will be merged with values in the
corresponding key on t he host machine, if such a key exists. Writes to host keys are
passed through to the hos t registry and writes to virtual keys are redirected to the user
registry area.
Tip: To apply the selected isolation mode to all subkeys, right-click on the key, choos e Isolation,
click on the checkbox for Apply to subkeys, and click OK.
3.12.2 Importing Registry Hive Files
ZENworks Application Virtualization can import registry hive (.reg) files into the virtual r egistry.
To import a .reg file, click the Import button in the Registry panel and select the registry hive file
to be imported.
29 Novell ZENworks Application Virtualization
Page 28
3.13 EMBEDDING A DATABAS E ENGINE
ZENworks Application Virtualization allows SQL Server 2005 Express to be embedded directly
into the executable file. This allows executables to run a SQL Server user-instance for a virt ual
.mdf database file.
3.13.1 Selecting a database e ngine to embed
To select SQL Server 2005 Express:
• Click on the Runtimes butto n on the ribbon bar.
• Click on the dropdown next to the Embed SQL Server Express option. T his disp lays a
list of supported SQL Server Express engines.
•Select an engine which is appropriate for your database.
Selecting a database engine displays the database configuration dialog. Selecting the Do not
embed SQL Server Express option disables this feature.
3.13.2 Configuring your application to use an embedded database
The code displayed on the database configuration dialog provides an example of how to create a
connection string for connecting to the user-instance database that loads an .mdf file from the
virtual filesystem.
The virtualized SQL Server 2005 Express default instance name is stored in a special environment
variable named %SQLSPOON%. A unique instance of this name is created at build time and is
not user-configurable.
To embed a database file:
• Verify that the desired .mdf database file has been added to the virtual filesystem.
• Choose the .mdf database file to attach using the AttachDBFilename dropdown. This
path is stored in the %AttachDBFilename% environment variable.
To manually modify this selectio n at a la te r time, click the E nvironment Variables button on the
Process Configuration tab of the Settings pane.
Note: The .NET 2.0 Framework is automatically included when SQL Server Express 2005 engine
is selected. SQL Server 2005 Express requires this component to be installed. If this component is
removed, the application will onl y run on machines that have the .NET Framework 2.0 installed.
30 Novell ZENworks Application Virtualization
Page 29
3.14 CREATING AND USIN G SHARE D VIRT UAL COMPONENTS
In some scenarios, multiple virtual applications may share a common set of virtual machine
configuration options. For example, multiple applications often shar e a c ommon set of
component s or runtime engines; or system administrators may want to share a c ommon set of
configuration options (browser bookmarks, application settings, etc.) across a department or
enterprise. ZENworks Application Virtualiza tion makes it easy to create, share, and consume
virtual machine settings acros s multiple Novell vir tual applications using Novell SVM-format
virtual components.
To create a shared virtual component:
•Configure the virtual application settings exactly as in the case of a standard virtual
application (i.e. using snapshotting, manual configuration, etc.).
• On the Settings pane, select Component from the Project type dropdown.
• Press the Build button.
In Component mode, the build process results in creation of an SVM file instead of an executable
file. An SVM contains the virt ual application settings and data pa yload. SVM files are similar to
virtual executable outputs, exce pt that SVM files do not contain the Novell virtual machine
runtime engine. Therefore, an SVM can only be used when combined as part of another virtual
application.
To use an existing shared virtual component:
• Click on the Components butt on to navigate t o the project compone nts pane.
• If the component does not already appear in the components table, click Import
Components...
•Select the SVM file you wish to load into your project, and click OK. The SVM is then
loaded into your project and the layer metadata is displayed in the Components list.
•Select the checkbox next to the desired component.
Project virtualization settings take precedence over virtualization settings in any loaded shared
components.
To remove a shared virtual component from the project, select the component and click the
Remove Component button.
31 Novell ZENworks Application Virtualization
Page 30
3.15 SANDBOX MERGE
Sandbox merge allows sandbox cont ent and sett ings genera ted during virtual appli cation execution
to be applied to a ZENworks Applicatio n Virtualization configuration. S and b o x mer ge is a n
alternative to manual registry or filesystem configuration, and is p a rticularly useful for applying
additional customizations to e xisting virtual application confi gurations or configurations generated
from a virtual application templa te .
To merge an existing sandbox into the active con figuration:
Click the Sandbox Merg e button in the Tools section of the Virtual Application toolbar.
• Enter the path of the sandbox to be merged into the current configuration.
• Click OK.
For example, to customize the home page of the Firefox virtual application template:
•Use the Configuration Wizard to create a Firefox virtual application. (The wizard
allows customization of the home page, but we will later use the sandbox merge feature
to override the setting specified in the wizard.)
• Press Build and Run to launch the virtualized Firefox application.
• Using the Firefox interface, specify a new browser home page.
• Exit the Firefox virtual applica tion.
• Press Sandbox Merge to display the s andbox merge dialog. The sandbox path will be
pre-populated with the location of the Firefox virtua l sandbox.
•Click OK.
The virtual application settings are updated with the configuratio n changes made during Firefox
execution, i ncluding the updated browser home page.
32 Novell ZENworks Application Virtualization
Page 31
4 VIRTUAL APPLICATION CUSTOMIZATION
This section describes advanced virtual application customization options, such as executable
metadata, startup images, command-line arguments, and process startup options.
33 Novell ZENworks Application Virtualization
Page 32
4.1 SELECTING A PROJECT TYPE
ZENworks Application Virtualization supports two project types:
Application: A virtual application project produces an executab le file o utput (.exe file) that can be
run directly from the operating system. Application output mode is appropriate for most users and
is the default selection.
Component: A component project produces an SVM output (.svm file). SVM is a binary file
format encoding all virtual application configuration and c ontent into a single binary file. SVMs
cannot be executed directly from the operating system. SVMs are used to exchange virtual
application and component data between multiple virtual applications.
To set the project type, press the Settings button and select the appropriate option from the
Project type dropdown.
34 Novell ZENworks Application Virtualization
Page 33
4.2 CUSTOM IZING EXECU TABL E MET ADATA
Executable metadata provides external applications such as the Windows shell with information
regarding the application's identity, publisher, version, preferred display icon, and
description. Metadata may be viewed and edited by clicking on the Properties tab of the Settings
pane.
4.2.1 Standard metadata
Standard metadata includes information such as the product title, publisher, description, icon, web
site URL, a nd version. By default, ZENworks Application Virtualization will apply metad a ta
inherited from the virtual applicatio n startup file to the output virtual applic a tion
executable. However, in some insta nces, it may be desirable to override the metadata.
To manually override executable metadata:
• Uncheck the In herit properti es option
• Enter the desired metadata in the appropriate fields in the Properties area.
To revert to the default inheritance behavior, recheck the Inherit properties option.
4.2.2 Custom metadata
In addition to standard Windows shell metadata, ZENworks Application Virtualization allows
introduction of custom metada ta into the output e xecutable. Custo m metadata may be used by
specialized external executable viewer applications, inventory scanners, and other asset and
licensing management systems.
To add or modify custom metadata:
• Click the Custom Metadata... button. This displays the Custom Metadata dialog.
• Enter the custom metadata property names and values into the dialog. Only string-type
custom metadata values are supported.
For information on programmatically reading custom executable metadata, please consult the
Microsoft Windows Software Develo pment Kit.
35 Novell ZENworks Application Virtualization
Page 34
4.3 ADDING A ST ARTUP IMAGE
ZENworks Application Virtualization allows you to specify a startup "splash" image to be
displayed during virtual application startup . Startup images improve application branding and are
especially useful if your application requires several seconds to initialize.
To add a startup image:
• Click on the Startup Settings tab of the Settings pane
• Click the Select... button next to the Splash Image textbox.
• Navigate to a BMP-format image to use as the startup graphic, and click Open.
If you wish to remove the current star tup image, click the Reset button.
4.3.1 Transparency k eying
Transparency keying all ows the startup image to contain transparent regions. Transparencies can
improve the visual effe ctiveness of your start up image.
To select the transparency key color:
•Click the Select... button next to the Transparency key label. This displays the
transparency key selection dialog.
•Select the color which represents transparent regions in the startup image and click OK.
4.3.2 Previewing th e star tup i mage
To preview the startup image, press the Preview button. Previewing is particularly useful to
assure that the transparency key has been set properly.
36 Novell ZENworks Application Virtualization
Page 35
4.4 PROCESS CO NFIGUR AT ION OPTIONS
ZENworks Application Virtualization provides several options that control the startup of the
primary and child processes. Options can be accessed by clicking the Settings button, then
clicking the Process Configuration tab.
4.4.1 Command line arguments
By default, command line arguments specified by the user upon virtual application execution are
passed to the virtual application startup executable. However, it is possib le to override this
behavior and specify a fixed set of command line arguments to be passed to the startup
executable. For example, one can use this option to specify Java virtual machine behavior.
To specify an explicit command-line:
• Click on the Settings button
• Click on the Process Configuration tab
• Enter the command-line arguments i n the Command line textbox.
Note that these arguments override any arguments that might be specified by the end -user.
4.4.2 Working direct ory
The working directory setting determines the active directory at the time the virtual application
process is launched.
The Use startup file directory option sets the working directory to the directory of the virtual
application startup file. In the case of a jukeboxed application, the working directory is set to the
directory of the startup file specified on the jukebox command line.
The Use current directory option sets the working directory to the directory from which the
virtual application is launched .
The Use specified path option allows an explicit wor king directory to be specified. The working
directory specification can include environment and well-known root folder variables.
By default, the working directo r y is set to the directory of the startup file.
4.4.3 Application type
Windows applications may execute in either the GUI- or console-mode subsystems. If you have
selected an executable startup file, ZENworks Application Virtualizatio n will automatically
configure the virtual application to execute in the same subsystem as the st artup file. However, if
you have selected a non-executable startup file, it may be necessary for you to manually override
the application type. Most applica tions execute in the GUI subsystem.
To override the application type, select the appropriate mode from the Application type
dropdown in the Process Configuration section of the Settings panel. The Inherit mode sets the
application type based on the type of the startup file, if possible.
4.4.4 Target architec ture
37 Novell ZENworks Application Virtualization
Page 36
The Target architecture option matches the structure of the virtual environment to the desired
host process architecture.
x86: Use this option for applications that were snapshotted on x86 systems. This option maps the
Program Files directory to C:\Program Files on x86 systems or to C:\Program Files (x86) on
x64 systems. .NET applications always run as 32-bit applications.
x64: Use this option for applications that were snapshotted on x64 systems. This option maps the
Program Files directory to C:\Program Files on x64 systems. The Program Files (x86)
directory is mapped to C:\Program Files on x86 systems and C:\Program Files (x86) on x64
systems. .NET applications run as 32-bit applications on x86 systems a nd 64-bit applications on
x64 systems.
Any CPU: Use this option for .NET a pplications that are compiled to run on any CPU
architecture. This option maps the Program Files directory to C:\Program Files on x86 systems
and C:\Program Files on x64 systems. .NET applications run as 32-bit app lic a tions on x86
systems and 64-bit applicatio ns on x64 syste ms.
4.4.5 Environment variables
Some applications may depend on the presence of certain Windows environment variables in
order to function properly. ZENworks Application Virtualization allo ws virtualization of
environment variables to supp ort such applications.
To add or modify virtual environment variables:
•Click the Environment Variables... button. This displays the Environment Variables
dialog.
•Enter environment variable names and values into the environment variable list.
Most virtual environment variables overwrite any environment variables defined in the host
environment. However, the special PATH and PATHEXT environment variables are always
merged with the corres ponding host environment variables.
Environment variables are automatically captured and merged during the snapshotting delta
process. Therefore, it is generally unnecessary to manually configure environment variable
settings.
4.4.6 Virtual servic es
Windows services are specialized applications that execute in the background and are typically
responsible for providing system services such as database services, network traffic handling, web
request processing, and other server functionality. Many applications install and require specific
services in order to function properly.
ZENworks Application Virtualization fully supports virtualization of Windows services. To vi ew
or modify virtual service settings, press the Virtual Services... button. T his displays the Virtual Services dialog.
38 Novell ZENworks Application Virtualization
Page 37
The Name fie ld specifies the internal name of the virtual service. For example, the Windows web
server would use the name w3svc.
The Friendly Name field specifies the full displa y name of the service displayed to end users. For
example, the Windows we b server fri endly name is World Wide Web Publishing Service.
The Command Line field specifies the full command line (including the service executable name
and any parameters) used to launch the service.
The Auto Star t flag indicates whether a virtual service automatically starts during virtual
application startup, or whether the service must be launched manually or by the virtualized service
control mana ger .
The Keep Alive flag indicates whether the virtual service process is automatically terminated
when the primary application executable terminates, or whether the service (and, therefore, the
host virtual application executable) continues to run u ntil the service terminates itself.
Service installation and settings are automatically captured during the snapshotting
process. Therefore, it is generally unnecessary to manually configure virtual service settings. The
primary exception is the case of virtualized applications intended to run as background worker
services (for example, virtualized web servers); in this case, it is often required to explicitly enable
the Keep Alive option.
4.4.7 Child processes
Some applications spawn new child processes during the course of their execution. Depending on
the virtual application context, it may be preferable for such child processes to be created either
within the virtual application, or outside of the virtual application in t he host operating system.
Child processes include processes spawned to service COM local server requests.
Note: Child processes created outside of the virtual application will not have access to virtualized
filesystem or registry contents . However, these processes will be able to access or modify host
operating system contents, even if this would otherwise be forbidden by the virtual application
configuration.
By default, child processes are created within the virtual application. To force child processes to
be created outside of the virtual application, uncheck the Spawn child process within virtualized environment option. COM local servers can optionally be created within the virtual application
context. To force COM local servers to be created outside of the virtual application, uncheck the
Spawn COM servers with virtualized environment option.
Exceptions to the child process virtualization behavior specified by the Spawn child process within virtualized environment and Spawn COM servers within virtualized environment
flags can be enumerated in the Child Process Exception List. Process names listed in the child
process exception list behave opposite to the master child process virtualization setting. To edit the
child process exception list, click the Child Process Exception List button. Process names may or
may not include the process filename extension.
39 Novell ZENworks Application Virtualization
Page 38
4.4.8 Read-only virtual environ ments
In some scenarios, it may be desirable to prevent the user from making any modifications to the
virtual environment, including the virtual filesystem and registry.
To block all modifications to the virtual environment, check the Virtua l e nvironment is read-
only option.
4.4.9 Automatic sandbox reset
The sandbox can optionally be configured to be reset automatically on application shutdown. An
application publisher may wa nt to do this to assure that any changes made to an application's
settings are reverted when the application closes.
To enable the automatic sandbox reset feature, check the Delete sandbo x on application
shutdown option.
4.4.10 Compress Payload
Both the application profiling and streaming processes require that packages be built
uncompressed.
To build applications without compre s sio n, leave the Co mpress Payload option unchecked.
4.4.11 Startu p ex ecuta ble o pt imi zation
The Enable startup executable optimization option attempts to launch t he star tup executable
within the initial virtual machine proc e ss. This prevents the creation of a separate application
process but may be incompatible with some applications.
4.4.12 ZAV command-line arguments
ZENworks Application Virtualization supports command-line arguments of the form /x[arg]
which modify virtual application behavior at run-time. In rare instances, these arguments may
collide with command-line arguments designed for use by the virtualized application.
To disable processing of these arguments, u ncheck the Enable ZAV command-line arguments
option.
4.4.13 Window class isolation
The Enable window class isolation option prevents the virtualized applica tion from viewing
window classes that have been registered by external processes. For example, this option may be
used to prevent interaction between virtualized and non-virtualized versions of the same
application when the application checks for existing class registrations.
4.4.14 Enhan ced DEP compatibility for legacy appli cations
The Enhanced DEP c ompatibility for legacy applications option provides compatibility for
systems with Data Execution Protection (DEP) enabled. This co nfiguration option is used
primarily for virtual applications running on Windows 2003.
4.4.15 Internet Explorer 6 emulation mode
40 Novell ZENworks Application Virtualization
Page 39
Due to its integration with certa in s hell features, specialized virtual machine support is required to
properly virtualize Microsoft's Internet Explorer 6 web browser. The Enable Internet Explorer 6 emulation option provides suc h shell functionality. This mode must be enabled whe n virtualizing
the Internet Explorer 6 web browser for use on the Microsoft Windows Vista operating system and
later operating systems.
Note: Due to the c omplexity of properl y configuring Internet Explorer 6 virtualizatio n s ettings,
Novell stro ngly recommends that the ZENworks Application Virtualization Configuration Wizard
be used to configure Internet Explorer 6 virtual applications. The Internet Explore r 6 virtual
application wizard can be started by selecting the Build an auto-configured virtual application
option from the wizard start page and then selecting Microsoft Internet Explorer 6 from the
Application dropdown.
41 Novell ZENworks Application Virtualization
Page 40
4.5 CONFIGUR ING THE S ANDBOX LOCAT ION
Depending on the configured isolation settings, certain edit and write operations may be redirected
by the Novell vi rtualization engine into an application sandbox- a filesystem folder where isolated
modifications are persisted. Typically, the sandbox is located in a folder or network share where
the user has full read and write permissions, allowing sandbox contents to be accessed and
modified by the end user without any authentication or UAC prompts.
4.5.1 Sandbox placement considerations
Please note the following recommended practices when configuring the sandbox location:
By default, the sandbox is placed in the
@APPDATALOCAL@\Novell\Sandbox\@TITLE@\@VERSION@ folder, where the
@APPDATALOCAL@ token represents the local Application Data folder, and @TITLE@,
and @VERSION@ represent the application title and version respectively. The ap plication title
and version are configured in the Properties area. This location is the recommended default
location for sandbox co ntents, as end users have full permissions to this location on standard
Windows configurations. Note that distinct builds of the same virtual application use the s ame
sandbox locations by default; you may want to modify this behavior if persisted user settings
should not be preserved between virtual application updates.
When publi s hing a new version of a virtual applic a tion, direct the sandbox to the same location as
the older version if you want user settings and data to be retained in the new version. D ir e c t the
sandbox to a different location (typically, by rolling the subdirectory version number forward) if
you want user settings and data to be reset.
If deploying the virtual application on a USB device, place the sandbox in a subfolder of the
@APPDIR@ directory, which represents the location of the virtual application executable. This
will have the effect of directing writes to the USB device. The recommended sandbox location for
USB deployment is:
@APPDIR@\Novell\Sandbox\@TITLE@\@VERSION@
If deploying the virtual applicatio n o n an intranet file share, place the sandbox in a user-accessible
subfolder on a shared network drive. The recommended sandbox location for intranet deployment
is:
\\ServerName\ShareName\%USERNAME%\Novell\Sandbox\@TITLE@\@VERSION@
Generally, you should not place the s andbox unde r any privileged folders, such as @WINDIR@
or @PROGRAMFILES@. The virtual application may fail to execute properly if the Novell
engine is unable to write to the sandbox location at runtime.
Environme nt variables may be referenced with in the sandb ox location by enclosing the varia ble
between percent signs, i.e. %VARIABLE%.
4.5.2 Sandbox location variables
In addition to the standard root folder variables, the sandbox location can contain the following
token variables:
42 Novell ZENworks Application Virtualization
Page 41
@TITLE@: Product title
@PUBLISHER@: Product publisher
@VERSION@: Full version string, in dotted quad format
@WEBSITE@: Publisher web site
@BUILDTIME@ Virtual application build time, in a format similar to 2008.02.01T08.00.
With the exception of the @BUILDTIME@ variable (set automatically), these variables are
based on the values specified in the Properties area of the Settings pane.
43 Novell ZENworks Application Virtualization
Page 42
5 BUILDING MSI SETUP PA CKAGES
ZENworks Application Virtualization includes the ability to generate Mic rosoft Windows Installer
(MSI) setup packages to facilitate deployment of virtualized applications. In addition to deploying
the virtual application executable file to the host filesystem, ZENworks Application
Virtualization-generated MSI packages also allow creation of desktop and Start Menu shortcuts,
creation of shell file extension a ssoc ia tions to virtualized applications, and Control Panel
uninstallers for application cleanup.
This section describes configuration and build processes for MSI setup packages.
44 Novell ZENworks Application Virtualization
Page 43
5.1 CONFIGUR ING PACK AGE INFORMATION
This section describes global MSI package configuration options. These options are located on
the MSI root tree node of the Setup settings pane.
5.1.1 Setting the MSI pack ag e loca tion
The MSI package generated by ZENworks Application Virtualization will be written to the file
specified in the Output Location textbox. This textbox should contain the fully qualified name of
the desired output file, including the output path and MSI file name.
By default, MSI packages are not automatically generated or updated when the virtual application
is rebuilt.
To automatically update MSI packages after the virtual application is rebuilt, check the
Automatically generate MSI after successful application build option.
Regenerating MSIs may significantly increase the time required to complete the build
process. Therefore, Novell recommends that this option be disa bled during the virtual applicatio n
development process.
It is also possible to manually force the MSI package to be regenerated. To manually build the
MSI package, click the Build MSI button.
Note: You must build the virtual application executable before the MSI package may be
generated. The Build MSI button will be disabled if the virtual application executable has not yet
been built.
5.1.2 Specifying package metadata
MSI setup packages contain a package manifest describing the product's name, version (can only
be numbers and periods), and manufacturer. To configure the MSI package metadata, enter the
appropriate values in the Product Info area.
Note: The metadata published on the MSI package is distinct from the metadata published o n t he
virtual application executable itself. To modify executable shell metadata, specify the appropriate
metadata on the Settings pane.
5.1.3 Installation parameters
The Installation parameters area allows installation options such as install location and
permissions parameters to be configured.
Applications may be installed e ither for the current user or for all users of the target device. To
install the application for all users, check the Install applications for All Users option.
Note: Installing applicatio ns for all users requires privileged access to the host device. Do not
enable this option if the MSI package is designed for use by end users with standard user
permissions.
45 Novell ZENworks Application Virtualization
Page 44
The Application F older specifies the location where the application executable will be
installed. This us ually has the form [Application Data]\[Company Name\Product Name].
In the event that a user runs the setup package on a device which already has a version of the
application installed, the MSI package may be designed to update the existing application version
or side-by-side install with the existing application version.
To automatically update existing versions, select the Automatically upgrade earlier application
versions option; to use side-by-side installation, select the Allow side-by-side versions of the
same application option.
Note: Building with the Allow side-by-side versions of the same application option enabled
causes a new setup package GUID to be generated. Once a build is completed with this option
enabled, previous installations will no longer be upgraded in place, even if you rever t to
MSI setup packages may also contain extended metadata, such as keywords, product author,
product description, and publisher URL. To configure MSI package extended properties, click on
the Extended Properties tree node in the MSI pane and enter the desired values.
46 Novell ZENworks Application Virtualization
Page 45
5.2 CREATING DES KT OP AND START MENU SHORTCUTS
Desktop and Start Menu s hortcuts allow the end user to launch the application directly from the
Windows shell.
To add a desktop shortcut:
•Click on the Desktop node under the Shortcuts node in the MSI tree view. This displays
the desktop shortcut list.
•Click the Add Shortcut button and select the desired shortcut name, target, and options.
The Target dropdown is popula te d with the startup file list, allo wing s ho r tc uts to be
quickly connected to jukebox entry points.
To install additional folders and subfolders on the desktop, click the Add Folder button and
specify the folder name.
The same procedure can be used to add shortcuts and folders to the Programs section of the
Windows Start bar, except that start bar items are configured under the Programs Menu of the
Shortcuts node i n the MSI tree view. Note that Start Menu items are installed either to the current
user's Start Menu or to All Users’ start me nu depending on the Install application for All Users
setting in the MSI installation parameters section.
47 Novell ZENworks Application Virtualization
Page 46
5.3 CREATING F ILE ASSOCIATIONS
File associations allow the appr opriate viewer or editor application for a given file type to be
automatically launched when the user double-clicks on a document in the Windows shell. For
example, the .doc file extension might automatically launch a virtualized word processing
application.
To create a file association:
• In Setup, Click on the ProgIds node and click Add ProgId.
• Enter a ProgId and Description in the Create ProgId dialog. File associations naming
generally follows the c onvention [Company Name].[Product Name].[Version].
•In the new ProgId, click Add Extension and enter an Extension and an optional MIME
Type.
•In the new file e xtension, click Add Verb and enter a Verb, Command, and choose the
Inherit behavior and Default.
Some common verbs are open, edit, print, and view. The Verb that is entered will be the text that
is displayed when the user right-clicks on the file. W hen Inherit is checked, the behavi or of the
Verb will be controlled by the setup information in the virtual environment. When Inherit is
unchecked , a Target Startup File and Arguments will need to be entered manually. The
Arguments field should contain "%1" which is the full path to the file. When Default is
checked, the Verb will be automatically executed when the file i s double-clicked.
File association properties may be modified or deleted by selecting the ap propriate ProgId in
the Setup tree view and modifying the settings as appropriate.
48 Novell ZENworks Application Virtualization
Page 47
6 DEPLOYING VIRTUAL APPLICATIONS
This section describes several different methods for deploying applications built in ZENworks
Application Virtualization.
49 Novell ZENworks Application Virtualization
Page 48
6.1 DEPLOYING USING T HE PUBLISH TO USB FEATURE
This section describes how to d e ploy virtual applications to USB storage d e vices using the
Publish to USB feature.
6.1.1 Publishing virtual applications to USB storage devices
The Publish to USB feature publishes virtual applications to USB storage devices. When the USB
storage device is attached to a host system, the virtual application automatica lly registers the
Setup information to the host shell environment. This information is automatically unregistered
when the USB device is removed from the host system.
To deploy virtual applications o n USB devices:
• Open an existing virtual applic a tion configuration.
• Attach a USB storage device to the host system.
• Click Publish to USB, select the USB storage device, and click Publish.
• After the virtual application is pub lished to the USB storage device, click OK.
To use virtual applications that are published to USB storage devices:
• Attach the USB storage device to the host system.
• (If prompted by AutoPlay, choose the XUsb.exe option. XUsb will then register the file
associations and shortcuts associated with the virtual application.)
Remove the USB storage device to unregister the virtual applications from the host system.
Note: If AutoPlay is disabled on the host system, open the USB storage device's contents and
manually run XUsb.exe.
50 Novell ZENworks Application Virtualization
Page 49
6.2 REGISTERING VIRTUAL APPL ICATIONS IN THE WINDOW S SHELL
Parameter
Description
AppSpec
An AppSpec is a path (relative or fully qualified) to a virtual executable or layer
SandboxSpec
A SandboxSpec is the name or path of a virtual sandbox
This section explains how to use the SpoonReg deployment tool via the Windows shell or
command-line script to register and manage virtual applications built using ZENworks
Application Virtualization.
6.2.1 Introduction to the SpoonReg registration tool
SpoonReg is a tool that provides a simple command-line interface for deploying virtual
applicati ons and managing the virtual desktop environment. Users and administrators can use
SpoonReg to register virtual applications for a single user or, in the case of administrators, a group
of users or devices. SpoonReg can be used to deploy and manage virtual applications and layers
built using ZENworks Application Virtualizatio n.
After virtualizing an application with ZENworks Application Virtualization, it is o ften desirable to
make the application Start Menu icons, shortcuts, and file associations available on the users'
desktop. SpoonReg allows you to register Novell virtual applications in the shell, creating all of
the shell associations that would generally be created during a standard install process. Unlike
performing an installation, however, r e gistra tion and un-registration can be performed almost
instantaneously.
SpoonReg also provides the ability to create, reset, and remove application sandboxes- virtual
environment "bubble s " where the virtualized applications reside. Sandbox management provides
fine-grained control over application linking and intercommunication.
6.2.2 Registering virtual applications using SpoonReg
SpoonReg provides a simple command-line interface for managing the virtual desktop
environment. This sectio n describes basic SpoonReg command-line syntax, including steps for
registering, updatin g, and unregistering virtual applications.
6.2.3 Command-line syn tax
The following naming co nventions a re used in t hi s s ection:
built with ZENworks Application Virtualization
6.2.4 Registering a virtual application
To register an application, use the command:
SpoonReg.exeAppSpec
This command creates all Start Menu items, desktop shortcuts, and file associations associated
with the virtual application exe c utab le .
51 Novell ZENworks Application Virtualization
Page 50
By default, registration will create a local cached copy of the virtual application executable and
Parameter
Behavior
/nocache
The virtual application executable will not be copied to the client machine. All
SandboxSpec
This parameter refers to the name and path to an existing sandbox. If this
Parameter
Behavior
/nocache
Disable caching of the specified application (reverses the
/cache
Enable caching of the specified application (reverses the
/noupdate
Disable automatic updates for the specified application
use the user's local profile as the sandbox location.
Note: The sandbox location specified during the virtual application build is ignored when
registering applications using the SpoonReg tool.
6.2.5 Advanced registration options
Command-line parameters can be used to control the caching behavior and sandbox where the
virtual application should be registere d:
SpoonReg.exe [O ptions] AppSpec[@SandboxSpec]
shortcuts and file associations will p oint to the full path as given by AppSpec.
parameter is specified and a sandbox with that name exists, the application will
be registered into that sandbox. (See the “Sandbox management” topic in this
section for additional details.)
6.2.6 Updating a virtual application
To force an application executable to be updated, use the command:
SpoonReg.exe /update AppSpec[@Sandbo xSpec]
Running the registratio n command without the /update flag will perform an update o nly if the
cached and source versions of the application are different.
6.2.7 Updating registration settings
Application registration settings can be changed by re-executing t he registration command with
the desired options:
SpoonReg.exe [O ption] AppSpec[@SandboxSpec]
/cache setting)
/nocache setting)
(reverses the /autoupdate setting)
52 Novell ZENworks Application Virtualization
Page 51
/autoupdate
Enable automatic updates for the specified application
(reverses the /noupdate setting)
6.2.8 Unregistering a virtual application
Unregistering a virtual application reverses the registration proc e ss, r emoving the virtual
application, Start Menu icons, shor tc uts, and file associations.
To unregister a virtual application, use the following command:
SpoonReg.exe /unregister AppSpec[@SandboxSpec]
It is also possible to unregister all applications with the singl e command:
SpoonReg.exe /unregisterall
53 Novell ZENworks Application Virtualization
Page 52
6.3 CLIENT PROFILES
The SpoonReg command can be applied to the Local, All Users or Roaming Windows
profiles. These profiles correspond to the user profiles available on the Windows operating
system.
6.3.1 The Local prof ile
Each user on a Windows device has a local user profile. Any changes to the local profile affect
only that user on that de vice.
The Local profile is the default profile used by SpoonReg if no profile is explicitly specified on
the SpoonReg command l ine.
6.3.2 The All Users p rofi le
Each device has a single All Users profile. Any changes made to the All Users profile a ffect all
users on the device.
To register an application to the Al l U s ers profile, execute t he SpoonReg c ommand with the
/allusers command line flag.
You must ha ve administra tive permi s sions on the d e vice to register applications to the All Users
profile.
6.3.3 The Roaming profile
Each user in an Active Directory envir onment ca n have a roaming profile which is mirrored to
other machines according to direc tory policy. Typically, the roa ming p r ofile is stored on a network
server and is available from all devices on a network.
To register an application to the Roaming profile, execute the SpoonReg command with the
/roaming flag.
Note: There is no roaming profile for All Users. Therefore, the /roaming flag has no impact when
used in conjunction with the /allusers flag.
54 Novell ZENworks Application Virtualization
Page 53
6.4 SANDBOX M ANAGEME NT
The Spoo nR eg tool allows creation and manageme nt of one or more virtual environme nt
sandboxes.
A sandbox contains all of a virtual application's isolate d data and settings as determined by the
virtual application's isolation configuration settings. Applications registered to the same sandbox
can view and modify each others' virtualized data and settings.
By default, all applications are registered into a single default sandbox named Default. In some
cases, it may be desirable to group related applications into a sandbox that can be treated as a
single management unit. When a sandbox is reset, all of the application content and data stored in
that sandbox is purged and reverts back to the default state.
6.4.1 Creating a sandbox
If no sandbox is specified during registration, the application will be registere d to the default
sandbox (Default).
To create an additional sandbox, use one of the following commands:
SpoonReg.exe [Profile] /create [SandboxName] [SandboxPath]
SpoonReg.exe [Prof i le ] /c [SandboxName] [Sand boxPath]
If no path is provided, a default path is created under the AppData folder under the specified
profile.
6.4.2 Resetting a sandbox
Resetting a sandbox reverses all changes made to the sandbox, including any changes to data or
settings made by the user. This restores all applications register e d to the sandbox to their default
state.
To reset a sandbox, use one of the following commands:
SpoonReg.exe [Profile] /reset [SandboxSpec]
SpoonReg.exe [Prof i le ] /r [SandboxSpec]
If a SandboxSpec is not supplied, the default sandbox is reset.
6.4.3 Deleting a sandbox
Deleting a sandbox removes all applications, data, and settings from the sandbox.
To delete a sandbox, use one of the following commands:
SpoonReg.exe [Prof i le ] /delete [SandboxSpec]
SpoonReg.exe [Prof i le ] /d [SandboxSpec]
If a SandboxSpec is not supplied, the default sandbox will be reset (the default sandbox cannot be
deleted). Any applications registered to the d e le ted sandbox will be moved to the default sandbox.
55 Novell ZENworks Application Virtualization
Page 54
6.4.4 Moving a sandbox
You can use SpoonReg to move the sand box location to a given pa th.
To move a sandbox:
SpoonReg.exe [Prof i le ] /move [SandboxSpec] [SandboxPath]
56 Novell ZENworks Application Virtualization
Page 55
6.5 DEPLOYING IN ACTIVE DIRECTORY ENVIRONMENT S
This section describes how an organization using Microsoft’s Active Directory can leverage that
infrastructure with the SpoonReg tool to deploy Novell virtual applications to their users.
6.5.1 Active Directo ry
Active Directory allows the network administrator to mana ge users and groups within an
organization. Many organizations use Active Directory to manage their network services. By
combining Active Directory with SpoonReg, administrators can deploy virtual applications easily
and reliably to one or more users in their organization.
6.5.2 SpoonReg
SpoonReg manages the vi rtual desktop enviro nment for a given user by registering and
unregistering virtual applications. A typical SpoonReg command to register an application such as
Firefox would be:
This repr esents the basic functio nality of SpoonReg which would copy the virtual application
executable, create Start Menu items and desktop shortcuts and setup file associations.
6.5.3 Using SpoonReg with Active Directory
In an organization, it is generally more desirable to manage a group of users rather than one at a
time. By co mbining Active Directory with SpoonR eg you can manage the vi rtual envir onment for
a user, group, or Organiz ational Unit. Here we will walk through some scenarios on how this can
be accomplished.
Note: In order to manage virtual applications using Active Directory, the users must have access to
a shared network drive where the virtual application executable files exist. This can be specified
by a full UNC path, or by using a mapped network drive.
6.5.4 Scenario 1: Linking an organizational unit (OU) to a group policy
object (GPO)
Active Directory offers many ways to manage network services for an organization. Here we are
going to look at how we can use an OU in combination with a GPO to manage the virtual
application environment for a set of users.
6.5.5 Organizational unit (OU)
In Active Directory, OUs are containers where you can place users, groups and other OUs. Using
these containers the administrator can create a structure that models the hierarchical or logical
structures within the organization. By setting up the OUs we can isolate the differe nt groups of
users that will receive their own set of virtual applications. Some examples would be Accounting,
Sales, Marketing, etc.
6.5.6 Group policy object (GPO)
57 Novell ZENworks Application Virtualization
Page 56
GPOs are a way of applying a set of rules and features to a targeted set of users. Typically GPOs
handle security, application installation, logon/logoff scripts, Internet Exp lorer settings and
more. A GPO generally gets applied when a user logs on to a given domain. Based on their
profile, various GPOs will be ap plied.
6.5.7 SpoonReg and the GPO
For the purposes of virtual application deployment we can configure the GPO to run the necessary
SpoonReg commands to r egister a gi ven set of virt ual applic ations. You can create and edit GPOs
using the Group P olicy Object Editor. This comes as an add-on to Microsoft’s Active
Directory. The simplest way to deal with the virtual application management is by creating a logon
script that registers the virtual applications for a particular group in the organization. You woul d
do this under User Configuration > Windows Settings > Scripts in the Group Policy Object Editor. You might add the following logon script for the accounting group:
Once you ha ve set up the OU and the GPO , you simply have to link them throug h the Group
Policy Object Editor. After they are linked, any users that are put into that OU will have the
linked GPOs applied when they logon. All of their virtual applications will a ppear when they
logon to any machine on the domain where the GPO applies.
Note: SpoonReg has many other capabilities that can be applied in the GPO logon script, such as
unregistering applications or registering applications to a specific sandbox.
6.5.9 Scenario 2: Using Startup Scripts with GPO's to deploy virtual
applications
This section will describe using Star tup Scripts to deploy virtual applications to the All Users
profile on a host system.
6.5.10 Create a GPO with the Startup Script
For the purposes of virtual application deployment we can configure the GPO to run the necessary
SpoonReg commands to registe r a given set of virtual applications to the All Users Profile. This
will allow any user who logs into a host system to have access to the registered virtual
applications.
58 Novell ZENworks Application Virtualization
Page 57
Start by creating a new GPO with the Group Policy Management Console (GPMC):
• Open the GPMC
• Right-click on the OU t hat you want to link a GPO to
• Select Create and Link a GPO Here and give it a name
• Right-click the GPO and select Edit. This will open the Group Polic y Object Editor
• Navigate to Computer Configuration > Windows Settings > Scripts
• Open the Startup item
• Click Show Files
• In the directory that is displaye d by the Show Files button, create a .bat file. This file will
serve as the Startup Script that will dep loy your virtual applications to all the computers
in the specified OU.
Use these samples as a guide to create the startup script:
Sample 1. Register virtual applications to the default sandbo x in t he All U sers profile:
Once the Startup Script is created , add it to the GPO:
• Navigate to Computer Configuration > Windows Settings > Scripts in the GPMC
• Open the Startup item
• Click Add
• Click Browse
• Select the StartupScript that was created
• Click Open
• Click OK
• Click OK
59 Novell ZENworks Application Virtualization
Page 58
6.6 DEPLOYING V IRTUAL APPL ICATIONS US ING MSI SETUP
PACKAGES
Novell allows virtual applications and components to be deployed using legacy MSI setup
package technology.
6.6.1 Create MSI setup packages directly within ZENworks Application
Virtualization
ZENworks Application Virtualization can be used to create standalone MSI packages directly
within the ZENworks Application Virtualizatio n environment. Generated MSI setup packages can
include Start Menu items, desktop shortcuts, file associations, and other custom shell integration
behaviors.
Deployment using generated MSI packages is appropriate in situations where existing MSI
package deployment mechanisms are in place, or for deploying applications with shell integration
without the SpoonReg Virtual Desktop client tool.
Virtual application and co mponent shell integration settings are shared between MSI- and Virtual
Desktop-based deployment, enabling easy migration between deployment models.
Refer to the section “Building MSI setup packages” for more information on the creation of MSI
setup packages.
6.6.2 Deploy virtual applications into legacy MSI setup packages
ZENworks Application Virtualization also supports deplo yme nt o f virtual application executables
into legacy MSI setup packages.
6.6.3 Import legacy MSI set up pack ages
ZENworks Application Virtualization supports one-click import of legacy MSI setup packages
into the ZENworks Application Virtualization environment. Following import, the application can
be customized and deployed as a Novell-based virtual applic a tion or SVM.
60 Novell ZENworks Application Virtualization
Page 59
6.7 DEPLOYING V IRTUAL APPL ICATIONS US ING MICROSOFT
TERMINAL SERVICES REMOTEAPP
This section describes how to deploy Novell virtual applications using Microsoft Windows 2008
Terminal Services RemoteApp server.
6.7.1 Terminal Servi ces R emote App
Terminal Services RemoteApp is a server-side program that provides end-users remote access to
applications on a terminal serve r. Applications configured with TS RemoteApp appear as though
they are running locally on the user's machine. End-users ca n run RemoteApps si de-by-side with
local programs or other RemoteApps.
To utilize virtual applications created in ZENworks Application Virtualization with Micros oft TS
RemoteApp:
•On the TS RemoteApp server, open the TS RemoteApp Manager and choose Add
RemoteApp Programs by right -cl icking inside the RemoteApp Programs list or through the Action drop down menu.
• Click Next in the RemoteApp Wizard.
• Click Browse and select the virtual application executable.
• After the virtual application is ad ded to the list, select it and click Properties.
• If the virtual application has multiple Star tup Files, configure the Remote App Program
Name and Alias. If this is not done, the TS RemoteApp server will not distinguish
between the separate applications in the suite.
•Still in the Properties window, select Always use the following command-line
argument, enter in the Trigger for the Startup File that is to be executed, and click OK.
•In the RemoteApp Programs list, right-click the program that you added and choose
Create .rdp File. There are no special requirements for the .rdp files.
If there are multiple Startup Files, repeat these steps for the other applications in the suite and
deploy the shortcuts on the host systems.
61 Novell ZENworks Application Virtualization
Page 60
6.8 DEPLOYING V IRTUAL APPL ICATIONS T O ZENWORKS
CONFIGURATION MANAGEMENT
This section describes ZENwo rks Application Virtualization Startup and Bundle Publishing
features. All options described in this section can be found in the ZENworks panel.
6.8.1 ZENworks Startup
Virtual applications built with ZENworks Application Virtualization can be configured to require
the ZENwor ks Configurat ion Management Agen t to be installed on the host device executing the
virtual application. By default, virtual applications built with ZENworks Application
Virtualization do not require the ZENworks Configuration Management Agent.
To require the ZENwork s C onfiguration Management Agent to be installed on the host system,
check the Require ZENworks Configuration Management Agent to be installed on workstation executing the virtual application checkbox in the ZENworks panel.
When virtual applications built with ZENworks Application Virtualization require the ZENworks
Configurati on Manage ment A gent to be installed, they can also be configured to restrict execution
to a specific ZENworks Configuration Management Zone.
To restrict virtual application execution to a specific ZENworks Configuration Management Zone,
check the Only allow devices registered in specific zone to execute the application checkbox in
the ZENworks panel. When prompted, enter the ZENworks Server Address, click Connect,
enter the appropriate Username and Password, and click OK.
When specifying the ZENworks Server Address, it is necessary to use the secure HTTP prefix
(https://) in order to connect to a secure ZENworks Configuration Management Server.
When specifying the ZENworks Server Address, you mu s t also use a port number suffix
(e.g.:81) if the ZENworks Configuration Management Server has been configured to use a custom
port number.
6.8.2 ZENworks Bundle Publishing
ZENworks Application Virtualization can publish virtual application bundles directly to a
ZENworks Configuration Management Zone. Note tha t if a virtual application has been built with
ZENworks Configuration Management Zone restriction, the application will not execute on
devices outside of the restricted zone.
To manually publish a virtual application bundle directly to a ZENworks Configuration
Management Zone :
•Select MSI or Executable for the Project Type. The MSI or Executable must be built
before publication can occur.
• Click Select Zone under the ZENworks Bundle Publishing pane.
• When prompted, enter the ZENworks Server Address and click Connect.
• Log in to the ZEN works Server with the appropriate Username and Password and click
OK.
62 Novell ZENworks Application Virtualization
Page 61
• Assign a Bundle Name.
• Assign a Bundle Folde r. The Bundle Folde r is the location in the bundle hierarchy
where the bundle will be published.
•Assign a Destination Path. The Destination Path is the location on the host system
where the bundle will be installed a nd must be resolvable by the host system. This option
will only be available if the Project Type is Executable.
•Click Publish Now to publish the bundle to the ZENworks Configuration Manageme nt
Zone.
Additional options:
•To change the credentials used to publish the bundle, click the Change Credenti als
button and enter the ne w c redentials (Username and Password).
•To store the credentials in the XAPPL file, check the Store Zone credentials in .xappl
file checkbox. Using this option eliminates the credentials prompt whe n publishing the
bundle after the virtual a pplication has been built. This i s a potential security risk as it
will store the ZENworks credentials in the XAPPL file as plain text.
•To automatically publish future virtual application bundles to the selected ZENworks
Configurati on Management Zone after a successful build, check the Automatically publish application a s ZENworks bundle after succ e ssful build checkbox.
63 Novell ZENworks Application Virtualization
Page 62
7 WALKTHROUGHS
This section provides step-by-step inst ructions for using ZENworks Application Virtualization in
common scenarios.
64 Novell ZENworks Application Virtualization
Page 63
7.1 MANUALLY CONF IGURING A SIMPLE VIRTUAL APPLICATION
This section provides a walkthrough of manual configuration for a simple virtual application in
ZENworks Application Virtualization, based on the Windows Notepad application. In general,
manual configuration should only be performed by experienced software developers virtualizing
internally developed software applications.
• Click on the Filesystem button.
• Click on the Application Directory folder.
• Click on Add Files....
• Navigate to the System32 folder under your Windows installation directory and double-
click on notepad.exe. This adds the Windows Notepad executable to the virtual
application.
•(Windows Vista only) Cli ck on Add Folder and set the new folder name to en-us.
Navigate into the en-us folder and click Add Files.... Navigate to the System32\en-us
folder under your Windows installation directory and double-click on notepad.exe.mui.
This file is required by the version of Notepad which shipped with Windows Vista.
•Using Notepad or another text editor (on your machine, not the virtual application),
create a file called hello.txt containing the text "Hello world" and save it to the Desktop
folder.
•In ZENworks Application Virtualization, Click on Add Files... agai n, na vi gat e to your
Desktop folder and select the hello.txt file t hat you just created. The display on the r ight should now show both notepad.exe and hello.txt.
•If it is not already visible, click on the Virt ual Application tab on the ribbon bar to
display the virtual application settings.
•In the Startup File dropdown, select notepad.exe. The startup file indicates which
executable or file will be executed when the virtual application is started by the user.
•Click on the Browse... button next to the Output Directory textbox. Navigate to your
Desktop folder and press OK.
•Press the Build button. ZENworks App lic a tion Virtualization will now display a status
dialog while it builds your virtual application.
To use your new Notepad virtual application, navigate to your desktop in a shell window and
double-click on Notepad.exe. The Notepad application starts.
But ho w do we know we are inside a virtual application? In the shell, delete the hello.txt f ile from
the desktop. Now, inside the Notepad window, click File / Open..., and navigate to the Desktop
folder. Notice that the hello.txt file is still present! T his is because the Notepad virtual application
is using the vi rtual filesystem, which includes the hello.txt file that we added in the sixth step.
You can ope n and view hello.txt exactly as if it were a real file in the physical filesystem.
65 Novell ZENworks Application Virtualization
Page 64
7.2 BUILDING OPENOFFICE VIA SNAPSHOT PROCESS
This walkthrough describes creation of OpenOffice as a virt ual applicat ion using the snapshot,
jukebox, and setup features of ZENworks Application Virtualization. Although the examples use d
in this walkthrough are for OpenOffice, the processes described can be used to virtualize and
configure almost any application.
7.2.1 Snapshotting
The snapshot process consists of two phases -- the "before" snapshot and the "after" snapshot.
The before snapshot takes an inventory of all files and settings that are installed on the computer.
The after snapshot is taken after the application being virtualized is installed. The contents of the
after snapshot are compared to the before snapshot to determine all changes that were made to the
host system during installation. The after snapshot also copies the new or modified files to a
snapshot directory specified by the user.
Since it is required to install and cap ture all application dependencies during this process, it is
important that snapshotting be performed on a clean Windows machine. This guarantees that all
dependencies will be included in the installation and captured by the snapshot process.
To snapshot the OpenOffice installation:
•Capture the before snapshot by clicking Capture Before on the ZENworks Applicatio n
Virtualization ribbon bar. The snapshot process may take a few minutes.
• Install OpenOffice and all of its necessary dependencies.
• Capture the after snapshot by clicking Capture and Diff. ZENworks Application
Virtualization will prompt for the d irectory where the snapshot files are to be stored. This
directory is usually located on an external PC or network share.
7.2.2 Saving the virtual application configuration
It is important to save the virtual app lic a tion snapshot i n its original state in case errors are
introduced during virtual application customization and optimization. This also allows the
application to be tested and modified without the need to re-snapshot after each iteration.
To save the virtual application c onfiguration:
Open the configuration menu and click Save Configuration or Save Configuration As.
ZENworks Application Virtualization configuration files are stored in the XAPPL file format. The
XAPPL file does not contain the filesystem content. The filesystem content is stored in the Files
directory which is created during the "after" snapshot.
Note: The XAPPL file uses relative paths to identify snapshot files. Therefore it is required that
the Files directory and the XAPPL file be located in the same directory.
7.2.3 Configuring the Virtual Application
Once the application snapshot has been created, the configuration can be modified or optimized
depending o n the desired virtual application behavior . For example, OpenOffice is a suite of
applications; therefore program entry points need to be setup so each application can be run
individually.
66 Novell ZENworks Application Virtualization
Page 65
The following will need to be config ure d to get OpenOffice to function as a virtual application:
• Set the Output File
• Configure the Startup Files (Jukeboxing)
• Configure the Setup options
• (Optional) Remove unused installation files
7.2.4 Setting the outpu t fi le name
The Output File is the name of the virtual executable file o r SVM that is created by ZENworks
Application Virtualization.
To set the Output File, click Browse next to the Output File field and assign it a file name.
7.2.5 Startup files (Jukeboxing)
The Startup File settings identify the specific executable fil e s that can be started by the virtual
application. These can be started by executing the virtual application, from a command prompt, or
from the shortcuts.
To configure the Startup Files:
• Open the Startup F i les window by clicking on Multiple next to the Startup File field.
• Click the dropdown menu next to the File field, or navigate to the desired startup file in
the Filesystem pane, right-click the file, and select Add to Startup Files.
• Enter in co mmand line arguments as needed.
• Enter in a unique Trigger for that executable. Triggers are command line arguments that
are passed onto the virtual executable that specify which Startup File to execute.
•Select Auto Start if the executable is to be started each time the virtual executable is run.
7.2.6 Setup options
When virtualizing application suites such as OpenOffice, the user may want to create a setup file.
Setup files generated by ZENworks Application Virtualization are created using the MSI setup file
format. ZENworks Application Virtualization setup files only install the virtual applica tion and
create file associations and shortcuts. No other installation functions are performed.
To create a setup file for the virtual application, the Output Locatio n, P r oduct Info, Installation Parameters, Shortcuts, and File A ssoc iations need to be configured.
The Output Loca tion defines where the setup file is created.
The Product Info is the metadata that will be associated wi th the setup file. The Product Info is
displayed in the Add/ Remove Programs window. It is recommended that this information be
accurate to avoid confusion.
The Installation Parameters control how the virtual applicatio n will be installed on the host
system.
67 Novell ZENworks Application Virtualization
Page 66
Shortcuts allow the end user to launch the application directly from the Windows Start Menu or
Desktop.
7.2.7 Output Location
To define the Output Location for the virt ual application setup file:
• Click Browse next to the OutputLocation and as sign it a file name.
• Check the Auto matically generate MSI after successful build checkbox if the setup
file should be created automatically after the build process.
7.2.8 Installation Para meter s
To install the virtual applicatio n for A ll U sers, check the Install application for All Users check
box. If checked, this option requires administrative privileges on the target system.
To automatically update existing versions, select the Automatically upgrade earlier application versions option. This option will upgrade previous versions of this virtual executable.
To use side-by-side installatio n, selec t the Allow side-by-side versions of the same application
option.
Note: The Company Name\Product Name needs to be ente r e d in the Application Folder field.
If neither is entered, the virtual application will be installed under folders named “Company
Name\Product Name”.
7.2.9 Creating Short cuts
To create shortcuts that open specific application within the OpenOffice suite:
Click Add Shortcut and assign it a Name, assign it a Target, select an Icon, and enter any
arguments that need to be passed to the specific application.
Folders that are created by the setup package can also be setup in this pane.
7.2.10 File Associations
To create File Associations:
Click on the Add ProgId button and enter the ProgId and a Description of the file association.
Click Add Extension and enter the file exte ns i on and MIME Type (if necessary) to the ProgId.
If a verb is needed for the file extension, click Add Verb and enter the necessary information.
7.2.11 Removing unnecessary files from the snapshot
During the installation process for many applications, tempor a ry installation files are created.
While these files are necessary for the installation, they are not required for the virtual application
to run.
In OpenOffi ce, the installation files are created in the same directory that the install executable
was executed from.
68 Novell ZENworks Application Virtualization
Page 67
To remove these files from the snapshot:
• Open the Filesystem pane
• Navigate to the location of the installation files, right-click the folder, and select Delete.
Note: For OpenOffice, removing the installation files from the snapshot may reduce the output
virtual application binary size by up to 151 MB.
7.2.12 Build and Test
After the virtual application has been configured, customized, and optimized, it can now be built
and tested.
To build the virtual application:
•Click on the Build or the Build and Run button. This will create virtual application
binary file where the Output File is defined. The build process may take a few minutes.
To test the virtual application:
•Execute the virtual application binary file. The OpenOffice splash screen will display and
the OpenOffice Quickstarter will open.
•Execute the virtual application binary file from a command prompt with the
"swriter" Trigger. For example , run "openoffice.exe swriter" from a command prompt
and the OpenOffice Quickstarter and Writer ap plications will open.
To test the Setup options:
•Execute the setup file on a system without OpenOffice installed. The virtual applica tion,
shortcuts, and file associations will be installed on the host system.
• Open the OpenOffice Writer Program from the start Menu shortcut.
• Open a file that is associated with the OpenOffice Writer program.
69 Novell ZENworks Application Virtualization
Page 68
8 BEST PRACTICES
This section describes various best practices for making use of Novell ZENworks Application
Virtualization. Note that these methods of use are all optional.
70 Novell ZENworks Application Virtualization
Page 69
8.1 BEST PRACTICES FOR SNAPSHOTTING
The following practices are recommended for optimal use of the snapshotting feature:
•Perform snapshotting o n a clean mac hine: Snapshotting on a clean machine assures that
all dependencies will be installed by the application setup. Installing on a machine with
existing components may cause dependencies to be inadvertently included in the "before"
snapshot and therefore excluded from the final vi rtual appl ication output.
•Save your "before" sna pshot: Saving the snapshot assures that you need only take t he
"before" snapshot a single time.
•Use snapshotting in co njunction wit h whole-machine virtualization: Configuring a clean
machine usin g a whole-machine virtualization tool such as Microsoft Virtual PC and
saving a "before" snapshot based on this image allows many distinct virtual applications
to be snapshotted in rapid succession by reverti ng the whole-machine virtual state.
•Clean up your ima ge: While ZENworks Application Virtualization automatically
excludes man y unne ce s sary files and regis try keys, snapsho tt i ng oft e n pic ks up man y
unnecessary items. If you have adequate technical understanding to do so, you may
significantly reduce virtual application size by manually removing unnecessary items
from the snapshot delta.
•Snapshot on the earliest operating system variant you expect to target: Most applications
can be successfully configured by snapshotting on the earliest (least common
denominator) base operating system to be targeted. A small number of applications may
require multi -pla tform snapshotting for successful deployment across all operating
system variants.
71 Novell ZENworks Application Virtualization
Page 70
8.2 CAPTURING UP DAT ES TO AN AP PLICAT ION V IA SNAPSHOT
PROCESS
Virtual application updates can be c a ptured within ZENworks Application V irtualization via the
snapshot process.
To capture an update via snapshot process:
•Install the original native version of the application you wish to update on a clean
machine.
• Click Capture Before to snapshot the original versio n of the app.
• Install the necessary updates to the native application.
• Click Capture and Diff to create the “after” snapshot of the app. This will capture the
deltas between the ori gi nal versio n and the upda ted version.
•Make sure the Project Type is set to Component, then click Build to create the SVM
file.
This process will only capture the changes between the original EXE and the installed updates.
The resulta nt SVM file can then be applied to the original virtual executable (for more information
on updating SVM files, refer to the topic “Specifying additional SVM layers for a virtual
application” in the “Advanced topics” section).
72 Novell ZENworks Application Virtualization
Page 71
8.3 USING A P IPE LINE BUILD PR OCESS
Novell recommends that certain steps in the virtual application build process be performed on
multiple operating systems in order to ensure maximum compatib ility and performance. Because
many of these steps are time-consuming, the process can move more efficiently if the steps are
performed on multiple machines in parallel. This process is referred to as “pipeline building” and
is particularly useful when virtualizing a high volume of apps.
For each application built, Novell highly recommends using three separate snapshot machines in
parallel (Windows XP, Windows V ista, and Windows 7), connected via lo c a l network.
The following steps sho uld be performed on each machine i n the “pipeline”:
8.3.1 Capturing the initial virtual application configuration via snap shot
The snapshot process is covered in d e ta il in the “Snapshotting Applications” top ic of the “Getting
Started” section.
The snapshot process should be performed on each machine in the pipeline in order to create the
multiple XAPPL files to be later merged into a single XAPPL file.
Each configuration should be saved in a way that denotes the operating system it was created on
(E.g. <Application><Version>Snapshot_<OS>.xappl), and copied to a network accessible
folder.
The relative paths to files in the folder will be queried when the configurations are merged into a
single XAPPL file. T his process- called “platform merge”- can be done on a single machine and is
covered in detail in “Platform Merge” topic in the “Advanced Topics” section.
8.3.2 Profiling the application
The profiling process involves ZENworks Application Virtualization observing normal user
behavior during short virtual application usage sessions, and cr e a ting transcripts- or profiles- of
the behavior. The process is covered in detail in the “Creating application streaming models” topic
in the “Advanced Topics” section.
The profiling process occurs after a merged XAPPL file has been created. It should be performed
on each machine in the pipeline in order to create the multiple transcripts that will later b e used to
build a streaming model of the virtual application.
Each transcript should be saved in a way that denotes the operating system it was created on (E.g.
<Application><Version>Transcript_<OS>.xt), and copied to a network accessible folder. It is
recommended that multiple profiles are created for each machine in the pipeline (for more
information on building streaming models using transcripts, refer to the “Creating application
streaming models” topic in the “Advanced Topics” section).
73 Novell ZENworks Application Virtualization
Page 72
9 ADVANCED TOPICS
This sectio n deals with advanced topics you ma y encounter while using ZENworks Application
Virtualization.
74 Novell ZENworks Application Virtualization
Page 73
9.1 CUSTOM IZING THE ZENWORKS APPLICATION VIRTUALIZATION
INTERFACE
This section describes ZENworks Application Virtualization interface customization options. All
options described in this section can be found under the Options menu ite m.
9.1.1 Proxy settings...
ZENworks Application Virtualization uses the Internet to check for product updates and download
update packages. If your computer is located behind a firewall, it may be necessary for Internet
access to take place through a proxy server. By default, ZENworks Application Virtualization will
use the default Internet settings configured on the host machine. In some circumstances, however,
it may be necessary for you to manually configure the proxy server settings.
To manually configure proxy settings, select the Proxy settings... option from the Options menu.
Please contact your network administrator if you need assistance configuring the proxy settings.
9.1.2 Automatically det ect a ssoci ated run ti mes and co mponen ts
By default, ZENworks Applic a tion Virtualization will scan the virtual filesystem at build time and
verify that the current configuration includes all available runtimes and components associated
with file types contained in the virtual filesystem. This behavior is recommended to assure
maximum virtual application relia bility.
If you wish to disable this scan, uncheck the Automatically detect associated runtimes and
components option in the Options menu.
9.1.3 Play sound on build completion
By default, ZENworks Applic a tion Virtualization plays a short sound to notify the user of virtual
application build completion.
If you wish to disable this sound, uncheck the Play sound on build completion option in the
Options menu.
75 Novell ZENworks Application Virtualization
Page 74
9.2 QUICK SNAP SHOT M ODE
By default, ZENworks Applic a tion Virtualization uses a "quick" sna pshotting algorithm that
attempts to minimize the amount of time spent scanning the host system device state during
snapshotting. In very rare cases, use of this mode may result in an improperly configured virtual
application. Use of quick snapshot mode may also slightly increase the size of the virtual
application configuration conte nts. It is strongly recommended that snapshotting be performed
using the quick snapshot mode, a s this i s compatible with the vast majo rity of
applications. Disabling quick snapshot mode significantly increases the amount of time required to
complete the virtual applicatio n co nfiguration process.
To disable quick snapshot mode, unc heck the Quick snapshot mode item from the Options
menu.
Note: "Before" and "after" snapshots must be taken usi ng the same snapshotting
algorithm. Loading a saved snapshot image causes ZENworks Application Vir tualiz ation to
automatically configure the snapshotting mode to be cons istent with the algorit hm used during the
saved snaps hot capture.
76 Novell ZENworks Application Virtualization
Page 75
9.3 WELL-KNOW N ROOT FOLDER V ARIABLES
The Novell engine dynamically remaps well-known root folders such as My Documents and
Program Files to the appropriate location based on the host operating system at runtime. This
assures, for example, that the virtualized My Documents folder will be mapped to
\User\Bob\Documents when running on Wind ows Vista or \Documents and Settings\Bob\My
Documents when running on Windows 2000.
Most of the time, configurations are constructe d using snap shotting or in the graphical user
interface. However, if manually modifying the XAPPL file, the following well-known root folder
variables may be used to configure virtual filesystem locations. Root folder variables are case
sensitive.
@APPDIR@: Folder where the executing vi rtual application executable resides
@WINDIR@: The operating system install location root
@SYSDRIVE@: The root folder of the drive containing the operating system i nstallation
@PROGRAMFILES@: The Pro gra m Files folde r
@PROGRAMFILESCOMMON@: The Program Files\Common Files folder
@SYSTEM@: The Windows System32 folder
@APPDATALOCAL@: The folder that serves as a common repository for application-specific
data that is used by the current, non-ro a min g use r
@APPDATA@: The folder that serves as a common repository for application-specific data for
the current roaming user
@STARTUP@: T he folder cont aining the c urrent user 's startup it ems
@PROGRAMS@: The folder that contains the user's program groups
@STARTMENU@: The folder containing the user's Start Menu contents
@DESKTOP@: The current user's Desktop folder
@TEMPLATES@: The folder that serves as a common repository for the current
user's document templates
@FAVORITES@: The current user's Favorites folder
@DOCUMENTS@: The current user's My Documents folder
@MUSIC@: The current user's My Music folder
@PICTURES@: The current user's My Pictures folder
@PROFILE@: The folder that stores the current user's profile data
77 Novell ZENworks Application Virtualization
Page 76
@APPDATACOMMON@: The folder that serves as a common repository for applicationspecific data that is used by all users
@STARTUPCOMMON@: The folder c ontaining startup items for All Users
@PROGRAMSCOMMON@: The folder for components that are shared across applications
@STARTMENUCOMMON@: The folder containing the Start Menu contents fo r All Users
@DESKTOPCOMMON@: The shared Desktop folder
@TEMPLATESCOMMON@: The folder that serves as a common repository for shared
document templates
@FAVORITESCOMMON@: The shared Favorites folder
@DOCUMENTSCOMMON@: The shared Documents folder
@MUSICCOMMON@: The shared Music folder
@PICTURESCOMMON@: The shared Pictures folder
@PROFILECOMMON@: The folder that stores the shared profile data
78 Novell ZENworks Application Virtualization
Page 77
9.4 BUILDING F ROM T HE COMMAND L INE
Option
Description
/before [/beforepath Snapshot
Performs a before snapshot and saves the snapshot to the
/after [/beforepath Snapshot
Performs an after snaps hot using the optionall y s pecified
/component or /layer
Forces the output type to component. This mode causes a
/d
Forces a diagnostic-mode output to be generated.
/l License file
Applies the specified license file.
/uncompressed
Results in an uncompressed payload (payloads are
/deletesandbox
Forces the virtual application to delete the sandbox on
ZENworks Application Virtualization can optionally be executed from the command line. This is
particularly useful for buildin g virtual applications as part of an automated build process.
The command l ine versio n of ZENworks Application Virtualization is called XStudio.exe and can
be found in the ZENworks Application Virtualization installation directory. To build a virtual
application from the command line, execute XStudio Configuration.xappl from the command
prompt, where Configuration.xappl is the name of t he ZENworks Application Virtualization
project created using the graphical interface.
Options spe cified in the configurati on file may be overrid den with the command-li ne flags given
in the following table.
Path]
Path] [/o Output Path]
Note: Snapshots generated from the command-line using the /after flag will not have an output
path specified. When using pr ogrammatic snapshotting, it is str ongly recommended that additional
scripting be performed to apply necessary additional configuration to the generated XAPPL file.
optionally specified snapshot folder. If no snapshot folder is
specified, the default snapshot folder is used.
before snapshot path. If no before snapshot path is specified,
the default snapshot folder is used. The output XAPPL and
snapshot files are saved to the optionally specified output
path. If no output path is specified, the output XAPPL and
snapshot files are saved to the current user's desktop.
SVM file to be generated.
compressed by default). This option overrides the selection
in the Configuration.xappl file.
application shutdown.
79 Novell ZENworks Application Virtualization
Page 78
9.5 IMPORT ING CONFIGURATIONS FROM EXT ERNAL TOOLS
ZENworks Application Virtualization allows configurations from certain external application
virtualization tools to be automatically converted into ZENworks Application Virtualization
configurations. Supported external configurations currently include MSI setup packages, ThinApp
configurations, and Novell AXT s napshots.
To import a configuration from an external tool:
• Click the Start menu button control menu (or press Alt-F)
• Select Import Configuration. This displays the configuration import wizard.
• Click Browse to select the configuration to be imported.
• Click Next.
• Follow the step-by-step instructions in the wizard to complete the import process.
Note: Some applications which depend on specialized custom actions during the MSI installation
process may require additional configuration following MSI import to be fully functional. Such
applications may need to be imported using the snapshot capture method.
80 Novell ZENworks Application Virtualization
Page 79
9.6 RUNNING NAT IV E APPLIC A T IO N S IN VIRT UAL ENV IRONMENT S
ZENworks Application Virtualization allows natively installed applications to launch in vir tua l
sandboxed environments. This is helpful when a natively inst a lle d application can utilize resources
contained in a virtual p ackage. For example, a user virtualizi ng a plugin fo r Microsoft Outlook
would want to enable a local version of Outlook to run in the same virtual sandbox as the plugin.
This is accomplished in ZENworks Application Virtualization by setting the natively installed
application as the startup file (or one of the startup files).
To enable a natively installed application to launch in a virtual environment:
•In the Virtual Application tab, click on the Multiple button next to the Startup File
field
• In the File column, enter the local path of the natively installed application.
• (Optional) Check the Auto Start option to have your natively installed application
automatically run when the virtual application is launched
•Click OK
This will enable your virtual ap plication and natively installed ap plication to interact with each
other in the s ame virtual environme nt.
A sample startup file path for Microsoft Word would look like this:
If Auto Start has bee n enab led, Microsoft Word will launch with the virtual application, in the
same virtual environment.
81 Novell ZENworks Application Virtualization
Page 80
9.7 MODIFYING VIRTUALIZATION BEHAVIOR AT RUN-TIME
Flag
Behavior
/XEnv=Variable Name=Value
Specifies additional environment variables.
/XLayerPath=Layer Path
Adds the given SVM file into the virtual
/XSandboxPath=San dbox Path
Specifies the path to be used for the application
/XShellEx=Command
Specifies a shell execute command to be
/XShellExVerb=Command Verb
Specifies the verb to be used in conjunction with
Most virtualization behavior is sp e c ified during virtual applic ation design using the ZENworks
Application Virtualization interface. However, in some cases, it is useful to o ver r ide virtualization
behaviors at application run-time.
Novell allows the following virtualization settings to be specified on the virtual application
command li n e. Settings specified on the command line supersede design-time virtual application
settings.
Multiple /XEnv arguments can be used to add
additional environment variables.
environment. Multiple /XLayer Path arguments
can be used to add additional virtual layers.
sandbox.
launched from within the virtual application
environment. This option overrides any startup
files specified in the virtual applic a tion
configuration. Only one /XShellEx argument can
be specified.
the XShellEx command. The default verb is
OPEN.
82 Novell ZENworks Application Virtualization
Page 81
9.8 SPECIFYIN G ADDIT IONALSVM LAYE RS FOR A V IRTUAL
Attribute
Description
XLayerSearchPattern
Attribute to provide the
<RequiredXLayername=“@APPDIR@\APP.svm”>
Sub-elements specifyi ng
APPLICATION
ZENworks Application Virtualization users may want to specify additional SVM layers for
applications, in the case of updates or patches. ZENworks Application Virtualization allows two
mechanis ms fo r do ing this.
The first mechanism is via the command line
a path with optional wildcards to a dditional SVMs to load.
An example of a specified SVM path using a wildcard :
This would do a wildcard match finding any file s such as MSOffice_001.svm in the c:\Patches
directory.
Note: The SVMs are applied in reverse-alphabetical priority. This means that items in
MSOffice_002.svm have higher pri ority than ite ms in MSOffice_001.svm.
The second mechanism is a XAPPL file specified way to load additio nal SVM files. It is via the
<XLayers> portion of the XAPPL file and has the following elements:
default search pattern,
similar to what would be
passed to /XLayerPath
which SVM must be loaded,
or else an error is reported
A Sample XAPPL configuration is as follows:
83 Novell ZENworks Application Virtualization
Page 82
<XLayers XLayerSearchPattern="@APPDIR@\ZENworks Appl ic ation
VirtualizationDependencies.svm">
Both methods allow the use of the @VARIABLE@ format.
Note: Newer versions of ZENworks Application Virtualization make use of SVM files as opposed
to XLayer files. Older XLayer files must be rebuilt as SVM files as there is currently no
supported conversion utility. SVMs function in the same way as XLayer files in that they will be
auto-integrated with virtual executables by being placed in the same directory as the executable.
84 Novell ZENworks Application Virtualization
Page 83
9.9 PLATFOR M MERGE
The Merge Platforms feature allows virtual application configurations snapshotted on multiple
operating system variants (Windows XP, Vista, etc.) to be combined into a single configuration.
At runtime, the virtualization engi ne dynamically applies the configuration options appropriate for
the operat ing system var iant used for execution.
Tip: The most common platform merge scenario is a merge of snapshots taken on Wind o ws X P
and Windows Vista. This is because some newer applications use operating system features
specific to Windows Vista.
To merge configurations from multiple platforms:
• From the Advanced tab, click the Merge Platforms button.
• Click Browse and open the appropriate configuration for each applicable operating
system varia nt.
•For operating systems without a configuration, choose which configuration it should use
by using the Inherit option.
•When all configurations have been selected or set to Inherit, click Browse in the Merge
Settings area, choose where to save the merged configuration, and click Merge.
To display or edit a specific ope rating system from a merged configuration :
• Open the merged configuration.
• From the Advanced tab, click on the Display drop down menu.
• Select the operating system that you want to display or edit.
The Filesystem and Registry panels will only display settings specific to the selected operating
system. Note t hat you cannot edit configurations which are inherited from other platforms; to edit
inherited configurations, you must sele ct and edit the master configuration.
To change the inheritance of an operating system in a merged configuration:
• Open a merged configuration.
• From the Advanced tab, click the Display drop down menu.
• Select the operating system that you want to modify.
• Select the platform from which to inherit using the Inherits drop down menu.
85 Novell ZENworks Application Virtualization
Page 84
9.10 CREATING APPLICAT ION ST REAM ING MODELS
The Streaming section of the Advanced tab allows you to profile and b uild str e aming models for
a virtual application.
The Profile feature generates transcripts, or profiles, which are then used to create a streaming
model for the virtual application. Clicking the Profile button launches the application and creates
a single transcript file based on observed user behavior during that run. It is recommended that
multiple transcripts are created before creating a streaming model. Using multiple transcripts
allows the streaming system to take into consideration different use cases for the application. It is
also recommended that at least one transcript be created for each operating system.
Note: Only uncompressed virtual applications can be profiled and streamed. Compression is
automatically disabled during the model build process.
To profile virtual applications:
• Build the virtual application.
• Click the Profile butto n on the Advanced tab.
• Select the output location for transcrip ts a nd c lick OK.
• After the virtual application launches, use the application for approximately one
minute, as if you were a typical end-user.
•Close the application. Once the application terminates, the transcript will be created in
the selected output location.
•Create additional transcripts as needed.
Once the necessary profiles have been created, the streaming model is ready to be built. The model
build process uses the transcripts and Connection Speed parameter to compute a model of
execution. After the model build process is complete, the streaming files are written to the
selected output folder. The Connection Speed setting is used to optimize delivery of application
content to the end-user.
To create a streaming model:
•Select the desired Connection Speed. The 1.5Mbps connection speed setting is
recommended for most scenarios.
• Click the Build Model button.
• Select the folder where the transcripts are located and click OK.
• Select the folder where the streaming model will be created and click OK.
The resulting model is made up of an .xm file and a collection of .xs files.
86 Novell ZENworks Application Virtualization
Page 85
9.11 LAUNCHING STREAMING MODELS USING SPOONPLAY
Flag
Behavior
/model
Specifies the location of the stea mi ng mod e l
The SpoonPlay tool can be used to launch the streaming models created using ZENworks
Application Virtualization (ref e r to section 9.10 Creating Application Streaming Models for
additional information). SpoonPlay can be used to launch streaming models which exist on your
local machine, a file server, or a web server which has been configured to stream applications. In
addition to launching streaming models, SpoonPlay can also be used to cache applications on your
local machine.
Launching a streaming model
Launching a streaming model req ui res the use of the /model and /xvm flags. The /model flag
specifies the location to the mode l files and the /xvm flag specifies the location of the XVM file
that will be used to launch the application. The example below demonstrates the command line
usage for launching a streaming model from a file server:
SpoonPlay can also launch a streaming model from a web server which has been configured to
stream applications. SpoonPlay requires the /config flag, which spe c ifies the location of the
application configuration file that exists on the web server (refer to section 9.14 Generating Site
License Certificates and Appli c a tion Configurations for more information regarding application
configurations.) The example below demonstrates the command line usage for launching a
streaming model from a web server:
After launching a streaming model, SpoonPlay has a feature which allows the application to be
cached as an SVM file on your local machine. This will eliminate the need to re-stream the model
for this application during future launches. The example below demonstrates the command line
usage for caching an application after launching a streaming model:
The following table provides a summary of all command line flags that can be used with
SpoonPlay.
(points specifically to the .xm file).
87 Novell ZENworks Application Virtualization
Page 86
/xvm
Specifies the location of the XVM file to be used
to launch the application (XVM.exe).
/config
Specifies the location (as a URL) to an
/cache
Specifies the location to store the cached SVM
application configuration file.
file after the application has launched .
88 Novell ZENworks Application Virtualization
Page 87
9.12 APPLICATION EXPIRATION
This section describes the Expiration feature. With the Expiration feature, virtual applications
can be set to expire after a certain number of days or after a certain date.
To set a virtual application to expir e a fter a specific number of days:
• Click on the Expiration button.
• Check the Disallow execution after number of days checkbox.
• Select the number of days after the application is first executed on a system it will take to
expire.
•Choose the Time Source the virtual application will use to validate the date.
To set a virtual application to expire after a certain date:
• Click on the Expiration button.
• Check the Disallow execution after date checkbox.
• Select the date the virtual application will expire.
• Choose the Time Source the virtual application will use to validate the date.
For all expiration modes, the System clock setting will use the host system's clock to valida te the
date. The Web server clock setting will validate t he date against an HTTPS-based web
server. Check the Disallow execution if web server is unreachable checkbox to prevent the
application from being executed offline.
Tip: The Web server clock setting is more secure than the System clock setting since it prevents
the expiration mechanism from being circumvented by modifying the system clock. However, this
setting will prevent applications from executing on devices which cannot c onnect to the time
server source.
Optionally, an Expiration Warning can be set to warn the user when the virtual application is
about to expire. The message will be displayed each time the virtual application is executed when
it is within the specified threshold .
89 Novell ZENworks Application Virtualization
Page 88
9.13 APPLYING THE VIRT UAL APPL ICATION CONF IGURATION T O THE
HOST DEVICE
ZENworks Application Virtualization allows the virtual appl ic a tion configuration to be applied to
the host system. Applying the virtual application configuration to the ho st s yste m is he lp fu l whe n
creating SVM updates for virtual applications.
To apply the virtual application configuration to the host system:
•Click the Apply Configuration button in the Start menu of the ZENworks Application
Virtualization application.
• Enter the path of the sandbox to be merged into the current configuration.
• Click Yes to acknowledge that the Apply Configuration process cannot be undone.
Note: The Apply Configuration feature is not intended for use as an installation process for
virtual applications.
For example, to create an SVM update to the Firefox virtual application template:
• Use the Configuration Wizard to create a Firefox virtual application.
• With the Fir efox config uration loaded, run the Apply Configuration process as above.
• Open a new virtual application co nfiguration.
• Capture a before snapshot.
• Open Firefox, select Help>Check for Updates, and apply any updates.
• Capture an after snapshot.
• Build the captured updates as an SVM.
• Execute the built SVM o n top of the original virtua l Firefox browser and no t ice that the
updates have been applied.
90 Novell ZENworks Application Virtualization
Page 89
9.14 GENERATING SITE LICENSE CERTIFICATES AND APPLICATION
CONFIGURATIONS
ZENworks Application Virtualization now allows you to generate site license certificates, which
can then be used to generate application configurations for use with Novell’s ZENworks
Application Virtualization Stre aming Server. This section describes how to use each feature,
respectively.
To generate a site license certificate:
• Click on the Advanced tab.
• In the App Certificates box, click the Create Site Certificate button
• Enter the following information in the required fields:
o Organization Name: Organization name
o Organization Unit: User/ unit name
o Allowed Portal Hosts: The allowed host name of the server from which the
application will stream. This name needs to match the website where the
application will be launched (E.g.: mysite.com).
• Hit Enter.
• Click Create to create the license certificate, then save the certificate to a desired
location in the resulting Save File dialog.
To create an application configuration:
• Click on the Advanced tab.
• In the App Certificates box, click on the Create App C onfiguration button.
• Enter the following informatio n in t he r e quired fields:
o Name: Application name
o Version: Application version, in Ma jor.Minor.Build.Re vi s ion format (E.g.
3.8.12.895)
o Layer Revision: Current revision of the application build
o Type: Check either SVM or XM (streaming model)
o Model Revision: Cur rent revision of the applic a tion streaming model
o Layer Url: The path to the location where the application will be hosted (file
will be of the type .svm or .xm as defi ned by the Type checkbox)
o Xvm Config Url: The path to the location of the virtual machine configuration
o Xreg Config Url: The path to the location of the SpoonReg configuration
o Certificate Path: The path to the requested site license certificate that was
saved duri ng site license certificate generation. Click on the Browse button to
search for this location.
•Click Create to create the application configuration.
Note that each URL path must be fully resolvable at the time of application configuration
creation, or the configuration will not be created properly.
91 Novell ZENworks Application Virtualization
Page 90
9.15 ENABLING SHARED O BJ ECT ISOLAT ION
ZENworks Application Virtualization provides the ability to isolate shared objects in memory.
Certain applications will refer to objects in memory by a specific name, which can cause runtime
errors if a named object in a virtual application’s memory collides wit h o ther objects of the same
name in the memory of a natively installed version of the application on the same device. Shared
object isolation creates unique names for memory objects at runtime, in or der to allow a virtual
application and a natively installed version of the same application to run side by side without
conflict.
Currently, shared object isolation can only be enabled by manually editing the XAPPL file for a
virtual application.
In the following scenario, OBJECT 1 and OBJECT 2 are named objects used by a virtual
application that conflict with ide ntically-named objects used by a natively installed application.
Common named objects include mutexes and named pipes.
To enable shared object isolation for OBJECT 1 and OBJECT 2 in a virtual application:
• Open the XAPPL file of the virtual app lic a tion you are working with in a text editor
• Replace the <NamedObjectIsolation ../> element with the example below:
<NamedObjectIsolation enabled="False">
<Exception regex="[OBJECT 1]” />
<Exception regex="[OBJECT 2]" />
</NamedObjectIsolation>
•Reload the XAPPL file in ZENworks Application Virtualization and build the
application
The resulting virtual applicatio n will have shared object isolation enabled . N ote that multiple
objects in memory can be isolated simultaneously.
92 Novell ZENworks Application Virtualization
Page 91
9.16 XAPPL FILE FORMAT
9.16.1 Overview
A XAPPL file is an XML represe ntation of all the virtual applicatio n configuration settings.
All paths in the XAPPL file are relative to where the XAPPL file resides. For example, the
source attribute of a File element will begin with ".\Files\". The ".\" directory is the path where the
XAPPL file should reside in order for ZENworks Application Virtualization to locate the physical
source file s during the b ui ld process.
The XAPPL file must adhere to all XML syntax rules. If there are syntax errors in the XAPPL
file, ZENworks Application V irtualization will not load the file.
In this section, attribute values are shown in parenthesis after their d e scription and default values
are shown in bold.
9.16.2 XAppl Configuration Elements and Attributes
OutputLocation
The outputlocation attribute is the path to the folder where the virtual application executable will
be created. This can be a local path, a UNC path, or a mapped drive.
OutputFile
The outputfile attribute is the file name of the virtual application executable.
Project Type
The project type attribute deno te s whether this configuration is for a virtual ap plication
(Application) or an SVM file (Component).
Licensing
The licensing attribute co ntains information about the lice nse that was used to build the virtual
application.
Output
The diagnosticMode attribute denotes when the application output should log diagnostic
information (True) or not (False). If true, the virtual application will create d ia gnostic logs in the
directory where it was executed from.
The sourcePackage attribute is not used.
MSI
All sub-elements contain settings per ta ining to the configuration of the MSI setup file.
The outputMsiPath attribute indicates the location where the setup MSI will be built.
93 Novell ZENworks Application Virtualization
Page 92
The title attribute indic a te s th e value of the MSI title property.
The subject attribute indicates the value of the MSI subject property.
The keywords attribute indicates the value of the MSI keywords property.
The productName attribute indicates the value of the MSI product name property.
The productVersion attribute indicates the value of the MSI product version property.
The manufacturer attribute indicates the value of the MSI manufacturer property.
The productLanguage attribute indicates the value of the MSI product language property.
The author attribute indicates the value of the MSI author property.
The description attribute indicates the value of the MSI description property.
The manufacturerUrl attribute indicates the value of the MSI manufacturer URL property.
The autoBuild attribute denotes whether the MSI sho uld build when the virtual application build
completes successfully (True) or not (False).
The isolatePerUser attribute denotes whether the MSI setup should be installed on a per-user
basis (True) or installe d for all users (False). When installing per-user, the i nstall root path is
Application Data. When installing for all users, the install root pa th is Prog ram Files.
The applicationFolder attribute indicates the subfolders into which the virtual applic a tion should
be installed (Co mpany Name\Pr oduct Name).
The upgradePreviousVersion attribute denotes whet her the setup should maintain the same
Upgrade code when it builds (True) or change the Upgrade code for each build (False). This
allows the setup to upgrade previou s versions when it is installed, or to e xist side by side.
The productCode attribute indicates the value of MSI product code property.
The upgradeCode attribute indicates the value of MSI upgrade code property.
The componentId a ttribute indicates the value of the MSI component id property.
Packages
Clr
The .NET Clr runtime element and all sub-elements contain settings pertaining to the
configuration of the virtual .NET Framework runtime.
Direct X
The DirectX element and all sub-ele ments contain settings pertaining to the c onfiguration of the
virtual DirectX runtime.
Java
94 Novell ZENworks Application Virtualization
Page 93
All sub-elements contain settings pertai ning to the configuration of the virtual java ru nt ime.
RunTime
The name attribute indicates the name of the java runtime (Java).
The platform attribute indicates the platform that the java runtime is designed for (x86).
The version attribute indicates the version of t he java runtime. The available versions are Java 5
(1.5.0.140) and Java 6 (1.6.0.30).
Settings
The startupType attribute denotes whether to use the jar file (JAR) or class path (Class)
command line parameters for java.exe to launch the application.
The startup attribute indicates the jar file path or class name depending on the StartupType.
The classpath attribute indicates the path to the class files of the Java runtime.
The options attribute denotes any additional command line parameter.
Package
The name attribute indicates the name of the component or runtime.
The platform attribute indicates the platforms that the component or runtime is supported on. The
following are the only available values:
Any platform (Any)
x86 platform (x86)
The version attribute indicates the version of the component or runti me.
Virtualization Settings
All sub-elements contain settings per ta ining to the configuration of the virtual operating system.
The suppressBranding attribute controls the branding pop-up that is displayed (False), or not
displayed (True) in the lower right-hand corner during ap plication startup.
The isolateWindowClasses attribute is used to isolate windows classes, as registered via the Windows ::RegisterClass or ::RegisterClassEx APIs. For example, this allows a virtualized
Firefox instance to run while a non-virtualized instance is running.
The readOnlyVirtualization attribute denotes whether the virtual application has the ability to
modify virtual files and registry settings (False) or not (True). Setting this attrib ute to True will
prevent modification to the virtual filesystem and virt ual registr y.
95 Novell ZENworks Application Virtualization
Page 94
The disableZAVCommandLine attribute controls the ability to e xecute (False) any file from
within the virtual filesystem.
The subsystem attribute indicates the applicatio n o utput type. It can be inherited from the startup
file (Inherit) or set explicitly to be a Windows application (GUI) or console application
(Console). If Inherit is set, but the startup file is either not in the virtual filesystem o r not an
executable, then the output will be a Windows application.
The ie6Emulation attribute denotes a special mode required for the Internet Explorer 6 template
(True). For all other apps, this should be disabled (False).
The sandboxLocation attribute indicates the base path of the application sandbox
(@APPDATALOCAL@\Novell\Sandbox\@TITLE@\@VERSION@).
The workingDirectory attribute defines what d irectory the application will run in.
The compressPayload attribute controls whether the output executable will be compressed (True)
or not (False).
The trimUACManifest attribute removes items from the virtual app lic a tion manifest file that may
require elevation and trigger UAC prompts (True).
The enableArmadilloShim attribute ensures compatibility (True) with applications protected by
software formerly known as “Armadillo”.
ChildProcessVirtualization
The spawnExternalComServers attribute controls whether the virtual application lau nches
ComServers in the virtual environment (False) or the external environ ment (True).
The spawnVm attribute denotes whether the spawned external applications are spawned inside the
virtual environment (True) or outside the virtual environment (False).
ChildProcessException
The name attribute indicates the name of the executable file (extension included) to except from
the effects of the spawnVm attribute.
CustomMetadata
All sub-elements contain settings per ta ining to the configuratio n of the individual custo m
metadata items.
CustomMetadataItem
The property attribute indicates the name of the custom metadata item.
The value attribute indicates the value of the custom metadata item.
StandardMetadata
96 Novell ZENworks Application Virtualization
Page 95
All sub-elements contain settings pertai ning to the configuration of the individual standard
metadata items.
StandardMetadataItem
The property attribute indicates the name of the standard metadata item. The following are the
available standard metadata:
Product Title (Title)
Publisher ( Publisher)
Description (Description)
Website (Website)
Product Version (Version)
SplashImage
The path attribute indic a te s the source path to the splash image displayed at application startup.
The transparency attribute indicate s the color in the splash image that should be made transparent
when the image is displayed (E.g. Magenta).
StartupFiles
All sub-elements contain configuration pertaining to the individual startup files.
StartupFile
The node attribute indica te s the path of the startup file.
The tag attribute indicates the command line trigger used to specify this entry as the startup to use.
The commandLine attr ibute indicates the command line arguments to pass to the startup file.
The default attribute denotes whether this entry is executed automatically when no tag is specified
(True) or not (False).
StartupShim
The startup shim is a virtualized binary that is invoked prior to the startup file. Startup shims are
used to perform customized licensing checks or other initialization tasks.
The useShim attribute indicates whether to use the startup shim.
The shimDllPath attribute indicates the path to the virtual sh im DLL implementation.
The paramOnInitialize attribute indicates a string to be passed to the shim OnInitialize function.
97 Novell ZENworks Application Virtualization
Page 96
The startup shim signature is typedef BOOL (__stdcall *FnOnInititialize) LPCWST R
pwcsInitilizationToken). The return value indicates whether virtual machine execution should
proceed.
Layers
All sub-elements are individual virtual layers.
Layer
The Layer element and all sub-elements contain settings pertaining to the configuration of this
layer of the virtual operating system.
The name attribute indicates the name of the layer. The default layer (Default) is the only l ayer
for whom the name matters. All other layer names are purely informational.
Condition
The variable attribute indicates the host system setting that will be evaluated. The operating
system version (OS) is the only available option.
The operator attribute indicates the Boolean operation that will be used to evaluate the host
system. The available Boolean operations are:
greater than or equal to (GREATEREQUAL)
greater than (GREATER)
equal to (EQUAL)
not equal to (NOTEQUAL)
less than (LESS)
less than or e qual to (LESSEQUAL)
The value attribute indicates the value aga inst which the host system will be evaluated, using the
Boolean operation. The available values in ascending order are:
Windows 2000 (Win2k)
Windo ws XP (WinXP)
Windows 2003 (Win2k3)
Windows Vista (Vista)
Filesystem
All sub-elements contain settings pertai ning to the configuration of the virtual filesystem.
98 Novell ZENworks Application Virtualization
Page 97
Directory
All sub-elements contain settings per ta ining to the configuration of this directory of the virtual
filesystem.
The rootType attribute indicates the root system folde r that this virtual folder is mapped to on the
host filesystem. Directo ry elements with the rootType attribute are always directly beneath the
Filesystem element. The following are the available rootType values:
Application Directory (Application)
Windows\System32 (System)
Windo ws (OS)
System Drive Root Directory ( SysDrive)
Program Files\Common (AllProgramsCommon)
Program Files (AllPrograms)
Current User - Start Menu (StartMenu)
Current User - Start Menu\Programs (Programs)
Current User - Start Menu\Programs\Startup (Startup)
Current User - Application Data (AppData)
Current User - LocalSetting\Application Data (AppDataLocal)
Current User - Desktop (Desktop)
Current User - Templates (Templates)
Current User - Favorites (Favorites)
Current User - Music (Music)
Current User - Pictures (Pictures)
Current User - My Documents ( Documents)
%PROFILE% (Profile)
All Users - Start Menu (StartMenuCommon)
All Users - Start Menu\Programs (ProgramsCommon)
All Users - Start Menu\Programs\Startup (StartupCommon)
All Users - Application Data (AppDataCommon)
99 Novell ZENworks Application Virtualization
Page 98
All Users - Desktop (DesktopCommon)
All Users - Templates (TemplatesCommon)
All Users - Favorites (FavoritesCommon)
All Users - Music (MusicCommon)
All Users - Pictures (PicturesCommon)
All Users - My Documents (DocumentsCommon)
%ALLUSERSPROFILE% (ProfileCommon)
The isolation attr ibute indicates the isolation setting of the v irtual folder. The available values are:
Full isolation (Full)
WriteCopy isolation (WriteCopy)
Merge isolation (Merge)
The name attribute indicates the name of the virtual dir e c tory.
The hide attribute denotes whether the directory is marked as hidden (True) or visible (False).
File
The name attribute indicates the name of the file.
The hide attribute denotes whether the file is marked as hidden (True) or visible (False).
The source attribute indicates the sourc e path to the file.
Registry
All sub-elements contain settings pertai ning to the configuration of the virtual registry.
Key
All sub-elements contain settings per ta ining to the configuration of this ke y of the virtual
filesystem.
The rootType attribute indicates the root system folde r that this virtual folder is mapped to on the
host filesystem. Key elements with the rootType attribute are always directly beneath the
Registry element. The following are the available rootType values:
HKEY_CLASSES (ClassesRoot)
HKEY_CURRENT_USER (CurrentUser)
HKEY_LOCAL_MACHINE (CurrentUser)
100 Novell ZENworks Application Virtualization
Page 99
HKEY_USERS (Users)
The name attribute indicates the name of the key.
The namePathInformationTuples indicates that there is a path in the name or value of the
registry item. There are 3 comma delimited integers for each path found in the name/value.
1. Flags that indicate the state of the path (valid combinations: 0x0, 0x1, 0x2, 0x4, 0x5, 0x6)
0x1 – All Uppercase
0x2 – All Lowercase
0x4 – Uses Short Path Names
2. Start index of the path
3. Length of the p ath
The isolation attr ibute indicates the isolation setting of the v irtual folder. The available values are:
Full isolation (Full)
Merge isolation (Merge)
Value
The name attribute indicates the name of the value.
The type attrib ute indicates the type of the value. The available values are:
REG_SZ and REG_EXPAND_SZ (String)
REG_DWORD (DWORD)
REG_QWORD (QWORD)
REB_BINARY (Binary)
REG_MULTI_STRING (StringArray)
The namePathInformationTuples indicates that there is a path in the name or value of the
registry item. There are 3 comma delimited integers for each path found in the name/value.
1. Flags that indicate the state of the path (valid combinations: 0x0, 0x1, 0x2, 0x4, 0x5, 0x6)
0x1 – All Uppercase
0x2 – All Lowercase
0x4 – Uses Short Path Names
101 Novell ZENworks Application Virtualization
Page 100
2. Start index of the path
3. Length of the p ath
The value attribute indicates the value of the value. This is true for all types, except StringArray,
which contains the String sub-element.
Environment Variables
The name attribute indicates the name of the environment variable.
The value attribute indicates the value of the environment variable.
Services
The name attribute indicates the name of the windows service.
The autoStart attribute denotes whether the wind ows service starts when the virtual applicati on
starts (True) or not (False).
The commandLine attrib ute indicates the startup command line of the windows service.
The friendlyName attribute indicates the friendly name of the windows service.
The description attribute indicates the description of the windows service.
The objectName attribute indicates the account under which the windows service ran when not
virtualized.
The keepAlive attrib ute denotes whether the windows service should continue running after the
startup application has closed (True) or not (False).
The start attribute indicates the value of the StartDWORD value in the Windows Services
registry key.
The type attribute indicates the value of the TypeDWORD value in the Windows Services
registry key.
The errorControl attribute indicates the value of the ErrorControlDWORD value in the
Services registry key.
Shortcuts
All sub-elements contain settings per ta ining to the configuration of the MSI shortcuts.
Folder
All sub-elements contain settings pertai ning to the configuration of the MSI shortcuts in this
folder.
102 Novell ZENworks Application Virtualization
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.