none
Временное получение прав администратора для приложения RRS feed

  • Вопрос

  • Всем доброго времени суток!

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

    Заранее, спасибо!

    • Перемещено Tagore Bandlamudi 1 октября 2010 г. 22:07 MSDN Forums consolidation (От:Visual C#)

Все ответы

  • Добрый день. Посмотрите следующий топик, думаю он будет полезен:

    run as administrator with default


    Для связи [Mail]
  • Присоединяюсь к топику. Полно семплов о том как

    1. Сразу потребовать административных прав на все приложение, через манифест (как по ссылке выше)

    2. Запустить другое приложение как elevated.

    Уже обсуджалось где-то рядом, предложили вынести весь код, требующий elevation, в отдельный exe, и свести задачу к (2).

    Существует ли способ временно получить права администратора (не слишком сложный ес-но)?

  • Вариант с созданием второго файла, который бы имеел права администратора рассматривался, но хотелось бы все таки запускать только один метод. У меня проблема с запуском\остановкой служб. Ими можно управлять и через командную строку, поэтому как вариант можно попробовать запустить отдельный процесс с соответствующей командой. Поэтому если есть возможность запустить процесс с правами администратора из кода, это было бы тоже очень замечательно.
  • Запуск стороннего exe'шника с правами администратора
      ProcessStartInfo processInfo = new ProcessStartInfo();
      processInfo.Verb = "runas";
      processInfo.FileName = "notepad.exe";
      Process.Start(processInfo);
    Смотри также: 
    http://victorhurdugaci.com/using-uac-with-c-part-1/

    31 марта 2011 г. 17:34
  • Перечитай еще раз предудущие ответы в этом топике, и в частности, тот пост, на который ты ответил.

    Edit: возможно, именно ситуации сервисами и сработает.


    My blog | My pet project
    • Изменено PashaPash 2 апреля 2011 г. 10:18
    31 марта 2011 г. 19:41
  • Вы никак не сможете получить права администратора временно.

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

    Кстати, я например пользуюсь вариантом, который например описал Dmitry Sharihin. Вызываю параметризованное приложение из самого себя, но уже с запросом на повышенные привилегии.


    Best regards, Alexander Kutin
    2 апреля 2011 г. 6:54
  • Есть подтверждение что я "никак не могу"? Статья в msdn, хотя бы пост где-то на форумах от человека из команды win?

    Варианты с runas или манифестом гугляться за пару минут. Думаю, за год топикастер наверняка нашел вариант с runas и применил его. И тему давно надо было переместить в обсуждения.

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


    My blog | My pet project
    2 апреля 2011 г. 10:16