Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

Службы и иже с ними   Найти похожие ветки 

 
Dimka Maslov ©   (2012-06-24 02:36) [0]

Чего то я явно делаю неправильно, вот только чего - не пойму. Имеется служба - tcp сервер, слушает порт. При приходе на сервер определённой информации требуется запустить процесс от имени пользователя. Делаю сначала LogonUser потом CreateProcessAsUser. Симптоматика следующая:
XP - процесс запускается, работает, но при сохранении файла выдаётся ошибка, при этом окна программы не рисуются.
Win7 64 - процесс даже не запускается, хотя если убрать екзешник - выдаётся ошибка, что файла нет.

Может кто сталкивался и в курсе что, где и как надо прописать, чтобы работало?


 
Cobalt ©   (2012-06-24 09:06) [1]

Надо переписывать:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb756986.aspx


 
Dimka Maslov ©   (2012-06-24 19:29) [2]


> Cobalt ©   (24.06.12 09:06) [1]


Пользовательский интерфейс мне не нужен. Мне надо запустить процесс с правами пользователя, но из службы "вторичный" процесс запускается и корректно работает только при запуске под локальной системой, тогда как ему (вторичному процессу) необходим доступ к ресурсам локальной сети с разделением прав пользователей.


 
Dimka Maslov ©   (2012-06-24 21:20) [3]

Проблема решена.
Достаточно было написать функцию

BOOL SetUserObjectFullAccess(HANDLE UserObject)
{
PSECURITY_DESCRIPTOR Sd;
SECURITY_INFORMATION Si;
Sd = LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH);
InitializeSecurityDescriptor(Sd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(Sd, TRUE, NULL, FALSE);
Si = DACL_SECURITY_INFORMATION;
BOOL Result = SetUserObjectSecurity(UserObject, &Si, Sd);
LocalFree((HLOCAL)Sd);
return Result;
}


И в промежутке между LogonUser и CreateProcessAsUser вызывать ея два раза:
SetUserObjectFullAccess(GetThreadDesktop(GetCurrentThreadId()));
SetUserObjectFullAccess(GetProcessWindowStation());



Страницы: 1 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.054 c
15-1456781401
Юрий
2016-03-01 00:30
2017.01.15
С днем рождения ! 1 марта 2016 вторник


3-1308531630
Дмитрий С
2011-06-20 05:00
2017.01.15
Mysql, большой blob. как лучше?


15-1450215004
Юрий
2015-12-16 00:30
2017.01.15
С днем рождения ! 16 декабря 2015 среда


15-1445245394
Kerk
2015-10-19 12:03
2017.01.15
Анатолий Подгорецкий


4-1266266901
Pavel
2010-02-15 23:48
2017.01.15
Перевод в "спящий" режим