Microsoft Server App-V - what it is and what it is eaten with

    Server App-V is an interesting Microsoft product, which in my opinion is unfairly deprived of attention. In general, I noticed that while marketers and PR managers of this corporation break their spears, demonstrating regular tables supporting the maximum number of processors and terabytes of memory in their products, truly interesting and useful things pass unnoticed and known only to a narrow circle of enthusiasts.
    In short, Server App-V provides a mechanism for virtualizing applications, isolating them from the OS, and simplifies their delivery, just like App-V, for servers only. It is currently being served with System Center Virtual Machine Management 2012, since it can significantly speed up the process of deploying server platforms, which makes it a good help in creating and supporting all kinds of “clouds”.
    I want to share this article with my opinion on the concept of application virtualization in general, provide the information I know about Server App-V (and also arrange it in my head) and show how the deployment procedure looks like, with a simple example.


    To say that virtualization makes IT management easier is to lie. Virtualization in itself saves space, energy, money, but not time and labor. For the procedures for setting up and maintaining both the virtual and the physical servers are almost identical: prepare the hardware, install the OS, install the necessary applications, configure all this, and then update, patch and troubleshoot.
    Various automation tools make IT management easier. And here we are helped by virtual infrastructure management systems - SCVMM, vCenter ... You can prepare virtual machine templates, both in terms of virtual hardware, and in terms of OS settings. However, the third layer of infrastructure remains - applications. And here, as practice shows, practically no progress has been observed since ... I don’t even know. For all my 12 years of experience, little has changed. Distributions, perhaps more steel.

    So, what methods of stuffing the OS (no matter server or workstation) with applications are available to us?

    1. Classic- insert the disk / flash drive or go to the shared folder “Distrib” on the file hosting and run the installer. The method is simple, reliable, but by no means fast. And most importantly - tedious and tedious if you need to stamp machines on a regular basis. You can install applications directly into the VM template, so that after deployment you can already get everything installed, but, firstly, each VM requires its own set of software, and secondly, to update each program, you will need to shake all the templates. Well, if there is a centralized update system, like Microsoft WSUS or 2GIS there, but this is not for everyone, and leaving updates to the user is also a bad idea.

    2. Centralized deployment (group policy, SCCM, scripts).It removes the problem of routine (at least in terms of massively used applications), removes the problem of updating. It creates new difficulties. Impact on the virtual environment. A massive update of Adobe Reader can introduce a VDI farm into a coma for half a day. Not only will the machines pull the distribution kit over the network at about the same time, it will also hit the processor and the disks. In addition, not all applications can be deployed in silent installation mode.

    Both of the above methods have such a common drawback as the fact that applications become, in fact, part of the OS - they fill it with their libraries, registry entries, services, configs, and various obscure files. Not everything can be cleaned up or even correctly updated, and sometimes a successfully crashed application or a damaged DLL drags the operating system along to the abyss of BSOD and other undesirable phenomena. Another common drawback is that two (or more) different applications may require different versions of java, for example, or may mutually exclude each other (when I supported Microsoft Exchange 2003, I remember, it was impossible to use Outlook on a server with Exchange installed due to the fact that both used the library with the same name, but with different functionality)

    3. Delivery of virtual applications (App-V, ThinApp, XenApp). This is when the application is specially prepared in a special way - it is installed in a special virtual container and delivered to the final OS by simple copying (App-V, ThinApp) or even starts and works on a remote server (Citrix XenApp). It removes the routine problem, removes the update problem, reduces the load on processors and disks during deployment, isolates the system from the consequences of application crashes and simplifies the process of preparing virtual machines - in addition to ticking off the necessary configuration templates and OS, you will need to indicate which software we need it will be necessary to have inside the VM and, in fact, everything. Of course, this is not a magic tablet, there are drawbacks, ranging from the cost of additional licenses to the fact that not all software can be virtualized like this, but I think you need to have an idea about this path, and if possible, then use it. Server virtualization once seemed a dubious undertaking.

    Server app-v

    In essence, Server App-V is similar to App-V. Also, the [Server] App-V Sequencer is used to “pack” applications, and the App-V Agent is required for deployment on the final system. A special App-V server (App-V Server) is used to deliver App-V to desktops, and VMM is used for Server App-V.


    The use of the same terms in the name leads to confusion for search engines, which further reduces the chance of Server App-V gaining popularity and causes irritation when searching for information.
    For all the similarities, however, these are two different products and you should not try to use the Server App-V Sequencer to create Desktop App-V applications. And vice versa.

    Why do we need application virtualization on servers? Well these are not desktops, here often there is only one server - one application, and it is doubtful that it is possible to virtualize, for example, Exchange. This is yes, it is impossible. Like Microsoft SQL Server (and here, MySQL, I heard that it is possible), SharePoint. maybe some other major server software. In the development of future versions, there is priority for support for Sharepoint and Exchange roles. Also, antiviruses and programs that work at the kernel and / or hardware level fall under the restriction. I also did not see a list of explicitly supported software, however, it is known that Server App-V is optimized for applications with the following attributes:
    • stored locally on disk;
    • web applications (for IIS);
    • Windows Services
    • SQL Server Report Services
    • interaction with the registry (registry), objects COM + / DCOM, WMI, the use of the functionality of local users and groups, task scheduler.


    Actually, support for a larger number of these attributes distinguishes Server App-V from App-V for desktops. Comparison of specific features in the table:
    App-vServer app-v
    • Configuration and data changes apply to all users.
    • Application files (as well as COM / DCOM, services and WMI providers) are available only to the application itself
    • Manually adding new processes to the virtual environment

    • Configuration and data changes apply to a specific user.
    • Application files (as well as COM / DCOM, services, and WMI providers) are accessible to all computer processes. For example, a service from an App-V container can be managed through Service Manager in the general list of server services
    • Adding new processes to the virtual environment is performed by a heuristic-based sequencer. Of course, manual addition is possible.

    I won’t dive into the installation and use procedures in detail, because the interface is so uncomplicated that it is difficult to get confused. I will only note important points and give a small example.


    Installation files can be found either on the media with System Center VMM 2012 in the X: \ SAV directory, or on a server with VMM installed - C: \ Program Files \ Microsoft System Center 2012 \ Virtual Machine Manager \ SAV.
    Includes the sequencer, agent, and cmdlet 'installer for both.
    You can install it on the OS of the following versions:
    • Windows 2003 R2 SP2;
    • Windows 2008 SP2;
    • Windows 2008 R2
    • Windows 2012

    The installation itself, that the sequencer, that the agent, I think, will not cause any difficulties. It should be borne in mind that the sequencer is best installed on a clean fresh OS. Even the App-V agent should not be on it.
    Agent can be installed in silent mode:

    INSTALLDIR is the installation path.
    SWIGLOBALDATA - defines the directory where the main data will be stored (including application packages).
    SWIUSERDATA - defines a directory for storing user data.
    SWIFSDRIVE - defines the drive letter for the file system of the virtual environment.
    ACCEPTEULA - accepts the license agreement. Required parameter for silent installation.
    The following keys are also available:
    / q - activation of "silent" mode.
    / u - uninstall.
    /? - call help associated with the installer.
    The installation log is saved in% Temp%.

    Both the agent and the sequencer during the installation create a virtual disk (by default - Q :) for the file system of the virtual environment.


    I don’t know how to accurately translate this term. The option “queuing an application”, seen in the description of the course of the Specialist CA, seems delusional. I call this process "packaging."
    So, we installed the sequencer. On a freshly installed, clean OS. The "packaging" of each application requires a clean OS. And here the VM snapshots can provide us invaluable assistance. What else should be borne in mind before starting the procedure:
    • It is best that the version and revision of the OS coincide with the version and revision of the target OS (where it will be deployed).
    • Roles and Features, if required by the application, must be installed BEFORE its virtualization procedure.
    • If the virtualized application involves creating databases in MS SQL, the installed Microsoft SQL Server 2012 Feature Pack is required.

    Next, run the sequencer (what its main window looks like, can be seen at the beginning of this article). To create a new Virtual Application Package, select the target distribution, specify a name and note that the default destination directory will be our virtual file system drive (Q :). Without the need to change it is not worth it, and in addition, you will need to install the application there in the same folder.


    At the end of the application installation, you can add something else to the same container (other applications), as well as perform the initial launch of the application to configure or accept the license agreement.
    Having completed the procedure to the end, we get the SFT file of the virtual application container and a pack of auxiliary files.



    To deploy the virtual application package on the target OS, the Server App-V Agent must be installed. The servers required by the Roles and Features application must be installed BEFORE the application is deployed. Distribution of the received packages is carried out by means of VMM (Library - Application Profiles), but for a single deployment, for example in a test environment, you can use PowerShell cmdlets (AgentCmdletsSetup.exe).

    PS C: \> Set-ExecutionPolicy Remotesigned
    PS C: \> Import-Module ServerAppVAgent
    PS C: \> Add-ServerAppvPackage –Name MyApp –Manifest C: \ MyApp \ MyApp _manifest.xml –SFT C: \ MyApp \ MyApp.sft –Configuration C: \ MyApp \ deploymentconfig.xml



    As a result, we will get a link to the new application in the Start menu. It will be located on the Q: drive. The link in the shortcut properties will look something like this:

    "C:\Program Files (x86)\Server Application Virtualization\savlnch.exe" /launch:"7-Zip File Manager" 

    That's all. You can use it.

    Also popular now: