Как запретить повышение прав в программе?

12

Есть ли в Windows список «автоматически отклонять запрос на повышение прав» ?

Если пользователь является «стандартным пользователем» , Windows может автоматически отклонять любые запросы на повышение прав , изменяя для параметра ConsentPromptBehaviorUserгрупповой политики значение « Автоматически отклонять запросы на повышение прав» :

  • Prompt for credentials on the secure desktop.( По умолчанию ) Когда операция требует повышения привилегий, пользователю на защищенном рабочем столе предлагается ввести другое имя пользователя и пароль. Если пользователь вводит действительные учетные данные, операция продолжается с применимой привилегией
  • Prompt for credentialsКогда операция требует повышения привилегий, пользователю предлагается ввести административное имя пользователя и пароль. Если пользователь вводит действительные учетные данные, операция продолжается с применимой привилегией
  • Automatically deny elevation requestsКогда для операции требуется повышение привилегий, отображается сообщение об ошибке «Отказано в доступе». Предприятие, которое использует настольные системы в качестве обычного пользователя, может выбрать этот параметр, чтобы уменьшить количество обращений в службу поддержки

Это полезно в ситуации, когда программа может предложить повышение уровня, но для этого потребуется, чтобы парень из службы поддержки перебил три здания (чтобы ввести их через плечо ). Только когда они попадают туда, они обнаруживают, что пользователь не должен запускать эту программу.

Мы хотим, чтобы приложение запускалось как обычный пользователь (возможно, получая ошибки, связанные с отказом в доступе ), поскольку это правильный ответ.

Но этот параметр применяется ко всем программам, которые повышают. Это возможно

  • отметить программу или
  • добавить его в список

чтобы он автоматически отклонял запросы на повышение прав и работал от имени обычного пользователя?

Проблема возникает, когда программа ошибочно:

  • отмечен как requestedExecutionLevelиз requireAdministratorв его встроенном или внешнем манифесте
  • отмечена ли опция совместимости «Запустить эту программу с администратором»
  • определяется как программа установки (например, названа installили setup) через EnableInstallerDetectionэвристику

Примечание: если приложение не имеет манифеста, можно предложить добавить манифест с указанием requestedExecutionLevel: asInvoker. Это решение также отключит виртуализацию файлов и реестра для приложения.

Смотрите также

Ян Бойд
источник

Ответы:

4

Возможное решение - использовать две согласованные политики:

  1. Настройте уже упомянутый параметр групповой политики ConsentPromptBehaviorUser на Автоматическое отклонение запросов на повышение прав . Как указано в вопросе, это повлияет на все программы, которые работают.

  2. Далее ВКЛЮЧИТЕ Контроль учетных записей пользователей: поднимайте только исполняемые файлы, которые подписаны и проверены параметры политики. (От Microsoft) Этот параметр обеспечивает проверку подписи инфраструктуры открытых ключей (PKI) для любых интерактивных приложений, которые запрашивают повышение привилегий. Администраторы предприятия могут контролировать, какие приложения разрешено запускать, добавляя сертификаты в хранилище сертификатов доверенных издателей на локальных компьютерах.

  3. Подпишите любые доверенные программы с помощью ключа вашей организации и опубликуйте его в хранилище сертификатов доверенных издателей на всех компьютерах в вашей организации. Больше информации.

Джереми У
источник
Принято, потому что ответа почти наверняка нет; и эти обходные пути были бы лучшими, которые можно получить.
Ян Бойд