необходимо проверить на удалённом компе активна ли эта привилегия, а дальше выключить комп если активна, ну чёто не компилит | Код | void ShutDown(void) {
HANDLE hToken; TOKEN_PRIVILEGES tkp; //------------------- const char* nameC = "192.168.1.149"; std::string str( nameC ); std::wstring wst( str.begin(), str.end() ); const wchar_t* name = wst.c_str();
char *msg="Good by"; //address of message to display in dialog box DWORD time=5; // 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);
}
|
--------------------
whole power in artificial intelligences
|