Страница 1 из 5

Права администратора для приложения

СообщениеДобавлено: 07.04.2016 01:51:41
mirk
ОС MS Windows 7, приложению необходимо:
1. Создать каталог и записать файл в недоступную для чтения обычным пользователем область.
2. Записать значение в ветку реестра недоступную для записи пользователем.
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 08:52:09
fwp
Необходимо запустить процесс от пользователя с правами админа.

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 09:45:56
mirk
Как?

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 10:12:45
SSerge
mirk писал(а):Как?

Правой кнопкой мыши кликнуть на иконе приложения, выбрать пункт "Запуск от имени администратора"

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 11:12:42
fwp
Где-то в недрах CreateProcessAsUser() кроется такая возможность. Правда там надо на низком уровне воевать с пользовательскими токенами, сменой контекста и т.п.
Я под виндами на шарпе пишу. Там класс Process скрывает всю эту лабудень. И подобную задачу буквально на днях решал. Заплатку на Crypto Pro вешал.

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 14:23:59
mirk
SSerge писал(а):Правой кнопкой мыши кликнуть на иконе приложения, выбрать пункт "Запуск от имени администратора"

mirk писал(а):Как можно сделать подобное, не вызывая дополнительных окон подтверждения?


fwp писал(а):Где-то в недрах CreateProcessAsUser() кроется такая возможность.

Но это получается вызов нового процесса, а не исполнение текущего с правами администратора?

Может реестре можно указать автозапуск с привилегиями?
Нашел через планировщик, но не хочется туда лезть.

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 17:54:20
fwp
mirk писал(а):Но это получается вызов нового процесса, а не исполнение текущего с правами администратора?

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

P.S. Да, еще тебе м.б. поможет psexec от Русиновича.

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 19:24:27
slyubez
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?

Я так понимаю, отключить UAC средствами винды. Но это будет распространено на все приложения.

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 20:03:46
mirk
fwp писал(а):А кто будет запускать приложение?

Автозапуск.
Но я пока не нашел как сделать его с привилегиями, поэтому и решил поискать как приложению дать права администратора.

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 20:26:03
Лекс Айрин
mirk, вирус пишете? :lol: :lol: :lol:

Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 21:39:48
mirk
Лекс Айрин писал(а):вирус пишете?

Странная ассоциация.
По вашему любой софт для администрирования является вирусом? :lol:

Лекс Айрин писал(а):Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.

Какое отношение пользователь имеет к разрешению запуска от администратора?
Администратор устанавливает приложение и настраивает привелегии на выполнение, и пользователь не должен иметь возможноть это изменить (не зная пароля администратора разумеется).

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 21:50:27
fwp
Лекс Айрин писал(а):mirk, вирус пишете? :lol: :lol: :lol:

Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.

Не проще. Ежели пользователей штук 500. И квалификация у них... Ну оставляет желать лучшего. То решение пользователя вероятнее всего будет, ану на... Или будет звонить тебе. Так что тихая установка самое то...

Re: Права администратора для приложения

СообщениеДобавлено: 07.04.2016 23:34:56
Sergei I. Gorelkin
Вся сущность и цель UAC состоит в том, чтобы административные привилегии давались только после подтвержденного запроса, даже если учетная запись пользователя принадлежит к администраторам. Причем запрос выдается на отдельном изолированном экране, чтобы его невозможно было подтвердить программно.
Те, кому нужно постоянно что-то изменять в системе, устанавливают для этого собственный сервис (но установка сервиса требует админских прав / вызывает запрос). Вариант с планировщиком - суть тот же сервис, разве что может быть чуть проще в реализации.
Если нужно однократно что-то куда-то записать - то это можно сделать при установке, опять же после повышения прав. Либо запуская приложение от имени администратора. Повышение привилегий уже запущенного процесса невозможно, только перезапуск "от имени".

Re: Права администратора для приложения

СообщениеДобавлено: 08.04.2016 00:00:08
скалогрыз
к тому что сказали SSarge и Sergei I. Gorelkin
может поставлять .exe с баничком?

Код: Выделить всё
runas /user:Администратор project1.exe

или
Код: Выделить всё
runas /user:Administrator project1.exe

Re: Права администратора для приложения

СообщениеДобавлено: 08.04.2016 00:16:46
resident
mirk писал(а):Нашел через планировщик

Не сможете создать задание без "дополнительных окон подтверждения".

mirk писал(а):Создать каталог и записать файл в недоступную для чтения обычным пользователем область.

Зачем?