6

I am tired of old applications behaving strangely because they cannot write to the "Program Files" directory. I don't want to have to manually set them to run as administrator, and I am not particularly concerned about security--in addition to trusting the applications I run, I only ever boot into Windows to run games (so the partition doesn't contain any valuable data), and I usually end up reinstalling Windows every couple of months anyway.

How can I make Program Files and Program Files (x86) into normal directories (from a permissions perspective) that every application is able to write to, regardless of permissions?

I happen to be running Windows 10 at the moment, but ideally I'd like to know how to do this on 8/7/Vista as well, for future reference.

Edit: I should note that I happen to be using an enterprise edition of Windows 10, so I can modify group policies or whatever else if need be.

  • 2
    Change the permissions on that program folder. – Moab Jan 25 '16 at 23:45
  • I assumed this was what I needed to do, but Windows's UI doesn't make it immediately clear (at least to me) what I need to change or how to change it. If you could give me some more detailed guidance, I'd really appreciate it. – Wowfunhappy Jan 25 '16 at 23:47
  • Pretty sure this was the purpose of introducing the Program Data dir. They don't want you to be able to write to Program Files anymore. – Dandy Jan 25 '16 at 23:59
  • 1
    I know that they don't want me to, but I do and it's my computer! >:0 – Wowfunhappy Jan 26 '16 at 0:03
  • Added a more meaty reply. Welcome to Windows, its their code, they don't want you to! I'm sure there's a way to hack around it, but this'll cause more problems then it solves I'm sure. – Dandy Jan 26 '16 at 0:04
4

You can get applications to write to Program Files by changing the folder's security settings.

  1. Go to properties and select the Security tab.
  2. Click Advanced.

    enter image description here

  3. Change ownership to your own account instead of TrustedInstaller, and let it propagate. This allows you to add yourself to the list of principals.
  4. Click 'Add' and type your username, press 'Check names' and it autocorrects.

Now you can add 'Full control' for your username, and all applications you run should be able to write to this folder and its subfolders.

This helped me get Chrome to save OpenVPN profiles directly to its install directory.

6

Due to security features introduced with Windows Vista (UAC) any non-Administrator program that tries to write to protected locations such as "Program Files" will get their writes caught and redirected to an alternative "user friendly" location.

Wikipedia states (and I've highlighted the relevant section):

Applications written with the assumption that the user will be running with administrator privileges experienced problems in earlier versions of Windows when run from limited user accounts, often because they attempted to write to machine-wide or system directories (such as Program Files) or registry keys (notably HKLM). UAC attempts to alleviate this using File and Registry Virtualization, which redirects writes (and subsequent reads) to a per-user location within the user’s profile. For example, if an application attempts to write to “C:\program files\appname\settings.ini” and the user doesn’t have permissions to write to that directory, the write will get redirected to “C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini”.

This just isn't something you can't change. This is intentional.

  • So there's no way to stop Program Files from being a protected location? – Wowfunhappy Jan 26 '16 at 0:04
  • 1
    Sure;You can permanently change the permission but that will break Windows – Ramhound Jan 26 '16 at 0:24
  • 1
    The real issue is with the software being written to not work properly with Windows as it's supposed to so yes, perhaps you can set explicit security, hack a registry setting, etc. for a workaround to the software issue, but the real issue is the software coder or vendor is not writing the code to work with newer versions of Windows as they should understand. I've seen this time and time again for software even sold to businesses having issues. I ALWAYS scream back at the vendors to put pressure on for a real solution to make it their problem, they need to feel the pain too it's their software – Pimp Juice IT Jan 26 '16 at 4:50
  • 1
    @Ramhound When you say it would "break" Windows, do you have an idea of what exactly the side effects would be? – Wowfunhappy Jan 29 '16 at 1:27
  • 1
    Applications that expect the correct behavior will not work – Ramhound Jan 29 '16 at 1:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.