Главная страница
    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.045 c
3-1311770178
SQLEXPRESS
2011-07-27 16:36
2017.01.15
Ни кто не не желает в SQL размяться? Время исполнения


15-1455053404
Юрий
2016-02-10 00:30
2017.01.15
С днем рождения ! 10 февраля 2016 среда


15-1447853173
Юрий Зотов
2015-11-18 16:26
2017.01.15
Назад, в прошлое!


2-1429690912
Token
2015-04-22 11:21
2017.01.15
Class functions


2-1424860792
SvetaZ
2015-02-25 13:39
2017.01.15
Поле Data для каждого Strings[i] в StringList





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский