Получить список папок, защищенных UAC - PullRequest
0 голосов
/ 16 июня 2011

Как получить список защищенных от записи папок с включенным UAC? Процесс, которому нужна эта информация, запускается с правами администратора (установщик).

Ответы [ 2 ]

8 голосов
/ 16 июня 2011

UAC не защищает папки.UAC удаляет SID администратора из токена доступа пользователя, превращая его в обычного ограниченного («обычного») пользователя.Приложения могут запрашивать повышение прав через манифесты - тогда весь процесс запускается с токеном администратора.

Если папки недоступны для записи с включенным UAC, это означает, что безопасность NTFS установлена ​​так, что обычные пользователи не могут писать, а администраторы могут.В качестве исправления либо измените разрешения для этих папок, либо запустите приложение с повышенными правами (или измените его структуру, чтобы она выполняла запись в места, к которым имеют доступ обычные пользователи).

Если вы имеете в виду виртуализацию UAC (перенаправление попыток записи из системных областейв профиль пользователя): здесь - хорошее описание функции, из которой я скопировал следующее:

  • Виртуализация включена только для:
    • 32битовые интерактивные процессы
    • Доступные для записи администратору файлы / папки и ключи реестра
  • Виртуализация отключена для:
    • 64-битных процессов
    • Не-интерактивные процессы
    • Процессы, которые олицетворяют
    • Вызывающие режим ядра
    • Исполняемые файлы, которые имеют требуемыйExecutionLevel
1 голос
/ 16 июня 2011

Насколько я знаю, нет никакого API-способа сделать это. Чтобы сделать это вручную, вы должны попытаться записать в каждую папку и посмотреть, есть ли какие-либо исключения. Чтобы еще больше усложнить проблему, вы можете запустить виртуализацию файлов, и в этом случае вы сможете писать, но она переместится в другое место.

...