Код (Text): int main(int argc, char *argv[]) { static STARTUPINFO si; static PROCESS_INFORMATION pi; HANDLE hTokenNew = NULL, hTokenDup = NULL,hToken=NULL; Sleep(1000*10); // для отладки, улыбаемся и машем ;-) PCTSTR s[1] = { L"SeTcbPrivilege"}; EnablePrivileges(&s[0], 1); DWORD dwSessionId = WTSGetActiveConsoleSessionId(); WTSQueryUserToken(dwSessionId, &hTokenNew); DWORD d = GetLastError(); DuplicateTokenEx(hTokenNew, MAXIMUM_ALLOWED, NULL, SecurityIdentification, TokenPrimary, &hTokenDup); ZeroMemory( &si, sizeof( STARTUPINFO ) ); si.cb = sizeof( STARTUPINFO ); si.lpDesktop = L"winsta0\\default"; LPVOID pEnv = NULL; DWORD dwCreationFlag = NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE; CreateEnvironmentBlock(&pEnv, hTokenDup, FALSE); dwCreationFlag |= CREATE_UNICODE_ENVIRONMENT; ZeroMemory( &pi, sizeof( PROCESS_INFORMATION ) ); CreateProcessAsUser( hTokenDup, NULL, L"d:\\windows\\system32\\notepad.exe", NULL, NULL, FALSE, dwCreationFlag, pEnv, NULL, &si, &pi); CloseHandle(hTokenDup); return 0; } Привелегии даются нормально, все вроде бы нормально, но вылетает с ошибкой доступа к памяти при вызове CreateProcessAsUser. Трейсить апи не хотелось бы, может есть предположения, где косяк зарылся. Запускаю с правами system, иначе права не даются.