%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D0%BC%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B2%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%20Program%20Files.png)
Мне надоели старые приложения, которые ведут себя странно, потому что не могут писать в каталог "Program Files". Я не хочу вручную задавать им запуск от имени администратора, и меня не особо волнует безопасность — помимо того, что я доверяю приложениям, которые запускаю, я загружаю Windows только для запуска игр (так что раздел не содержит никаких ценных данных), и в любом случае мне обычно приходится переустанавливать Windows каждые пару месяцев.
Как сделать Program Files и Program Files (x86) обычными каталогами (с точки зрения разрешений), в которые каждое приложение сможет записывать данные независимо от разрешений?
Так уж получилось, что сейчас я использую Windows 10, но в идеале мне бы хотелось узнать, как это сделать и на 8/7/Vista, чтобы в будущем можно было воспользоваться этой возможностью.
Редактировать: Должен отметить, что я использую корпоративную версию Windows 10, поэтому при необходимости могу изменять групповые политики или что-то еще.
решение1
Вы можете заставить приложения записывать данные в Program Files, изменив настройки безопасности папки.
- Перейдите в свойства и выберите вкладку Безопасность.
Нажмите «Дополнительно».
- Измените владельца на свой собственный аккаунт вместо
TrustedInstaller
, и позвольте ему распространиться. Это позволит вам добавить себя в список принципалов. - Нажмите «Добавить» и введите свое имя пользователя, нажмите «Проверить имена», и оно будет автоматически исправлено.
Теперь вы можете добавить «Полный доступ» для своего имени пользователя, и все запущенные вами приложения смогут записывать данные в эту папку и ее подпапки.
Это помогло мне заставить Chrome сохранять профили OpenVPN непосредственно в каталоге установки.
решение2
Благодаря функциям безопасности, представленным в Windows Vista (UAC), любая программа, не имеющая прав администратора, которая попытается выполнить запись в защищенные расположения, такие как «Program Files», будет перехвачена и перенаправлена в альтернативное «удобное для пользователя» расположение.
Википедия утверждает(и я выделил соответствующий раздел):
Приложения, написанные с предположением, что пользователь будет работать с правами администратора, испытывали проблемы в более ранних версиях Windows при запуске из-под учетных записей с ограниченными правами, часто из-за того, что они пытались записать в общемашинные или системные каталоги (например, Program Files) или разделы реестра (в частности, HKLM). UAC пытается облегчить это с помощьюВиртуализация файлов и реестра, которая перенаправляет записи (и последующие чтения) в определенное для каждого пользователя место в профиле пользователя.Например, если приложение пытается выполнить запись в «C:\program files\appname\settings.ini», а у пользователя нет прав на запись в этот каталог, запись будет перенаправлена в «C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini».
Это не то, что нельзя изменить. Это сделано намеренно.