Что означает запуск приложения от имени администратора?

412
zar

Когда мы запускаем приложение как администратор, что это на самом деле означает? Мы знаем, что у него есть права вносить изменения в систему, но есть права на что именно?

Единственное, что выделяется, - это реестр, к которому он имеет полный доступ, но что еще может понадобиться типичному приложению, которого нет у обычного пользователя?

Я мог также видеть программные файлы или системные папки Windows, но я предполагаю, что большинству приложений, вероятно, не нужно вносить какие-либо изменения (другими словами, они будут работать без повышенного доступа к нему).

Поэтому я пытаюсь определить компоненты запуска приложения в качестве администратора, чтобы я мог применить эти изменения вручную, один за другим, если это возможно. Я делаю это, потому что моему приложению нужны права администратора для правильной работы в Windows 10, и я хочу сузить его, к чему именно ему нужен этот доступ.

0
«Типичное приложение» не нуждается в правах на что-либо большее, чем элементы сеанса пользователя, его запускающего. Установщик, чтобы установка была видимой для всех потенциальных пользователей, потребовала бы, чтобы эти права администратора записывали в места, к которым имеют доступ все пользователи. music2myear 6 лет назад 0
Смотрите эту статью .... https: //docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works Moab 6 лет назад 0

2 ответа на вопрос

2
Patrick Seymour

Для чего именно приложению нужны права администратора, зависит от приложения, но вы выявили две наиболее распространенные проблемы запуска без повышенных прав: защищенные области файловой системы и реестр.

Чтобы точно решить вашу проблему, вы должны запустить Process Monitor (из SysInternals). Затем запустите приложение без повышения прав. ProcMon расскажет вам, что приложение пытается сделать и терпит неудачу. Ищите результаты «Отказано в доступе».

Этот ответ хорош, но он не будет работать, если причина, по которой необходимо повысить уровень приложения, связана с правами доступа к файлам, папкам или реестру. Изменение разрешений по умолчанию для системного ключа или папки, такой как Program Files, является более плохой идеей, чем запуск приложения в качестве администратора. Ramhound 6 лет назад 0
Обычно это не Program Files, а скорее папка приложения в Program Files. Изменение разрешений для такой папки намного безопаснее, чем права администратора. Patrick Seymour 6 лет назад 0
Лучшие практики Microsoft не согласны. Данные приложения должны содержаться в AppData, изменяя права доступа к программным файлам, позволяя сломанным установщикам (например) удалять все в папке из-за подстановочного символа на этапе удаления в сценарии, если разрешения изменяются. Ramhound 6 лет назад 0
Да, конечно, но вы не всегда можете контролировать то, что делает приложение, особенно если ваша компания не сделала его. Patrick Seymour 6 лет назад 0
Я запустил монитор процесса, но не вижу доступа в результатах или даже в колонке сведений. Я вижу некоторые "ИМЯ НЕ НАЙДЕНО" и "ФАЙЛ ЗАБЛОКИРОВАН ТОЛЬКО ЧИТАТЕЛЯМИ", но все остальное - "УСПЕХ". zar 6 лет назад 0
1
dsolimano

Запуск приложения с правами администратора обычно позволяет ему делать что угодно, включая форматирование жесткого диска. Хорошо написанные приложения, кроме утилит, таких как установщики, не должны в этом нуждаться.

Тем не менее, Microsoft предоставляет инструмент под названием LUA Buglight, который можно использовать для работы с плохо написанными приложениями, чтобы предоставлять им минимальные исправления вместо того, чтобы давать им полную свободу действий.

В общем, блог Аарона Маргозиса - отличное место для изучения подобных исправлений.

Похоже, ссылка для скачивания на данный момент здесь .

Похожие вопросы