CoW and its Exclusions in App-V 5.0

Share on facebook
Share on twitter
Share on linkedin
Share on reddit
Share on stumbleupon

**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.

Leave a Reply.

15 thoughts on “CoW and its Exclusions in App-V 5.0”

  1. 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!

    Reply
  2. 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!

    Reply

Leave a comment