Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CreateProcessAsUser

32K
09 декабря 2007 года
RealMaster
7 / / 08.12.2007
Я опять со своими созданиями процесса :) Вообщем мне надо запустить процесс от имени пользователя с ограниченными правами. В МСДНе нашол ф-цию CreateProcessAsUser(). От CreateProcess() она отличается первым прараметром - тикет пользователя. Этот параметр я получаю при помощи LogonUser().

Логин пользователя проходит успешно (про это свидетельствует не нулевой дескриптор). Но процес создаться не может. Функция CreateProcessAsUser() возвращает 0. Хотя с темиже параметрами ф-ция CreateProcess() успешно виполняеться.

Вот я небольшой кусок кода кину чтоб было понятно что я делаю.

Код:
if(!LogonUser("User", ".", "Password", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken)){
printf("LOGON Error #%d", GetLastError());
}

if (!CreateProcessAsUser(&hToken, null, cmd_line, 0, 0, false, DETACHED_PROCESS, 0, parent_dir, &si, &pi )) {
 printf("Can`t start in SAFE MODE!\n");

if (!CreateProcess(null, cmd_line, null, null, flase, DETACHED_PROCESS, null, parent_dir, &si, &pi )) {
        printf("Can`t start in NORMAL MODE!\n");
return -8;
}
}
261
10 декабря 2007 года
ahilles
1.5K / / 03.11.2005
в том же эмэсдэн'е должно быть написано что у приложения должны быть привелегии SE_ASSIGNPRIMARYTOKEN_NAME и SE_INCREASE_QUOTA_NAME.
вот здесь это обсуждалось.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог