CreateProcessAsUser()的使用
来源:互联网 发布:算法导论要学吗 编辑:程序博客网 时间:2024/06/16 11:55
HANDLE hToken = NULL;TCHAR szUsername[MAX_PATH];TCHAR para[MAX_PATH] = {0};TCHAR szUsernamePath[MAX_PATH];DWORD dwUsernameLen = MAX_PATH;DWORD cursessionid;cursessionid = WTSGetActiveConsoleSessionId();log_error("WTSGetActiveConsoleSessionId() = %d\n",cursessionid);if(!WTSQueryUserToken(cursessionid, &hToken)){log_error("%s WTSQueryUserToken is failed\n", __FUNCTION__);}if(!ImpersonateLoggedOnUser(hToken)){log_error("%s ImpersonateLoggedOnUser is failed\n", __FUNCTION__);}DWORD UsernamePathSize = ARRAYSIZE(szUsernamePath);//获取到当前用户路径if (!GetUserProfileDirectory(hToken,szUsernamePath,&UsernamePathSize)){log_error("%s GetUserProfileDirectory is failed\n", __FUNCTION__);} BOOL bResult = FALSE;PROCESS_INFORMATION pi;PSID psid;STARTUPINFO si;ZeroMemory(&si, sizeof(STARTUPINFO));si.cb = sizeof(STARTUPINFO);si.lpDesktop = L"winsta0\\default";// // start the process//LPVOID environment;BOOL blockRet = CreateEnvironmentBlock(&environment, hToken, FALSE);if (!blockRet){log_error("could not create environment block (error: %i)",GetLastError());}else{//TCHAR Cmdline[MAX_PATH] = _T("/c \"C:\\Windows\\System32\\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8\"");TCHAR Cmdline[MAX_PATH] = _T("/c \"C:\\Windows\\System32\\cleanmgr\" /sagerun:100");DWORD creationFlags = NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW | CREATE_UNICODE_ENVIRONMENT;bResult = CreateProcessAsUser(hToken,_T("C:\\Windows\\System32\\CMD.exe"),Cmdline,//_T("InetCpl.cpl,ClearMyTracksByProcess 8"),//L"\"inetcpl.cpl,clearmytracksbyprocess 8\"",//L"/c \"C:\\Windows\\System32\\cleanmgr\" /sagerun:100",NULL,NULL,FALSE,creationFlags,environment,NULL,&si,&pi);log_error("CreateProcessAsUser0 = %d",GetLastError());// // close the handles// if (bResult && pi.hProcess != INVALID_HANDLE_VALUE) { WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); } else{log_error("CreateProcessAsUser1 = %d",GetLastError());}if (pi.hThread != INVALID_HANDLE_VALUE)CloseHandle(pi.hThread); DestroyEnvironmentBlock(environment);}RevertToSelf();CloseHandle(hToken);
0 0
- CreateProcessAsUser()的使用
- 使用CreateProcessAsUser的范例代码
- CreateProcessAsUser的用法
- CreateProcessAsUser
- CreateProcessAsUser
- CreateProcessAsUser Function
- CreateProcessAsUser() windowstations 和桌面
- CreateProcessAsUser常用参数说明
- 用CreateProcessAsUser 创建最低权限进程
- mpich出现LaunchProcess failed,CreateProcessAsUser failed,拒绝访问
- 服务程序调用 CreateProcessAsUser 0xC0000005访问冲突问题
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- 9/6转换坐标系
- node.js的"Cannot enqueue Handshake after invoking quit"错误
- 堆与栈的区别
- JNI 字符串拼接方法
- gradle多渠道打包及友盟统计-eclipse版本
- CreateProcessAsUser()的使用
- 数据库笔试题
- Java Static代码块与构造方法初始化顺序
- Qt Quick中的信号机制
- Python编译器的选择与比较(入门必备)
- iOS--设置Launch Image 启动图片
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- 面向对象学习
- SecureCRT 连接 Ubuntu