BOOL SetPrivilegeEnabled(LPCTSTR Name, BOOL Enabled) {
BOOL IsOk;
HANDLE hToken;
IsOk = FALSE;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES, &hToken)) {
TOKEN_PRIVILEGES TokenPrivileges;
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = (Enabled ? SE_PRIVILEGE_ENABLED : SE_PRIVILEGE_REMOVED);
if (LookupPrivilegeValue(NULL, Name, &TokenPrivileges.Privileges[0].Luid)) {
if (AdjustTokenPrivileges(hToken, FALSE, &TokenPrivileges, sizeof(TokenPrivileges), NULL, NULL)) {
IsOk = TRUE;
}
}
CloseHandle(hToken);
}
return IsOk;
}
进程特权的提升与降低
最新推荐文章于 2023-05-18 09:48:01 发布