您的位置首页百科知识

AdjustTokenPrivileges 怎么使进程同时具备两个权限。

AdjustTokenPrivileges 怎么使进程同时具备两个权限。

朋友你好,想要同时获得SE_DEBUG_NAME权限和SE_REMOTE_SHUTDOWN_NAME权限只需要再上面的函数基础上再写一个函数就可以了,把上面函数的SE_DEBUG_NAME改成SE_REMOTE_SHUTDOWN_NAME就可以了:void AjustPrivilege2(){ HANDLE hToken; TOKEN_PRIVILEGES pri; OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken); LookupPrivilegeValue(NULL,SE_REMOTE_SHUTDOWN_NAME,&pri.Privileges[0].Luid); pri.PrivilegeCount=1; pri.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken,FALSE,&pri,sizeof(pri),NULL,NULL);}然后再你的程序中调用:AjustPrivilege(); //调用AjustPrivilege得到SE_DEBUG_NAME权限AjustPrivilege2(); //调用AjustPrivilege2得到唤洞SE_REMOTE_SHUTDOWN_NAME权限这样两个权限你就同时获得了!注意1:你的程序必须是以管理员身份运行的才可以获得SE_DEBUG_NAME权限和SE_REMOTE_SHUTDOWN_NAME权限注意2:SE_REMOTE_SHUTDOWN_NAME权限用于关闭远程计算机,在你关闭远程计算机之前必须先登录到远程计算机(通过远程计算机知核的管理员用户名和密码),不然的话就算你获得了SE_REMOTE_SHUTDOWN_NAME权限也无法关闭和猛枯远程计算机。