Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как запустить процесс от имени пользователя?


Автор: Pinguin 3.3.2008, 09:32
Как запустить процесс от имени  пользователя в Win2000?
При вызовах следующих функции выдаёт ошибки:

Код

LogonUser(login.GetBuffer(), domain.GetBuffer(), password.GetBuffer(),
     LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken)

Error: A required privilege is not held by the client.

Код

CreateProcessWithLogonW(wclogin, wcdomain, wcpassword, LOGON_WITH_PROFILE, wcfile, 
     wccommandLine, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, (LPSTARTUPINFOW)&si, &pi)

Error: Access denied.

В winXP таких проблем не возникает. В MSDN написано что у процесса для win2000 должны быть определённые привелегии. Но и под администратором тоже сомое,  
в то время как в XP и для обычного user'a нет проблем.

Автор: Pinguin 5.3.2008, 09:39
up

Автор: 586 5.3.2008, 10:07
Цитата(Pinguin @  3.3.2008,  09:32 Найти цитируемый пост)
 MSDN написано что у процесса для win2000 должны быть определённые привелегии.

А ты их получаешь? Их ещё получить надо... http://msdn2.microsoft.com/en-us/library/aa379306(VS.85).aspx

Автор: Pinguin 6.3.2008, 11:34
С привелегиями и LogonUser разобрался... 
А вот с CreateProcessWithLogonW... упорно пишет что доступ запрещён, однако если задать текущую учётную запись(т.е. сдублировать логин и пароль текущего пользователя) всё проходит!!!

Автор: Pinguin 6.3.2008, 12:55
Проблемма исчерпана... просто затупил... =)
Пытался с сетевого диска запуститься... (а он у пользователя от которого запускася не прописан).... =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)