Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.051 c
1-1340607264
viosvi
2012-06-25 10:54
2017.01.15
ориентация листа OpenOffice


2-1425269230
Nickolay
2015-03-02 07:07
2017.01.15
Отображение содержимого папок


15-1453983731
K-1000
2016-01-28 15:22
2017.01.15
Тернарный оператор в Delphi


2-1427700274
aka
2015-03-30 10:24
2017.01.15
ускорение свободного падения


2-1419250635
Drowsy
2014-12-22 15:17
2017.01.15
Вопрос по TShellTreeView.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский