Права администратора для приложения
Модератор: Модераторы
Права администратора для приложения
ОС MS Windows 7, приложению необходимо:
1. Создать каталог и записать файл в недоступную для чтения обычным пользователем область.
2. Записать значение в ветку реестра недоступную для записи пользователем.
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
1. Создать каталог и записать файл в недоступную для чтения обычным пользователем область.
2. Записать значение в ветку реестра недоступную для записи пользователем.
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
Необходимо запустить процесс от пользователя с правами админа.
mirk писал(а):Как?
Правой кнопкой мыши кликнуть на иконе приложения, выбрать пункт "Запуск от имени администратора"
Где-то в недрах CreateProcessAsUser() кроется такая возможность. Правда там надо на низком уровне воевать с пользовательскими токенами, сменой контекста и т.п.
Я под виндами на шарпе пишу. Там класс Process скрывает всю эту лабудень. И подобную задачу буквально на днях решал. Заплатку на Crypto Pro вешал.
Я под виндами на шарпе пишу. Там класс Process скрывает всю эту лабудень. И подобную задачу буквально на днях решал. Заплатку на Crypto Pro вешал.
SSerge писал(а):Правой кнопкой мыши кликнуть на иконе приложения, выбрать пункт "Запуск от имени администратора"
mirk писал(а):Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
fwp писал(а):Где-то в недрах CreateProcessAsUser() кроется такая возможность.
Но это получается вызов нового процесса, а не исполнение текущего с правами администратора?
Может реестре можно указать автозапуск с привилегиями?
Нашел через планировщик, но не хочется туда лезть.
mirk писал(а):Но это получается вызов нового процесса, а не исполнение текущего с правами администратора?
А кто будет запускать приложение?
Ежели ты сам, то запусти far от себя и вперед.
А ежели пользователь, то приложение получит токен безопасности пользователя. И как это обойти я не знаю. Единственный выход, что я нашел - это запуск пользователем и запуск дочернего процесса с правами админа.
Ну или планировщик с правами админа. Что собственно те же яйца тока в профиль.
P.S. Да, еще тебе м.б. поможет psexec от Русиновича.
Как можно сделать подобное, не вызывая дополнительных окон подтверждения?
Я так понимаю, отключить UAC средствами винды. Но это будет распространено на все приложения.
fwp писал(а):А кто будет запускать приложение?
Автозапуск.
Но я пока не нашел как сделать его с привилегиями, поэтому и решил поискать как приложению дать права администратора.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
mirk, вирус пишете?
Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
Лекс Айрин писал(а):вирус пишете?
Странная ассоциация.
По вашему любой софт для администрирования является вирусом?
Лекс Айрин писал(а):Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
Какое отношение пользователь имеет к разрешению запуска от администратора?
Администратор устанавливает приложение и настраивает привелегии на выполнение, и пользователь не должен иметь возможноть это изменить (не зная пароля администратора разумеется).
Лекс Айрин писал(а):mirk, вирус пишете?![]()
![]()
![]()
Если это легитимное системное приложение, то проще оставить решение о его запуске от имени администратора на пользователя.
Не проще. Ежели пользователей штук 500. И квалификация у них... Ну оставляет желать лучшего. То решение пользователя вероятнее всего будет, ану на... Или будет звонить тебе. Так что тихая установка самое то...
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Вся сущность и цель UAC состоит в том, чтобы административные привилегии давались только после подтвержденного запроса, даже если учетная запись пользователя принадлежит к администраторам. Причем запрос выдается на отдельном изолированном экране, чтобы его невозможно было подтвердить программно.
Те, кому нужно постоянно что-то изменять в системе, устанавливают для этого собственный сервис (но установка сервиса требует админских прав / вызывает запрос). Вариант с планировщиком - суть тот же сервис, разве что может быть чуть проще в реализации.
Если нужно однократно что-то куда-то записать - то это можно сделать при установке, опять же после повышения прав. Либо запуская приложение от имени администратора. Повышение привилегий уже запущенного процесса невозможно, только перезапуск "от имени".
Те, кому нужно постоянно что-то изменять в системе, устанавливают для этого собственный сервис (но установка сервиса требует админских прав / вызывает запрос). Вариант с планировщиком - суть тот же сервис, разве что может быть чуть проще в реализации.
Если нужно однократно что-то куда-то записать - то это можно сделать при установке, опять же после повышения прав. Либо запуская приложение от имени администратора. Повышение привилегий уже запущенного процесса невозможно, только перезапуск "от имени".
к тому что сказали SSarge и Sergei I. Gorelkin
может поставлять .exe с баничком?
или
может поставлять .exe с баничком?
Код: Выделить всё
runas /user:Администратор project1.exe
или
Код: Выделить всё
runas /user:Administrator project1.exe
mirk писал(а):Нашел через планировщик
Не сможете создать задание без "дополнительных окон подтверждения".
mirk писал(а):Создать каталог и записать файл в недоступную для чтения обычным пользователем область.
Зачем?
