Apr 01, 2014 - 15 Comments - Virtual Vibes -

CoW and its Exclusions in App-V 5.0

**Update** The CoW exclusions list in App-V 5.1 has been reduced to just .exe, .dll, .ocx and .com | Click here for more details

CoW stands for Copy on Write and it’s a concept discussed in depth in our App-V 5 SP2 Application Publishing and Client Interaction guide. I’ve also talked about it in depth in my posts around state changes for user based files and registry, global files and global registry. In short CoW allows us to write dynamically to locations within the package while it is in use.

While it’s great being able to write dynamically to these locations there are some restrictions in place, primarily concerning certain file type extensions.

exclusions

Take the example above, I have opened an explorer window inside the bubble of my Adobe Reader package. I can easily copy my .txt into the virtual environment, however no matter how hard I try the .dll just won’t write in. This is a CoW Exclusion.

App-V doesn’t allow us the write any of the following file extensions via CoW:

.acm

.asa

.asp

.aspx

.ax

.bat

.cer

.chm

.clb

.cmd

.cnt

.cnv

.com

.cpl

.cpx

.crt

.dll

.drv

.exe

.fon

.grp

.hlp

.hta

.ime

.inf

.ins

.isp

.its

.js

.jse

.lnk

.msc

.msi

.msp

.mst

.mui

.nls

.ocx

.pal

.pcd

.pif

.reg

.scf

.scr

.sct

.shb

.shs

.sys

.tlb

.tsp

.url

.vb

.vbe

.vbs

.vsmacros

.ws

.wsc

.wsf

.wsh

 

How attempts to CoW excluded file extensions will be handled differently depending on the operation that is taking place, for example in the instance above explorer simply doesn’t allow the copy operation to take place.

Some customers I have talked to have inadvertently already come across this with some of their weird and wacky applications. For example the other day I saw an application that allowed users to set a password to be asked at start up, should the user set a password, the application would write out the password into a text file which it actually stored under a .dll (for security!!!). This feature didn’t work once sequenced as CoW exclusions stopped the writing of the .dll.

Why have exclusions?

There are two main reasons for these CoW exclusions:

  1. Due to the way memory manager works it is very difficult to allow the hot-swapping of files that might be in use when the file itself contains code or has programmatic properties.
  2. It is a core value proposition of App-V that we maintain the integrity of the upgrade process. This integrity would be comprised should App-V allow core binaries to be changed outside of the sequencing process.

15 Responses to CoW and its Exclusions in App-V 5.0

  1. Ben Bonnette

    Does this also apply to certain folders? I get permission errors when attempting to add a file with a ‘.config’ extension (basically an XML) within the ProgramFilesx86 folder (or even simply creating a new folder). The Windows folder gives the same permissions error as well, but APPV_ROOT and others (non-‘S’ ending folders) work just fine. Mainly trying to understand this as it could be a huge benefit for testing. Thanks!

    8 Apr 2014 - Reply
  2. A Blast from the Past – Security Descriptors and Save as New Package are back with App-V 5.0 SP2 Hotfix 4 | VirtualVibes

    […] as part of a sequencer template however remember even with this setting we are still bound by the file type exclusions which we don’t support being written into […]

    6 May 2014 - Reply
  3. Lucas Kenner

    Hi,
    it would be great if you could help me.
    I want to create a txt-file with powershell in my virtual enviroment.
    which path do i use in the script? “.\” works fine with creating folders but not with files.

    thanks!

    22 May 2014 - Reply
    • Thamim Karim

      Hi Lucas,

      Can you give me an example of the script you are using…

      23 May 2014 - Reply
      • Lucas Kenner

        sure:
        new-item -Path .\test1.txt -ItemType file

        my first thought was that it should create a txt-file in the folder whrere the script is running (in my case the scripts-folder of the app-v package)

        16 Jun 2014 - Reply
        • Thamim Karim

          What happens when you create a folder? Where does it go? I would suspect files would be written to the working directory of the application?

          18 Jun 2014 - Reply
          • Abraham

            I would like to know whether .flt file comes under exclusion list?

            24 Jun 2014 -
  4. Abraham

    I would like to know whether .flt file comes under exclusion list?

    24 Jun 2014 - Reply
    • Thamim Karim

      Hi Abraham, .flt does not, only the list of file types above are excluded.

      24 Jun 2014 - Reply
  5. Issue With App-V 5 and Java Mission Control

    […] in this folder to see if it’s writable; and this file extension is read-only in the VFS (see here for more info on which file types are blocked). Here is the Procmon […]

    5 Aug 2014 - Reply
  6. App-V 5.1 | The Feature Run Down | Virtual Vibes

    […] list of CoW exclusions (file types that cannot be written into the VE while it is running), you can refer to this here. 5.1 has now shrunk this list of 59 file types down to the […]

    17 Aug 2015 - Reply
  7. CoW and its Exclusions in App-V 5.0 | VirtualVibes

    […] This post has moved here […]

    28 Apr 2016 - Reply

Leave a Reply

Your email address will not be published. Required fields are marked *