Поделиться через


Влияние контроля учетных записей на приложение

Функция контроля учетных записей в Windows Vista используется для назначения учетным записям ограниченных привилегий. На этих сайтах можно найти подробную информацию о UAC:

Сборка проектов после включения контроля учетных записей

Если вы создаете проект Visual Studio C++ в Windows Vista с отключенным UAC, а затем включите UAC, необходимо очистить и перестроить проект, чтобы он работал правильно.

Приложения, для которых требуются права администратора

По умолчанию компоновщик Visual C++ внедряет фрагмент UAC в манифест приложения с уровнем выполнения asInvoker. Если для корректного выполнения приложения требуются права администратора (например, если в приложении изменяется узел HKLM реестра или выполняется запись в защищенные разделы диска, такие как каталог Windows), необходимо изменить приложение.

Первым вариантом является изменение фрагмента манифеста для установки уровня прав на requireAdministrator. В этом случае перед выполнением приложения отображается запрос на ввод учетных данных администратора. Сведения о том, как это сделать, см. в разделе /MANIFESTUAC (Внедрение сведений об UAC в манифесте).

Вторая опция — не внедрять фрагмент UAC в манифест, указав опцию компоновщика /MANIFESTUAC:NO. В этом случае приложение выполняется в режиме виртуализации. Любые изменения, вносимые в реестр или файловую систему, не сохраняются после завершения работы приложения.

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

Блок-схема поведения загрузчика Windows.

См. также

Рекомендации по безопасности