Real Geek Forums  

Go Back   Real Geek Forums > Archives > Operating Systems > Windows Vista > Windows Vista Administration

Notices

Reply

Program Files Virtualisation

 

LinkBack Thread Tools Display Modes
Old 03-21-2007, 03:59 PM   #1 (permalink)
Default Program Files Virtualisation

I _think_ I understand the reasoning behind virtualisation of Program Files
(and other system folders) is to make older applications work with the new
security. But why are the virtualised files stored on a per-user basis,
rather than somewhere accessible to all users? Surely applications storing
settings under Program Files expect these settings to be the same for all
users, so why does Vista's "compatibility" features turn these into per-user
settings?

I have got around this in one case, where a small app stores all its
settings in a single configuration file under Program Files, by giving all
users full access to that one file. This seems to prevent a virtualised copy
of the file being created.

This wouldn't be so easy for other applications which may create several
files and folders under Program Files, particularly ones where downloaded
plugins are also stored there. For example, having logged in as an
administrator and installed extra language packs for Mozilla SeaMonkey, these
were then not available to other users, since they had been stored in the
"Admin" account's virtualised Program Files. Using Run As Administrator to
launch the web browser and install the language packs got around the problem,
but why could they not have been stored to a virtual store common to all
users in the first place?

Presumably I would be up against the same problem installing further add-ons
in the future - having to close down all instances of the web browser and the
quick-starter before running the browser as Administrator to install the
add-ons. (If I select Run As Administrator on it while there is an instance
running with lower access, it seems that the newly opened instance is also
opened with the lower access. Possibly this is to do with the "quick starter"
running, with user access, in the system tray being called on to actually
open an instance of the browser)

OK - so in this case I am installing add-ons to an application, so maybe I
should have to Run As Administrator to do that, even if that is a little
inconvenient. But a similar problem would exist with a spell-checker which
stores its custom words list under Program Files, so all users can access it.
Under Vista, each user would see their own version of the "global" words list!

I realise one solution would probably be to give all users full access to
the entire folder in which SeaMonkey is installed (and any other applications
experiencing similar problems), but presumably that would be breaking the
security which has been designed into Vista.

Is giving all users full access to certain files and folders within Program
Files the "right" way of achieving the result I want (ie. that all users see
the same global file rather than their own, provate vitualised copy of it)),
or is there some way to make virualised copies accessible to all users?

Thanks,
Mark.

Mark
Guest
 
Posts: n/a
Reply With Quote  
Old 03-21-2007, 04:35 PM   #2 (permalink)
Default Re: Program Files Virtualisation

I have several hundred .doc recipe files on my XP and they will not open
correctly with Vista. The XP opens them with Wordpad and reads correctly.
The Wordpad.exe file in Vista is larger, than in XP, and the files open as
garbage.


Tom
Guest
 
Posts: n/a
Reply With Quote  
Old 03-22-2007, 12:38 AM   #3 (permalink)
Default Re: Program Files Virtualisation

Hello,

Making the "virtualized" content accessible by all users would be just as
bad as making the original location world-writable, so there would be no
point.

You are correct in assuming this has to do with the security policy in
Vista.

In Windows Vista, as in all earlier versions of Windows NT, each
system-defined location has specific purposes that application developers
are supposed to adhere to.

The biggest thing application developers "break" is the taboo with accessing
program files.

Program Files is *NOT* the application's "scratch pad" area for storing
files and data. The program does not "own" its folder here, and it has never
been acceptable for programs to store files and settings here.

Applications have always been expected to expect this area to be read-only.

Program Files is for just that; static, read-only program files that
constitute the core files that an application needs to run, and that are not
user-specific.

User-specific data goes inside a user's profile folder or a few other
special folders.

All machine-wide configuration data goes inside another special folder
designed for this purpose.

Why is this?

Well, program-files is MACHINE-WIDE, and contains the executable files for
well-known programs and system components.

It is important that these types of files be SEPERATE from other types of
data because SPECIFICALLY these types of files SHOULD NOT be accessible by
non-administrators. Because allowing non-admin writes to this area would
allow anybody to replace these machine-wide program files with malicious
program files, that would affect every user on the computer.

Basically, the secure in Windows Vista works like this:

* If the file, directory, registry key, etc, belongs to a certain user, then
every program that the user runs has access to it

* If the file, directory, registry key, etc, does NOT belong to a certain
user, then only administrative programs have write access; all other
programs have read-only access.

This enforces the "rule" that only administrators (and administrative
programs) can access anything that will affect the state of the computer or
another computer.

So you are correct that a Vista-compatible program would need to ask you for
permission to update its program files (in order to run the updater as
admin) or have the updater running as a service in the background.

Virtualization is a hack that works within this security policy to make
these misbehaving programs work.

Unfortunately, the correct solution to this problem is for the applications
that are misbeaving to be modified to follow these guidelines.

As a hack, you can indeed do as you did by modifying the security on the
files that the application expects to be world-writable, or running the
application as administrator.

You are correct that these are the only solutions available to you.

--
- JB
Microsoft MVP - Windows Shell/User

Windows Vista Support Faq
http://www.jimmah.com/vista/

Jimmy Brush
Guest
 
Posts: n/a
Reply With Quote  
Old 03-22-2007, 02:53 AM   #4 (permalink)
Default Re: Program Files Virtualisation

Tom

If the files were created in Microsoft Word, then you need Word installed to
workwith those files. If you simply want to read those files and not make
any changes, there is a free Word Viewer available.

You can download the viewer here:

Download details: Word Viewer 2003:
http://www.microsoft.com/downloads/d...DisplayLang=en


--

Ronnie Vernon
Microsoft MVP
Windows Shell/User


"Tom" <Tom@Metroplex.com> wrote in message
news:a9dMh.9695$Um6.5856@newssvr12.news.prodigy.ne t...
Quote:
>I have several hundred .doc recipe files on my XP and they will not open
> correctly with Vista. The XP opens them with Wordpad and reads correctly.
> The Wordpad.exe file in Vista is larger, than in XP, and the files open
> as
> garbage.
>
>
Ronnie Vernon MVP
Guest
 
Posts: n/a
Reply With Quote  
Old 03-22-2007, 03:44 PM   #5 (permalink)
Default Re: Program Files Virtualisation

Jimmy Brush wrote:
Quote:
> Hello,
>
> Making the "virtualized" content accessible by all users would be just
> as bad as making the original location world-writable, so there would be
> no point.
I wondered if that might be the case.
Quote:
>
> You are correct in assuming this has to do with the security policy in
> Vista.
>
> In Windows Vista, as in all earlier versions of Windows NT, each
> system-defined location has specific purposes that application
> developers are supposed to adhere to.
>
> The biggest thing application developers "break" is the taboo with
> accessing program files.
>
> Program Files is *NOT* the application's "scratch pad" area for storing
> files and data. The program does not "own" its folder here, and it has
> never been acceptable for programs to store files and settings here.
>
> Applications have always been expected to expect this area to be read-only.
>
> Program Files is for just that; static, read-only program files that
> constitute the core files that an application needs to run, and that are
> not user-specific.
>
> User-specific data goes inside a user's profile folder or a few other
> special folders.
>
> All machine-wide configuration data goes inside another special folder
> designed for this purpose.
I assume this folder is C:\ProgramData? Some of the folders already in
that location are not writeable by all users, but presumably it is up to
the program's install process to correctly set these permissions?
Quote:
>
> Why is this?
>
> Well, program-files is MACHINE-WIDE, and contains the executable files
> for well-known programs and system components.
>
> It is important that these types of files be SEPERATE from other types
> of data because SPECIFICALLY these types of files SHOULD NOT be
> accessible by non-administrators. Because allowing non-admin writes to
> this area would allow anybody to replace these machine-wide program
> files with malicious program files, that would affect every user on the
> computer.
>
> Basically, the secure in Windows Vista works like this:
>
> * If the file, directory, registry key, etc, belongs to a certain user,
> then every program that the user runs has access to it
>
> * If the file, directory, registry key, etc, does NOT belong to a
> certain user, then only administrative programs have write access; all
> other programs have read-only access.
>
> This enforces the "rule" that only administrators (and administrative
> programs) can access anything that will affect the state of the computer
> or another computer.
>
> So you are correct that a Vista-compatible program would need to ask you
> for permission to update its program files (in order to run the updater
> as admin) or have the updater running as a service in the background.
>
> Virtualization is a hack that works within this security policy to make
> these misbehaving programs work.
>
> Unfortunately, the correct solution to this problem is for the
> applications that are misbeaving to be modified to follow these guidelines.
Unfortunately not likely in the first case I described, as that is a
small open-source utility which is not currently active. Setting
permissions on a single file isn't too much of a problem though.
Quote:
>
> As a hack, you can indeed do as you did by modifying the security on the
> files that the application expects to be world-writable, or running the
> application as administrator.
I'd prefer not to make a program's entire folder world-writeable, as
would be required for Mozilla, but hopefully that's big enough to be
corrected fairly soon.

Interestingly, I have noticed one of Windows Live Messenger's files
being virtualised - is this a bug in WLM?
Quote:
>
> You are correct that these are the only solutions available to you.
>
Thanks for taking the time to respond.

Mark.
Mark Bourne
Guest
 
Posts: n/a
Reply With Quote  
Old 03-23-2007, 12:28 PM   #6 (permalink)
Default Re: Program Files Virtualisation

<snip>
Quote:
Quote:
>> All machine-wide configuration data goes inside another special folder
>> designed for this purpose.
Quote:
> I assume this folder is C:\ProgramData? Some of the folders already in
> that location are not writeable by all users, but presumably it is up to
> the program's install process to correctly set these permissions?
Yes, this is the machine-wide settings folder ... and the security on this
folder is set up such that any user can create data here, but once created
that data can only be modified by the user who created it, while being
viewable by any account on the system.

The OS enforces user-account seperation, even in this location .

Applications can of course override this behavior in their setup program to
make a truely world-read/writable file/folder, however if possible, it is
better for an application to find a way to work within the default
boundaries.

<snip>
Quote:
Quote:
>> Unfortunately, the correct solution to this problem is for the
>> applications that are misbeaving to be modified to follow these
>> guidelines.
Quote:
> Unfortunately not likely in the first case I described, as that is a small
> open-source utility which is not currently active. Setting permissions on
> a single file isn't too much of a problem though.
Yes, you were lucky in that regard .

<snip>
Quote:
Quote:
>>
>> As a hack, you can indeed do as you did by modifying the security on the
>> files that the application expects to be world-writable, or running the
>> application as administrator.
Quote:
> I'd prefer not to make a program's entire folder world-writeable, as would
> be required for Mozilla, but hopefully that's big enough to be corrected
> fairly soon.
I would hope so as well.
Quote:
> Interestingly, I have noticed one of Windows Live Messenger's files being
> virtualised - is this a bug in WLM?
Yes - Vista-compatible programs must not rely on virtualization in order to
function.
Quote:
Quote:
>>
>> You are correct that these are the only solutions available to you.
>>
>
> Thanks for taking the time to respond.

You're welcome .



--
- JB
Microsoft MVP - Windows Shell/User

Windows Vista Support Faq
http://www.jimmah.com/vista/

Jimmy Brush
Guest
 
Posts: n/a
Reply With Quote  
Reply

Tags
None

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads

Thread Thread Starter Forum Replies Last Post
Files attributes Read Only in Program files Munteanu Gabriel Windows Vista File Management 4 04-24-2008 05:36 PM
XP User Files and Program Files Corbin Matthews Windows XP Configuration & Management 1 10-15-2004 08:15 AM
XP Program Files, User Files, etc... Configuration Corbin Matthews Windows XP Configuration & Management 0 10-15-2004 04:37 AM
Is there any way to tell what files a program is using? Tom Dawson Windows XP Security & Administration 1 07-17-2003 04:19 PM
program files not letting me see subfolders and files Gary Brower Windows XP Network & Web 0 07-07-2003 11:01 PM


All times are GMT. The time now is 11:56 PM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright © 2005 - 2007 RealGeek.com. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48