Windows 7 Forums
Welcome to Windows 7 Forums. Our forum is dedicated to helping you find support and solutions for any problems regarding your Windows 7 PC be it Dell, HP, Acer, Asus or a custom build. We also provide an extensive Windows 7 tutorial section that covers a wide range of tips and tricks.

Windows 7: Need to give admin rights to session 1 exe

30 May 2011   #1
praveen yadav

Windows 7 Ultimate x64
Need to give admin rights to session 1 exe

Need to give admin rights to session 1 exe so that this exe can create new files and registry.

i have used the below code to launch an application in session 1(ex: abc.exe) from session 0(ex:Myapp.exe).
I wish to give admin priveleges to abc.exe as this exe in-turn creates a file in C:\. But its failing to create a new file in C:\ as it is returning an ACCESS_DENIED Error, as it doesnt have the admin rights.

void ExecuteProc(DWORD sessionId)
HANDLE hToken, hProcess, hPToken, hUserTokenDup;
HDESK hdesk = NULL;
HWINSTA hwinsta = NULL, hwinstaSave = NULL;
BOOL bResult = FALSE;
sessionId = WTSGetActiveConsoleSessionId();
BOOL bQuery = false;
bQuery = WTSQueryUserToken(sessionId, &hToken) ;
DWORD dwErr1;
// Initialize the STARTUPINFO structure.
// Specify that the process runs in the interactive desktop.
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb= sizeof(STARTUPINFO);
si.lpDesktop = TEXT("winsta0\\default");
LUID luid;
if (!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&luid))
printf("Lookup Privilege value Error: %u\n",GetLastError());
tp.PrivilegeCount =1;
tp.Privileges[0].Luid =luid;
tp.Privileges[0].Attributes =SE_PRIVILEGE_ENABLED;
int dup = GetLastError();
//Adjust Token privilege
SetTokenInformation(hUserTokenDup, TokenSessionId,(void*)sessionId,sizeof(DWORD));
if (!AdjustTokenPrivileges(hUserTokenDup,FALSE,&tp,sizeof(TOKEN_PRIVILEGES),(PTOKEN_PRIVILEGES)NULL,NULL))
int abc =GetLastError();
printf("Adjust Privilege value Error: %u\n",GetLastError());
if (GetLastError()== ERROR_NOT_ALL_ASSIGNED)
printf("Token does not have the provilege\n");
// Launch the process in the client's logon session.
wchar_t lpCommandLine[] = L"C:\\abc.exe";
bResult = CreateProcessAsUser(
hUserTokenDup, // client's access token
NULL, // file to execute
lpCommandLine, // command line
NULL, // pointer to process SECURITY_ATTRIBUTES
NULL, // pointer to thread SECURITY_ATTRIBUTES
FALSE, // handles are not inheritable
NULL, // pointer to new environment block 
NULL, // name of current directory 
&si, // pointer to STARTUPINFO structure
&pi // receives information about new process
int _tmain(int argc, _TCHAR* argv[])
DWORD sessionId = 0;
return 0;

NOTE: abc.exe tries to create a new file in C:\ but it failed to do so as it require admin rights.
please give your valuabe inputs.

My System SpecsSystem Spec
30 May 2011   #2

Windows 7 Ultimate x64

I think this will help:

Run as Administrator
  1. Right-click on the exe in Windows Explorer, go to Properties.
  2. On the Compatibility tab, tick the checkbox at the bottom that says "Run this program as an administrator".
  3. Click OK, then try running it. It should bring up the UAC prompt.
Hope that helps a bit, at least...
My System SpecsSystem Spec

 Need to give admin rights to session 1 exe

Thread Tools

Similar help and support threads for2: Need to give admin rights to session 1 exe
Thread Forum
admin user lost some admin rights BSOD Help and Support
Solved Admin rights General Discussion
Admin Rights General Discussion
How to give Adminstrative Rights to standard user ? Network & Sharing
No admin rights General Discussion

Our Sites

Site Links

About Us

Find Us

Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd

All times are GMT -5. The time now is 10:42 PM.
Twitter Facebook Google+

Windows 7 Forums

Seven Forums Android App Seven Forums IOS App