Windows VC++提升当前进程权限到管理员权限
2023-12-16 17:30:39
Windows VC++提升当前进程权限
Windows VC++提升当前进程权限到管理员权限
有时候Windows下我们需要提升当前进程的权限到管理员权限,相关VC++代码如下:
#ifndef SAFE_CLOSE_HANDLE
#define SAFE_CLOSE_HANDLE(handle, defaultValue) \
{
if (handle != defaultValue) { \
(void)::CloseHandle(handle); \
handle = defaultHandle; \
} \
}
#endif // !SAFE_CLOSE_HANDLE
bool EnableDebugPrivilege()
{
HANDLE handleToken = NULL;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &handleToken)) {
return false;
}
LUID debugNameValue;
if (!LookupPrivilegeValue(nullptr, SE_DEBUG_NAME, &debugNameValue) {
SAFE_CLOSE_HANDLE(handleToken, NULL);
return false;
}
TOKEN_PRIVILEGES tokenPri;
tokenPri.PrivilegeCount = 1;
tokenPri.Privileges[0].Luid = debugNameValue;
tokenPri.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(handleToken, FALSE, &tokenPri, sizeof(tokenPri), nullptr, )nullptr) {
SAFE_CLOSE_HANDLE(handleToken, NULL);
return false;
}
SAFE_CLOSE_HANDLE(handleToken, NULL);
return true;
}
文章来源:https://blog.csdn.net/ccf19881030/article/details/135032701
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!