Страница 1 из 5
Права администратора для приложения
Добавлено: 07.04.2016 00:51:41
mirk
ОС MS Windows 7, приложению необходимо:
1. Создать каталог и записать файл в недоступную для чтения обычным пользователем область.
2. Записать значение в ветку реестра недоступную для записи пользователем.
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
Re: Права администратора для приложения
Добавлено: 07.04.2016 07:52:09
fwp
Необходимо запустить процесс от пользователя с правами админа.
Re: Права администратора для приложения
Добавлено: 07.04.2016 08:45:56
mirk
Как?
Re: Права администратора для приложения
Добавлено: 07.04.2016 09:12:45
SSerge
mirk писал(а):Как?
Правой кнопкой мыши кликнуть на иконе приложения, выбрать пункт "Запуск от имени администратора"
Re: Права администратора для приложения
Добавлено: 07.04.2016 10:12:42
fwp
Где-то в недрах CreateProcessAsUser() кроется такая возможность. Правда там надо на низком уровне воевать с пользовательскими токенами, сменой контекста и т.п.
Я под виндами на шарпе пишу. Там класс Process скрывает всю эту лабудень. И подобную задачу буквально на днях решал. Заплатку на Crypto Pro вешал.
Re: Права администратора для приложения
Добавлено: 07.04.2016 13:23:59
mirk
SSerge писал(а):Правой кнопкой мыши кликнуть на иконе приложения, выбрать пункт "Запуск от имени администратора"
mirk писал(а):Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
fwp писал(а):Где-то в недрах CreateProcessAsUser() кроется такая возможность.
Но это получается вызов нового процесса, а не исполнение текущего с правами администратора?
Может реестре можно указать автозапуск с привилегиями?
Нашел через планировщик, но не хочется туда лезть.
Re: Права администратора для приложения
Добавлено: 07.04.2016 16:54:20
fwp
mirk писал(а):Но это получается вызов нового процесса, а не исполнение текущего с правами администратора?
А кто будет запускать приложение?
Ежели ты сам, то запусти far от себя и вперед.
А ежели пользователь, то приложение получит токен безопасности пользователя. И как это обойти я не знаю. Единственный выход, что я нашел - это запуск пользователем и запуск дочернего процесса с правами админа.
Ну или планировщик с правами админа. Что собственно те же яйца тока в профиль.
P.S. Да, еще тебе м.б. поможет psexec от Русиновича.
Re: Права администратора для приложения
Добавлено: 07.04.2016 18:24:27
slyubez
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
Я так понимаю, отключить UAC средствами винды. Но это будет распространено на все приложения.
Re: Права администратора для приложения
Добавлено: 07.04.2016 19:03:46
mirk
fwp писал(а):А кто будет запускать приложение?
Автозапуск.
Но я пока не нашел как сделать его с привилегиями, поэтому и решил поискать как приложению дать права администратора.
Re: Права администратора для приложения
Добавлено: 07.04.2016 19:26:03
Лекс Айрин
mirk, вирус пишете?
Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
Re: Права администратора для приложения
Добавлено: 07.04.2016 20:39:48
mirk
Лекс Айрин писал(а):вирус пишете?
Странная ассоциация.
По вашему любой софт для администрирования является вирусом?
Лекс Айрин писал(а):Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
Какое отношение пользователь имеет к разрешению запуска от администратора?
Администратор устанавливает приложение и настраивает привелегии на выполнение, и пользователь не должен иметь возможноть это изменить (не зная пароля администратора разумеется).
Re: Права администратора для приложения
Добавлено: 07.04.2016 20:50:27
fwp
Лекс Айрин писал(а):mirk, вирус пишете?
Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
Не проще. Ежели пользователей штук 500. И квалификация у них... Ну оставляет желать лучшего. То решение пользователя вероятнее всего будет, ану на... Или будет звонить тебе. Так что тихая установка самое то...
Re: Права администратора для приложения
Добавлено: 07.04.2016 22:34:56
Sergei I. Gorelkin
Вся сущность и цель UAC состоит в том, чтобы административные привилегии давались только после подтвержденного запроса, даже если учетная запись пользователя принадлежит к администраторам. Причем запрос выдается на отдельном изолированном экране, чтобы его невозможно было подтвердить программно.
Те, кому нужно постоянно что-то изменять в системе, устанавливают для этого собственный сервис (но установка сервиса требует админских прав / вызывает запрос). Вариант с планировщиком - суть тот же сервис, разве что может быть чуть проще в реализации.
Если нужно однократно что-то куда-то записать - то это можно сделать при установке, опять же после повышения прав. Либо запуская приложение от имени администратора. Повышение привилегий уже запущенного процесса невозможно, только перезапуск "от имени".
Re: Права администратора для приложения
Добавлено: 07.04.2016 23:00:08
скалогрыз
к тому что сказали SSarge и Sergei I. Gorelkin
может поставлять .exe с баничком?
или
Re: Права администратора для приложения
Добавлено: 07.04.2016 23:16:46
resident
mirk писал(а):Нашел через планировщик
Не сможете создать задание без "дополнительных окон подтверждения".
mirk писал(а):Создать каталог и записать файл в недоступную для чтения обычным пользователем область.
Зачем?