WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Перезагрузка NT/2000 по сети

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Перезагрузка NT/2000 по сети
Tesla опубликован 13-11-2001 15:39 MSK   Click Here to See the Profile for Tesla   Click Here to Email Tesla  
Help! Я что-то позабыл: как грузануть NT по сетке? Что-то типа: InitateSystemShutdown или что??
eph опубликован 13-11-2001 20:55 MSK     Click Here to See the Profile for eph  Click Here to Email eph     
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.Privileges[0].Luid)){
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;
}

Emerald опубликован 13-11-2001 23:27 MSK     Click Here to See the Profile for Emerald  Click Here to Email Emerald     
Ух ты! Это круто. А у меня лично вопрос: какой сервис необходимо для этого запускать?
Flex Ferrum опубликован 14-11-2001 09:53 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
На сколько я помню - никакого. Работает само по себе.
zlelik опубликован 14-11-2001 10:30 MSK     Click Here to See the Profile for zlelik  Click Here to Email zlelik     
А какие нужны привилегии чтобы перезагрузить комп по сети этой прогой?
Flex Ferrum опубликован 14-11-2001 11:58 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
Привелегии админа. Или чтобы юзеру была разрешена удаленная перезагрузка.
Emerald опубликован 14-11-2001 14:00 MSK     Click Here to See the Profile for Emerald  Click Here to Email Emerald     
Ах вот оно что! А как эти привелегии удаленно получить? И ещё: я этот код где-то видел... Не могли бы вы мне сказать, в каком FAQ вы это отрыли? где его взять?
zlelik опубликован 14-11-2001 17:24 MSK     Click Here to See the Profile for zlelik  Click Here to Email zlelik     
то есть работает только когда запускаешь под юзером который на удаленном компе имеет права админа? А так просто (Без прав)ребутнуть NT нельзя
eph опубликован 14-11-2001 20:57 MSK     Click Here to See the Profile for eph  Click Here to Email eph     
Народ , могу посоветовать только первоисточники читать ;)
from msdn:
To shut down the local computer, the calling thread must have the SE_SHUTDOWN_NAME privilege. To shut down a remote computer, the calling thread must have the SE_REMOTE_SHUTDOWN_NAME privilege on the remote computer. By default, users can enable the SE_SHUTDOWN_NAME privilege on the computer they are logged onto, and administrators can enable the SE_REMOTE_SHUTDOWN_NAME privilege on remote computers.

Что собственно в коде и продемонстрировано ..

2Emerald http://www.slo.ru/programming/win32api.htm

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.