Форум программистов, компьютерный форум CyberForum.ru

Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"? - C++

Восстановить пароль Регистрация
 
MaD1
Сообщений: n/a
08.05.2011, 21:43     Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"? #1
Здорово, народ!
У меня такая ситуация - есть программа, работающая как служба, так вот эта прога при получении
имени юзера (GetUserName) выдает постоянно 'SYSTEM' - это и понятно, т.к. служба работает
с правами системы, но как убрать эту привилегию? Мне нужно получить нормальное имя пользователя.

ЗЫ Эта программа запускается другой программой, которая, собственно торчит в службах,
а запущенная прога наследует от первой права системы, что НЕ НУЖНО.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2011, 21:43     Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"?
Посмотрите здесь:

C++ system("cls"); как по другому?
Как запустить system ("cls")? C++
system("del C:\\1"); и system("rmdir C:\\1"); C++
C++ 2 Программы. На "целые числа и системы счисления" и на "метод деления отрезка пополам"
C++ преобразовать "System::String ^" в "char []"
Подскажите почему может появляться ошибка: "неразрешенный внешний символ "_SDL_..."" C++
Как сделать что бы программа всегда была "поверх" всех окон C++
C++ Почему не работает "system("pause")"?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MaD1
Сообщений: n/a
09.05.2011, 15:43     Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"? #2
Ау, кто-нибудь поможет мне разобраться? Вроде CreateProcess может запускать процессы,
не наследующие права родителя (как раз что мне надо):
Код
SECURITY_ATTRIBUTES s;
s.nLength = sizeof(SECURITY_ATTRIBUTES);
s.bInheritHandle = FALSE;
s.lpSecurityDescriptor = NULL;

STARTUPINFO startupinfo;
PROCESS_INFORMATION PrInfo;
memset(&startupinfo,0,sizeof(startupinfo));
startupinfo.cb=sizeof(startupinfo);
CreateProcess(0,'C:\program.exe',&s,&s,TRUE,NULL,NULL,NULL,
     &startupinfo,&PrInfo);
Вроде 5й параметр отвечает за права:
bInheritHandles
[in] Indicates whether the new process inherits handles from the calling process. If TRUE, each inheritable open handle in the calling process is inherited by the new process. Inherited handles have the same value and access privileges as the original handles.
тока ни в TRUE ни в FALSe результата нет. Прога запускается но права системы (имя юзера кажет SYSTEM)
Yandex
Объявления
09.05.2011, 15:43     Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"?
Ответ Создать тему
Опции темы

Текущее время: 04:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru