相关疑难解决方法(0)

CreateProcessAsUser错误1314

我想在另一个用户下创建一个进程.所以我使用LogonUser和CreateProcessAsUser.但我的问题是,CreatePtocessAsUser总是返回错误代码1314,这意味着"客户端不持有所需的权限".所以我的问题是,我做错了什么?或者我怎样才能让权利人得到帮助呢?(我认为句柄应该有特权,或者我错了?)抱歉我的英语错误,但我的英语知识不是最好的:)

如果有人知道如何纠正我的申请,Plesase帮助.

这是我代码的一部分.

STARTUPINFO StartInfo;
PROCESS_INFORMATION ProcInfo;
TOKEN_PRIVILEGES tp;
memset(&ProcInfo, 0, sizeof(ProcInfo));
memset(&StartInfo, 0 , sizeof(StartInfo)); 
StartInfo.cb = sizeof(StartInfo); 
HANDLE handle = NULL;

if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ALL_ACCESS, &handle)) printf("\nOpenProcessError");

if (!LookupPrivilegeValue(NULL,SE_TCB_NAME,
//SE_TCB_NAME,
&tp.Privileges[0].Luid)) {
printf("\nLookupPriv error");
}

tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes =
SE_PRIVILEGE_ENABLED;//SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(handle, FALSE, &tp, 0, NULL, 0)) {
printf("\nAdjustToken error");
}

i = LogonUser(user, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &handle);
printf("\nLogonUser return  : %d",i);
i = GetLastError();
printf("\nLogonUser getlast : %d",i);
if (! ImpersonateLoggedOnUser(handle) ) printf("\nImpLoggedOnUser!");

i = CreateProcessAsUser(handle, …
Run Code Online (Sandbox Code Playgroud)

createprocessasuser

9
推荐指数
2
解决办法
3万
查看次数

标签 统计

createprocessasuser ×1