Вот кусочек кода для удаленной перезагрузки 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);
}