Category Archives: appv interview questions

AppV Client Logging

The App-V client logs information to both the Windows Event log and to a local log file.   Both of these logging options can be adjusted to change the type of information that is captured.   The local file based log can only be accessed by a local administrator of the machine or the SYSTEM account on the machine.

File Log

The local cache is located in profiles \All Users(Public on Vista)\Application Data\Microsoft\Application Virtualization Client\sftlog.txt.  The settings for this file can be modified using the registry at the following location:
CSIDL_COMMON_APPDATA\Microsoft\Application Virtualization Client\
Client log file. Can be modified to change the log file location. You must restart the sftlist service after changing this value.
4, Informational
Controls which messages are written to the log.  The value indicates a threshold of what is logged – everything at and below that value is logged. For example, a value of 0x3 (Warning) indicates that Warnings (0x3), Errors (0x2), and Critical Errors (0x1) are logged.
Value Range: 0x0 == None, 0x1 == Critical, 0x2 == Error, 0x3 == Warning, 0x4 == Information (Default), 0x5 == Verbose
Defines the number of backup copies that are kept of the log file, sftlog.txt when it is reset.  The valid range is 0-9999.  The default is 4.  A value of 0 means no copies will be kept.
Defines the size in megabytes that the log file can reach before being reset.  The default size is 256 MB.  When this size is reached, a log reset will be forced on the next write attempt.

System Event Log Level

The system event logging level can be configured using the App-V Client Management Console by right clicking the root node and going to properties.
Managing the event logging that will be recorded can also be modified by using the following registry key:


This registry value indicates the logging level at which App-V log messages will get written to the NT event log. The value indicates a threshold of what is logged – everything at and below that value is logged. For example, a value of 0x3 (Warning) indicates that Warnings (0x3), Errors (0x2), and Critical Errors (0x1) are logged.
Recommend Management Server Configuration
4 (Information)
·         0 == None
·         1 == Critical
·         2 == Error
·         3 == Warning
·         4 == Information
·         5 == Verbose

AppV Per-Package File System Container Volumes

The per-package file system container volumes store changes that are made to packages made by users or system processes.  These changes allow for users and the machine to make setting and configuration changes to the base package, without affecting it.  These changes are stored in several PKG files that are described below.  The files are individual for each package and stored in unique directories that are created by combining the Package Root directory name where the package was installed on the sequencer and the first portion of the package GUID.  An example for Microsoft Office 2007 where the Package Root is OFF2K7.V1 and the package GUID for office is 5C99B562-F61F-4009-AB16-B38E16093AE4the resulting directory would be OFF2K7.V1-5C99B562-F61F-4009.  Two directories for each package will be created, one for the user’s profile and one for the machine at the following locations:
Windows XP
·         Per-user at:  %USERPROFILE%\Application Data\SoftGrid Client
·         Per-machine at:  All Users\Documents\SoftGrid Client\AppFS Storage
Windows Vista
·         Per-user at: %USERPROFILE%\AppData\Roaming\SoftGrid Client\ and %userprofile%\AppData\Local\SoftGrid Client\
·         Per-machine at:  Public\Documents\SoftGrid Client\AppFS Storage
NOTE:  Due to changes in profiles in Windows Vista a third directory is created for the temporary version of the PKG file while the application is in use.
The following description of the files describes how data is populated into these files and will be covered in further detail in a Package and Data Management section of this document.

User Location

The usrvol_sftfs_v1.pkgfile contains user-specific files that are modified or new files that are created by any user process in the virtual environment.  This volume also contains the virtual environment configuration as modified by the user.

System Locations

UsrVol_sftfs_v1.pkgcontains new or modified user-specific data from a system process that is not associated with a specific user context but is associated with a specific package.
GlblVol_sftfs_v1_<SID>.pkgcontains application-specific files that are modified by any user process in the virtual environment.  The SID of the user is appended to the volume name to uniquely identify it.
GlblVol_sftfs_v1_S-1-5-20.pkgcontains any application-specific data that is modified by a system process.  The well-known SID for system is appended to the volume.  In SoftGrid 4.0 and 4.1, this volume was used for all modified application data; in 4.2 and 4.5 modifications are separated into those made by system processes such as the Listener, and those made by user application processes.  User modifications go instead to the Application Data Isolation Volume.  The global package volume also contains the virtual environment configuration for system processes.

What is SystemGuard

SystemGuard tracks and analyses configuration repositories and resources used by the application and intercepts the use of these resources, redirecting them to the virtualized instances of the resources.

The Microsoft App-V Application Virtualization Platform‘s heart is SystemGuard, a patented technology which enables applications to run without installing them locally—and without altering the client‘s operating system.

SystemGuard eliminates common application deployment and management problems:

Application Conflicts: Almost any application will run on any client at any time.

Version Incompatibilities: Different versions of the same application will run simultaneously on the same computer.

Multi-User Access: Applications that were previously unable to run in multi-user mode and therefore could not run within Citrix MetaFrame or Windows Terminal Services, will now do so and function correctly for multiple users.

Multi-Tenancy Issues: Instances of the same application using different database paths will run on the same computer at the same time.

Server Siloing and N-Way Regression Testing: The need for many separate server farms and time-intensive regression testing for application conflicts is eliminated.

MountPoint vs VFS Sequencing

There are two ways you can sequence an application. They are Mount point sequencing and VFS sequencing .
Mount Point Installation

                Installing an application to a folder in Mount point is considered to be an efficient way of sequencing application. A deeper look at the scanning operation performed during the sequencing operation would help us better comprehend the advantages of mount point installation.
As the application is installed to a mount point (Q:\), only required files are monitored by the sequencer. The tax on the sequencer to scan the entire C:\ is hugely removed in this case there by making it easily the efficient way to sequence an application.

VFS Installation

            Nonetheless, there are applications which refuse to install to a location other than C:\ (Virtual File System). Under these circumstances, the entire hard disk is scanned for system changes, making it much slower than mount point installation. Also, scanning the entire hard disk for changes would result in capturing files that are not actually used by the application.

From the above points, it is evidently visible that Mount point installation is the preferred method to sequence an application compared to VFS installation

AppV Security Descriptor

By enabling Security Descriptors during sequencing an application, permissions on the windows file system are “pulled into the bubble”. The sequencer always captures security descriptors during sequencing, but only with the Enforce Security Descriptors setting checked, the client enforces them on the file system drive at runtime.

So if a users group on the Sequencer had read rights on the T:\APP-X folder, these rights are stored in the Virtual Environment. Once streamed and run on the client, the user cannot edit in this specific folder. In this manner you can set permissions on parts of the Virtual Environment and secure parts of being modified by a user
On the contrary, I would check this option ONLY when it is absolutely essential. Meaning, only for badly written software which expects specific security settings for proper functionality would precisely be the circumstances under which I would keep the option checked. When the security descriptors are turned off, the user is considered to have full rights on the asset directory which would be the ideal case.
USEFUL TIP you can turn off “Enforce Security Descriptor” by default by editing the “Default.sprj” file.

Open the “Default.sprj” file with notepad, search for “UseSecurityDescriptors” and set the value to “NO” and save the file.

Where OSD Script Runs

Where the script runs

The script can run in the following two locations:

  • Inside the Virtual Environment
  • Outside the Virtual Environment

Set the PROTECT attribute as follows:

  • PROTECT=True
    This setting configures the script to run in the Virtual Environment. You can use this setting to run scripts that are used to troubleshoot issues.
  • PROTECT=False
    This attribute configures the script to run outside the Virtual Environment. For example, you can use this setting to run scripts that copy files locally to the client.

When OSD Script Runs

When the script runs

You can use the .osd file to run scripts at various times during the startup of App-V (SoftGrid)-enabled programs. The “SCRIPT TIMING and EVENT” setting in the script comes first. Under this setting, the following attributes determine when the script runs:

    This attribute runs the script before the program starts streaming. For example, use this attribute when you have to open a virtual private network (VPN) connection to the App-V (SoftGrid) server before you run the program.
    This attribute runs the script after authorization and after the program starts streaming but before the Virtual Environment is set up.
    This attribute runs the script inside the virtual environment before the program runs.
    This attribute runs the script after the program is started.
    This attribute runs the script after the program is shut down. For example, use this attribute to clean up configuration settings or to delete configuration files.

How OSD script runs

How the script runs

The new TIMEOUT attribute determines the following:

  • Whether the App-V (SoftGrid) client waits for the script to finish
  • The period that the App-V (SoftGrid) client will wait for the script to finish

For backward compatibility, the WAIT attribute is still supported in Microsoft App-V 4.x and in Microsoft SoftGrid 4.x

Set these attributes as follows:


    • TIMEOUT=x
      The client will wait x seconds for the script to finish before the client returns an error.
    • TIMEOUT=0
      The client will wait indefinitely for the script to finish.


    • Wait=False
      The client will continue without waiting for the script to finish.
    • Wait=True
      The client will not start the next step until the script finishes.


  • The client does not support a pre-shutdown event. You cannot determine the exact moment at which a user will perform a shutdown. For example, you cannot predict when the user will clickClose or when the user will press ALT+F4.
  • You can use scripts in any language. However, the language must be installed locally on the client computer.

App-V Client Offline Mode Settings

Following registries needs to be changed on App-V Client systems to run AppV client in Standalone/Offline modde

On 32bit machines the registry path is HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client

On 64bit machines the registry parth is

The settings required are:

HKLM\…\Configuration AllowIndependentFileStreaming 1
HKLM\…\Configuration RequireAuthorizationIfCached 0
HKLM\…\Network AllowDisconnectedOperation         1
HKLM\…\Network LimitedDisconnectedOperation 0