Вот кусочек кода для удаленной перезагрузки NT/2k/XP, поменяв название привилегии можно и выключить...
HANDLE her;
TOKEN_PRIVILEGES bok,prev;
int     RetLen;
i=MessageBox(NULL,"Убить его?","УРА!",MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1);
if(i!=IDNO)
{
 i=OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&her);
 i=GetLastError();
 i=LookupPrivilegeValue(NULL, "SeRemoteShutdownPrivilege",&(bok.Privileges[0].Luid));
 prev=bok;
 bok.PrivilegeCount= 1; // one privilege to set
 bok.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
 i=AdjustTokenPrivileges(her, FALSE, &bok, sizeof(prev),&prev, (PDWORD)&RetLen);
 i=InitiateSystemShutdown(client,"Досвиданья!",3,TRUE,TRUE);
 MessageBox(NULL,"Убили негра, убили...","Ай-яй-яй!",MB_OK);
}