Using SpoonReg and SpoonPlay to Integrate Virtual Applications into your Environment


ZENworks Application Virtualization provides tools to register virtual applications with the local machine so that even though the application is virtualized it looks and acts like a native application. A tool also exists that allows you to stream the application from a file server, web server, or ZENworks Application Virtualization Server. This article examines how to use these tools effectively with ZENworks Configuration Management and ZENworks Application Virtualization Server.

Making a virtual application act like a locally installed application

When you virtualize an application you are packaging it into either a streamable component file (.svm) or into an executable format (.exe) that can be executed on any Windows XP or higher device. However, if you simply deliver the executable to the user or publish the SVM, the user will always need to directly launch the executable in order for the virtual application to run. This means that instead of your users’ double-clicking a .doc file and it automatically opening the virtual Word application, they’d have to always launch Word and then open the file manually.

ZENworks Application Virtualization provides three solutions for making the application function as users’ expect:

  • Create an MSI to install the application

  • Use the Spoonreg tool

  • Register the application via the ZAV Server plugin on the device

Create an MSI to Install the Application

The first way that you can register the application with the local machine is by creating an MSI package that deploys the virtualized executable, but also adds local registry keys to register the associated file extensions with the machine and creates the desktop and start menu shortcuts for the application. This also causes the application to be listed in the Add/Remove Programs control panel. To build an MSI package to install the virtual application you use the ZAV Studio application, using the Setup page as shown in the screenshot below:


From this page you can see the file extensions, icons and program ids that will be registered either via MSI or via any other registration method. Additionally you can control how the application is registered with the Add/Remove Programs control panel and whether the application is installed for just the user executing the application or for all users. If you select the All Users option you will need to ensure that the MSI is executed as an administrative user.

If you install the application for All Users, the application will be discoverable via the ZENworks 11SP3 inventory scanner.

Use the SPOONREG tool to register the application

The second way in which you can make the virtual application behavior more like a native application is to use the spoonreg.exe tool. This tool is included in the Studio download files and essentially provides the same capabilities as installing an MSI without the need to deploy the MSI. This is most useful if you are using a software distribution tool such as ZENworks Configuration Management to deploy the software. To register a local or network executable for just the current user use the following command:

spoonreg.exe <path to exe>

To register an application for All Users use the following command, and ensure it is executed as a local Administrator of the machine (or in the case of ZENworks as the Dynamic Administrative User):

spoonreg.exe /allusers <path to exe>

When using ZENworks Configuration Management you should consider placing the spoonreg.exe command as an Install Action Set action so that after the executable is copied to the device, it is then registered with the system. This makes the application discoverable by ZENworks inventory in ZENworks 11SP3 and registers the file extensions and program ids with the machine.

Another important benefit of using spoonreg.exe instead of an MSI is that with spoonreg.exe you can override the sandbox path for the application. This is useful if you need to register multiple virtual applications in the same sandbox so that the can access the files and registry contained in either of the executables. To use this capability you need to use the following syntax.

spoonreg.exe /allusers <path to exe>@<sandbox>

An example of this is if you wanted to install Microsoft Office and GroupWise 2012 into the same sandbox so that Microsoft Office could send email via GroupWise. To do this you would need to create a new sandbox and then register both of the applications into that sandbox. An easy way to do this would be to create a ZENworks Configuration Management bundle that ran the following 3 Launch Executable Actions the Install Actions set of the bundle.

Action 1: Create Sandbox
To create a new sandbox use the command:
spoonreg.exe /c <sandbox name>

If you want this available for All Users make sure to use the /allusers flag and run the action as a Dynamic Administrator User.

Action 2: Register Office
To register the Office application use the command:
spoonreg.exe <office exe name>@<sandbox name>

If you want this available for All Users make sure to use the /allusers flag and run the action as a Dynamic Administrator User.

Action 3: Register GroupWise
To register the GroupWise application use the command:
spoonreg.exe <groupwise exe name>@<sandbox name>

If you want this available for All Users make sure to use the /allusers flag and run the action as a Dynamic Administrator User.

Additionally, this bundle will need to depend on another bundle that deploys the spoonreg tool or you will need to run spoonreg from a network path.

Finally, you can use the spoonreg application to register a ZAV Server application on the machine. This way an icon will be present on the user’s desktop and anytime that the user launch the application it uses the virtual application that is on the server, or the cached instance.

To register a virtual app hosted by ZAV Server use the following syntax:

Spoonreg.exe /register "http(s)://<server>/Config/?a=<appname>&v=<version>"

In this command line, the appname an version is the Internal app name and version shown in the properties of the application version in the ZAV Server console, as shown below:


Register the application via the ZAV Server Plug-in on the Device

The final way to register an application so that it behaves as a locally installed application, is to register it via the ZENworks Application Virtualization server plug-in. This works if you are publishing applications to users via the ZENworks Application Virtualization Server. In the current shipping version (10.0.1) this is a manual process that the user can perform. To do this the user can right click the ZAV Server icon in the system tray and then select the application and choose Add to Start Menu as shown below:


In the next version of ZENworks Application Virtualization Server, there is an option that allows you to have the application automatically register on the user’s device as soon as they launch the application from the application portal or the web interface. This option is set on a per application basis as shown below:


As with other methods, when registering the application with the ZENworks Application Virtualization Server plug-in the application can be discovered by ZENworks inventory and will cause the application to be opened if files of appropriate extensions are selected.

Using SPOONPLAY to launch virtual applications

ZENworks Application Virtualization allows you to package applications in a streamable format and post the .svm or model files on a web server, file server, or ZAV Server. The main use case for streaming applications is to allow users to run applications quicker over slow bandwidth links. Another common use case is to use ZENworks Application Virtualization Server to deliver virtual applications to non-company owned devices (contractors, students, etc) where a fully managed solution is not available.

One of the more interesting benefits of using ZENworks Application Virtualization Server to deliver virtual applications is that you get full usage tracking, license enforcement and the ability to expire the applications. Because of these unique capabilities, even on corporate owned devices that are being managed by ZENworks it might be desirable to deliver the applications using the ZENworks Application Virtualization Server technology.

However, unlike non-managed devices, ZENworks managed devices already provide the ZENworks Application Launcher as a launch point for all of your applications. If you want to publish applications delivered by ZENworks Application Virtualization Server via ZENworks Configuration Management you can use the spoonplay.exe application in your ZENworks bundle and have the application launch from the ZENworks Application Virtualization Server when the user launches the ZENworks bundle. To do this:

  1. Create a new Windows bundle.

  • Add an Install File(s) action to the Install action set that deploys spoonplay.exe to the managed device as well as the .NET Framework svm.

  • Add a Launch Executable action to the Launch action set that executes the following command:

    Spoonplay /config="http(s)://<server>/Config/?a=<appname>&v=<version>"

    The appname and version name are the same as those displayed in the app version information shown in the spoonreg section of this document.

Now when you assign the application and the application is launched by the user it will first ensure the user is authenticated to the ZENworks Application Virtualization Server and will then automatically launch the application. If you want this to happen automatically, you can create another bundle that installs the ZENworks Application Virtualization Server plug-in first. Then once the user is logged into to the plug-in the spoonplay application should automatically launch the streamed application, without prompting for credentials. Optionally, you can also add SpoonReg to the application so that when the application is launched it is automatically registered or you can use the new 10.1 option to make this happen automatically.


The ZENworks Application Virtualization product includes tools that make it easy to integrate virtual applications with both the local desktop and with ZENworks Configuration Management or other third party software management tools.


How To-Best Practice
Comment List