Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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; } //*************************************************************.. мыло, отправлю полный текст (часто урезается код тут на форуме) |
|
Вернуться к началу |
|
|
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Чт Мар 14 2002 11:58 Заголовок сообщения: Re: Как использовать функцию AdjustTokenPrivileges |
|
|
>>Народ помогите! Как исплоьзовать функцию AdjustTokenPrivileges, а то не получается чего-то... Мне нужно дать привилегиу функцие ExitWindowsEx!
Привелегия дается не функции выключения (ExitWindowsEx(EWX_SHUTDOWN,0),), а приложению и потом выполняется собственно выкл. |
|
Вернуться к началу |
|
|
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 строка. |
|
Вернуться к началу |
|
|
|