Главная страница
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.021 c
15-1451124375
megavoid
2015-12-26 13:06
2017.01.15
Дамы и господа, не забываем про round :)))


15-1451394616
Kerk
2015-12-29 16:10
2017.01.15
Сувениры


2-1426368587
SvetaZ1
2015-03-15 00:29
2017.01.15
вопрос по Case


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


15-1452597638
GanibalLector
2016-01-12 14:20
2017.01.15
PDF