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

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

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

Сообщение mirk »

ОС MS Windows 7, приложению необходимо:
1. Создать каталог и записать файл в недоступную для чтения обычным пользователем область.
2. Записать значение в ветку реестра недоступную для записи пользователем.
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
fwp
новенький
Сообщения: 29
Зарегистрирован: 25.03.2008 11:00:06

Сообщение fwp »

Необходимо запустить процесс от пользователя с правами админа.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Как?
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

mirk писал(а):Как?

Правой кнопкой мыши кликнуть на иконе приложения, выбрать пункт "Запуск от имени администратора"
fwp
новенький
Сообщения: 29
Зарегистрирован: 25.03.2008 11:00:06

Сообщение fwp »

Где-то в недрах CreateProcessAsUser() кроется такая возможность. Правда там надо на низком уровне воевать с пользовательскими токенами, сменой контекста и т.п.
Я под виндами на шарпе пишу. Там класс Process скрывает всю эту лабудень. И подобную задачу буквально на днях решал. Заплатку на Crypto Pro вешал.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

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

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


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

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

Может реестре можно указать автозапуск с привилегиями?
Нашел через планировщик, но не хочется туда лезть.
fwp
новенький
Сообщения: 29
Зарегистрирован: 25.03.2008 11:00:06

Сообщение fwp »

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

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

P.S. Да, еще тебе м.б. поможет psexec от Русиновича.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

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

Я так понимаю, отключить UAC средствами винды. Но это будет распространено на все приложения.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

fwp писал(а):А кто будет запускать приложение?

Автозапуск.
Но я пока не нашел как сделать его с привилегиями, поэтому и решил поискать как приложению дать права администратора.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

mirk, вирус пишете? :lol: :lol: :lol:

Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Лекс Айрин писал(а):вирус пишете?

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

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

Какое отношение пользователь имеет к разрешению запуска от администратора?
Администратор устанавливает приложение и настраивает привелегии на выполнение, и пользователь не должен иметь возможноть это изменить (не зная пароля администратора разумеется).
fwp
новенький
Сообщения: 29
Зарегистрирован: 25.03.2008 11:00:06

Сообщение fwp »

Лекс Айрин писал(а):mirk, вирус пишете? :lol: :lol: :lol:

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

Не проще. Ежели пользователей штук 500. И квалификация у них... Ну оставляет желать лучшего. То решение пользователя вероятнее всего будет, ану на... Или будет звонить тебе. Так что тихая установка самое то...
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Вся сущность и цель UAC состоит в том, чтобы административные привилегии давались только после подтвержденного запроса, даже если учетная запись пользователя принадлежит к администраторам. Причем запрос выдается на отдельном изолированном экране, чтобы его невозможно было подтвердить программно.
Те, кому нужно постоянно что-то изменять в системе, устанавливают для этого собственный сервис (но установка сервиса требует админских прав / вызывает запрос). Вариант с планировщиком - суть тот же сервис, разве что может быть чуть проще в реализации.
Если нужно однократно что-то куда-то записать - то это можно сделать при установке, опять же после повышения прав. Либо запуская приложение от имени администратора. Повышение привилегий уже запущенного процесса невозможно, только перезапуск "от имени".
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

к тому что сказали SSarge и Sergei I. Gorelkin
может поставлять .exe с баничком?

Код: Выделить всё

runas /user:Администратор project1.exe

или

Код: Выделить всё

runas /user:Administrator project1.exe
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

mirk писал(а):Нашел через планировщик

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

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

Зачем?
Ответить