Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Как использовать функцию AdjustTokenPrivileges

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
stell
Гость





СообщениеДобавлено: Чт Мар 14 2002 11:21    Заголовок сообщения: Как использовать функцию AdjustTokenPrivileges Ответить с цитатой

Народ помогите! Как исплоьзовать функцию AdjustTokenPrivileges, а то не получается чего-то... Мне нужно дать привилегиу функцие ExitWindowsEx!
Вернуться к началу
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Чт Мар 14 2002 11:52    Заголовок сообщения: Re: Как использовать функцию AdjustTokenPrivileges Ответить с цитатой

int main(int argc, char **argv)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//-------------------
char *name=""; // address of name of computer to shut down
char *msg=""; //address of message to display in dialog box
DWORD time=0; // time to display dialog box
bool force=true; // force applications with unsaved changes flag
bool reboot=true; //reboot flag
//--------------------------------------------------------------.. OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
&hToken);

if(!LookupPrivilegeValue(name, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid)){
printf ("SE_SHUTDOWN_NAME Privilege облом \n");
return 1 ;};

tkp.PrivilegeCount =1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

if(!LookupPrivilegeValue(name,
SE_REMOTE_SHUTDOWN_NAME,&tkp.Privilege.. printf("SE_REMOTE_SHUTDOWN_NAME Privilege облом \n");
return 2 ;};

tkp.PrivilegeCount =1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

if (InitiateSystemShutdown(name,msg,time,force,reboot))
printf("%s shutdown Ok\n",name);
else printf("Can't shutdown %s \n",name);

return 0;
}
//*************************************************************.. мыло, отправлю полный текст (часто урезается код тут на форуме)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Чт Мар 14 2002 11:58    Заголовок сообщения: Re: Как использовать функцию AdjustTokenPrivileges Ответить с цитатой

>>Народ помогите! Как исплоьзовать функцию AdjustTokenPrivileges, а то не получается чего-то... Мне нужно дать привилегиу функцие ExitWindowsEx!

Привелегия дается не функции выключения (ExitWindowsEx(EWX_SHUTDOWN,0),), а приложению
и потом выполняется собственно выкл.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
stell
Гость





СообщениеДобавлено: Чт Мар 14 2002 13:28    Заголовок сообщения: anatoliy Ответить с цитатой

Пришли полный текст на rulez_z@ngs.ru пожалуйста, а то некоторые детали не понятны!
Вернуться к началу
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Чт Мар 14 2002 13:43    Заголовок сообщения: письмо придет ыечером с 20-00 Ответить с цитатой

Текст работающий тут встави куда надо.:
HANDLE hToken;
TOKEN_PRIVILEGES* NewState;
OSVERSIONINFO OSVersionInfo;

OSVersionInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
GetVersionEx (&OSVersionInfo);
if (OSVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
OpenProcessToken (GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES,
&hToken);
NewState = (TOKEN_PRIVILEGES*) malloc (sizeof
(TOKEN_PRIVILEGES) + sizeof (LUID_AND_ATTRIBUTES));
NewState->PrivilegeCount = 1;
LookupPrivilegeValue (NULL, SE_SHUTDOWN_NAME,
&NewState->Privileges[0].Luid);
NewState->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges (hToken, FALSE, NewState, NULL, NULL, NULL);
free (NewState);
CloseHandle (hToken);
}

ExitWindowsEx(EWX_SHUTDOWN,0);

Всего 31 строка.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...