Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Как запустить процесс под другим пользователем?   Найти похожие ветки 

 
ng_softman ©   (2003-05-09 10:26) [0]

Как, зная имя и пароль другого пользователя, запустить процесс, чтобы тот имел все

привелегии данного пользователя, или хотябы как получить токен контекста безопасности

и/или ACE (Access Control Entry).

функции
- LoginUser & CreateProcesssAsUser
- CreateProcessWithLogonW
выдают ошибку: "A required privilege is not held by the client."


 
ZZ ©   (2003-05-09 13:58) [1]

Определись в желаниях.
А лучше покажи НЕРАБОЧИЙ код с CreateProcessWithLogonW


 
ng_softman ©   (2003-05-09 15:04) [2]

>Определись в желаниях.
>А лучше покажи НЕРАБОЧИЙ код с CreateProcessWithLogonW

2 zz не забудь прописать параметры командной строки

Requirements
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Unsupported.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Advapi32.lib.
Unicode: Implemented only as Unicode.

<pre>
/***************
* CreatePWL.cpp
*
***************/

#ifndef UNICODE
#define UNICODE
#endif

#include "windows.h"
#include <stdio.h>


typedef BOOL (WINAPI *LPCreateProcessWithLogonW)
(LPCWSTR lpUsername, // user"s name
LPCWSTR lpDomain, // user"s domain
LPCWSTR lpPassword, // user"s password
DWORD dwLogonFlags, // logon option
LPCWSTR lpApplicationName, // executable module name
LPWSTR lpCommandLine, // command-line string
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // new environment block
LPCWSTR lpCurrentDirectory, // current directory name
LPSTARTUPINFOW lpStartupInfo, // startup information
LPPROCESS_INFORMATION lpProcessInfo // process information
);

int ErrMsg()
{
int nErr = GetLastError();
LPVOID lpMsgBuf;

FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, // message source
nErr, // message id
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // default language
(LPTSTR) &lpMsgBuf,
0,
NULL);
wprintf(L"%s\n", lpMsgBuf);

// Free the buffer.
LocalFree( lpMsgBuf );

return nErr;
}

/*
argv[1] - domain
argv[2] - user name
argv[3] - password
*/
int wmain(int argc, wchar_t *argv[])
{
// all parameters are required
//
if (argc != 4)
{
fwprintf(stderr, L"Usage: %s \\\\Domain UserName Password\n", argv[0]);
return 1;
}

int lResult = 0;
HINSTANCE hLib = LoadLibrary(L"advapi32.dll");

if ( hLib != NULL )
{
__try {
STARTUPINFO si;
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.lpDesktop = NULL; // TEXT("winsta0\\default");

PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));

LPCreateProcessWithLogonW CreateProcessWL;
CreateProcessWL = (LPCreateProcessWithLogonW) GetProcAddress(hLib, "CreateProcessWithLogonW");
if ( CreateProcessWL != NULL )
{
if ( CreateProcessWL(
argv[2], // username
argv[1], // domain
argv[3], // password
1, // LOGON_WITH_PROFILE
NULL, L"logon.exe", // app name & cmd line
CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS,
NULL, NULL,
&si, &pi) )
{
wprintf(L"Ok!!!!!!!\n");
}
else
lResult = ErrMsg();
}
}
__finally
{
FreeLibrary(hLib);
}
}
else
lResult = ErrMsg();
return lResult;
}
</pre>


 
ZZ ©   (2003-05-10 08:52) [3]

Ты будешь смеяться, но эта функция работает :) (правда если изменить L"logon.exe" на L"cmd.exe" ) Ошибок не возвращает.. Вот только для полного счастья поставь 4ым параметром 2, а не 1.
W2000SP2 сеть без домена.


 
AntonCFG   (2003-05-10 09:33) [4]

Удалено модератором
Примечание: Задай вопрос в СВОЕЙ ветке


 
ng_softman ©   (2003-05-10 12:25) [5]

2 zz: thanks. Но проблема в том что CreateProcessWithLogonW работает от 2К и выше, а как быть с NT4.


 
ZZ ©   (2003-05-10 14:46) [6]

Без потугов со стороны админа - ничего. Если есть возможность поработать под админом хоть один раз, то LogonUser/CreateProcesAsUser могут работать из сервиса, можно добавить нужные права (не рекомендуется, иначе бы их просто не убирали) всем. И много чего еще, но для настройки этого нужны права админа :(



Страницы: 1 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-55584
VDen
2003-07-02 20:14
2003.07.17
Не сворачивается окно...


14-55765
Dimka Maslov
2003-07-02 14:02
2003.07.17
ALC comes back


6-55676
junior
2003-05-11 02:08
2003.07.17
Сеть, как узнать информацию о клиенте(ах) ???


6-55680
Kisly
2003-05-09 13:51
2003.07.17
7.0


14-55848
shark
2003-07-01 18:02
2003.07.17
Массив