Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создать процесс от имени пользоватля 
:(
    Опции темы
0x00
  Дата 25.5.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



сабж.
никто не сталкивался?
как запустить процесс от имени конкретного пользователя на системе?

если можно, то код на Си

не используя CreateProcessAsUser

например идея с запуском процесса от конкретного пользователя. возможно ли?

Это сообщение отредактировал(а) 0x00 - 25.5.2008, 21:13
PM MAIL   Вверх
jonie
Дата 25.5.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Цитата

не используя CreateProcessAsUser
любите велосипеды?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
NiJazz
Дата 25.5.2008, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Учитывая, что CreateProcess, скорее всего, внутри себя вызывает CreateProcessAsUser для текущего пользователя, то нельзя. Если только реализовать используя API более низкого уровня (гипотетически), но зачем?
PM MAIL   Вверх
rrrFer
Дата 26.5.2008, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: нет
Всего: 1



Цитата

не используя CreateProcessAsUser

system("runas параметры");

Это сообщение отредактировал(а) rrrFer - 26.5.2008, 07:52
PM MAIL WWW ICQ   Вверх
0x00
Дата 26.5.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



не зная пароль пользователя выполнять команды.
я думаю так.
создать сервис, который будет открывать сервер у себя 127.0.0.1:11111 и ждать команды
написать программу, которая будет запускать этот сервис от пользователя (и тоже будет иметь у себя сервер для получения результатов 127.0.0.1:11112 наприер). так перезапускать от пользователя:
Код

ChangeServiceConfiguration
                   (service, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE,
                    NULL, NULL, NULL, NULL, ".\user1", NULL, NULL); // меняем аккаунт для запуска

программа (которая не сервис)) будет передавать в запусщенный от пользователя сервис команду, она будет передаваться и результат будет возвращяться обратно. для смены пользователя сервис будет просто перезапускаться.

как вы считаете, сработает такая система?
PM MAIL   Вверх
Pulse69
Дата 27.5.2008, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 28.4.2006
Где: Хабаровск

Репутация: 8
Всего: 10



0x00, вряд ли будет работать, так как чтобы запустить службу от имени пользователя, тоже требуется указать пароль. К тому же, этот пользователь должен обладать привелегией SE_SERVICE_LOGON_NAME, которая не выставлена по умолчанию.

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


--------------------
Ctrl+Alt+Reset 
PM MAIL   Вверх
0x00
  Дата 28.5.2008, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



спасибо, решил пролему. достаточно было запускать процессы от пользователя, у которого есть с писке процессов процессы.
решил с помощью инжекта кода...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.