Как гарантировать постоянные права администратора для моего приложения WPF - PullRequest
2 голосов
/ 20 сентября 2011

Я прочитал много статей о выявлении UAC в Windows 7 и т. Д., Но мне не удалось найти ответ на мой вопрос: как гарантировать, что мое приложение всегда будет «Запуск от имени администратора», я ищу фрагмент кода или что-то еще. Любая помощь будет оценена. / И, пожалуйста, не спам с сообщениями вроде: «Вы уверены, что вам нужны эти привилегии и доступ» - Да, я уверен, что приложение нуждается в них.

Ответы [ 4 ]

7 голосов
/ 20 сентября 2011

Добавьте в приложение манифест приложения со следующим разделом:

<security>
  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />    
  </requestedPrivileges>
</security>
4 голосов
/ 20 сентября 2011
2 голосов
/ 21 сентября 2011

Windows не имеет возможности предоставить приложению административные привилегии;разрешения предоставляются пользователем .

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

Для программы не может быть «гарантированных постоянных» прав администратора, поскольку программа этого желает. пользователю должны быть предоставлены разрешения.

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

Но запрос на предоставление приложению прав администратора невозможен.

1 голос
/ 21 сентября 2011

Если я правильно понимаю, ваше приложение станет пользовательской оболочкой, то есть заменит Windows Explorer.В этом сценарии вы можете обойти UAC различными способами, например, с помощью диспетчера учетных данных, чтобы получить учетные данные пользователя и использовать их для создания нового токена, или подключив функцию LogonUser и захватив немодифицированный токен.

Однако самым простым подходом на сегодняшний день было бы отключение UAC.Если пользователь не будет использовать Internet Explorer или другую программу, использующую изолированную программную среду UAC, вероятно, нет причин оставлять UAC включенным в вашем сценарии.

...