FZ UAC: Difference between revisions
(New page: '''NOTE: This is a work in progress, it is not yet completed. If you find errors (especially if you are native English speaker), you can correct them anytime. Just edit it.''' =User Accou...) |
|||
Line 12: | Line 12: | ||
A program without manifest is run in the context of a standard user (NOT the currently logged on user). Filesystem virtualization is applied to such a program. | A program without manifest is run in the context of a standard user (NOT the currently logged on user). Filesystem virtualization is applied to such a program. | ||
If the program is installed in ''C:\Program Files\Program'', and tries to write a file into it's directory, | If the program is installed in ''C:\Program Files\Program'', and tries to write a file into it's directory, the file will not go into that directory, but into another, in this case ''C:\Users\<username>\AppData\Local\VirtualStore\Program Files\Program''. | ||
This is totally transparent to the older program and the user. | This is totally transparent to the older program and the user. |
Revision as of 07:27, 20 February 2009
NOTE: This is a work in progress, it is not yet completed. If you find errors (especially if you are native English speaker), you can correct them anytime. Just edit it.
User Account Control, filesystem virtualization and it's impact on Filezilla
Microsoft introduced the User Account Control (UAC) in Windows Vista, and so far it is also in the upcoming Windows 7. Among other components it also contains a feature called filesystem virtualization. Essentially it remaps reads/writes for certain files to other paths. The most important protected path we have to deal with is Program Files.
Let's assume the protected path is C:\Program Files.
Older versions of Filezilla and other programs not explicitely Vista-aware lack a so called manifest. A manifest basically tells Windows how aware the program is about the recent Windows versions. And it tells Windows about the privileges the application requires.
A program without manifest is run in the context of a standard user (NOT the currently logged on user). Filesystem virtualization is applied to such a program.
If the program is installed in C:\Program Files\Program, and tries to write a file into it's directory, the file will not go into that directory, but into another, in this case C:\Users\<username>\AppData\Local\VirtualStore\Program Files\Program.
This is totally transparent to the older program and the user.
The problem starts if you now want to access this file with a Vista-aware program, such as Filezilla. As Filezilla includes a manifest, it doesn't use the VirtualStore, but the real paths. It will of course not be able to find your file there.
(to be continued)