Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Использование manifest для запроса повышения прав

Ответить
Настройки темы
C/C++ - [решено] Использование manifest для запроса повышения прав

Новый участник


Сообщения: 29
Благодарности: 3

Профиль | Отправить PM | Цитировать


Дано: Некое приложение для работы под Windows Vista/7/8 должно запросить права администратора. Делаю файл манифеста:
Код: Выделить весь код
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="MyApp" type="win32"/> 
  <description>Description of MyApp</description> 
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="true"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
В результате независимо от значения uiAccess для level="requireAdministrator" при запуске приложения возникает ошибка "Сервер возвратил ссылку", запроса прав нет, приложение не запускается.
Если закомменитовать параметр requestedExecutionLevel, приложение запускается.

Вопрос классический: Кто виноват и что делать?

Отправлено: 16:56, 23-12-2014

 

Новый участник


Сообщения: 29
Благодарности: 3

Профиль | Отправить PM | Цитировать


Сам спросил, сам отвечаю:
Повышение прав программе по запросу из манифеста в общем случае будет работать только в случае, если она запущена из "безопасного места" (т.е. хотя бы %SystemRoot% или %ProgramFiles%).
Для того, чтобы можно было запускать такую программу из любого места нужно:
1. Win+R -> secpol.msc
- Локальные политики -> Параметры безопасности
2. Отключить:
- Контроль учетных записей: повышать права UIAccess-приложений только при установке в безопасных местах
ну и проверить и отключить, если включено
- Контроль учетных записей: повышение прав только для подписанных и проверенных исполняемых файлов
3. Перезагрузка.

Последний раз редактировалось RedScorpio, 23-12-2014 в 18:18.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:11, 23-12-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 713

Профиль | Отправить PM | Цитировать


Если бы разобрались, то возможно не спешили бы отвечать!
Цитата RedScorpio:
<requestedExecutionLevel level="requireAdministrator" uiAccess="true"/> »
Атрибут uiAccess отвечает за управлением окном ввода в процессах с повышенными правами для реализации специальных возможностей. Кроме того, требуется, чтобы программа была подписана (...а у нас есть цифровая подпись - сертификат?) и запускалась из папок \Program Files\ и \windows\system32\. Чаще всего, в этом нет необходимости.
Смотрите документацию - https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Цитата RedScorpio:
Для того, чтобы можно было запускать такую программу из любого места нужно: »
Ответ классический - Т.е. - <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 02-03-2015 в 03:29.


Отправлено: 04:34, 27-02-2015 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Использование manifest для запроса повышения прав

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Запуск программ с включенным UAC без повышения прав ebaboon Microsoft Windows 7 39 15-11-2016 07:59
Gmail ввел новую опцию для повышения безопасности OSZone News Новости информационных технологий 0 26-03-2010 19:30
Доступ - нет прав на использование этого ZHUKMIH Microsoft Windows 2000/XP 14 03-02-2010 15:49
Обновление железа для повышения производительности kul Выбор отдельных компонентов компьютера и конфигурации в целом 21 05-01-2008 21:33
Нужна прога для повышения яркости в играх Agent Comanche Программное обеспечение Windows 9 27-09-2004 03:18




 
Переход