C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Как перезагрузить NT/2000 по сети ? / Локальная сеть / Сеть

Тема:   Перезагрузка 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