|
|
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
Здрасвуйте ВСЕ ! Можно ли запустить поток Thead с другим именем и паролем ? Если нет то что делать права юзеру надо дать только на одну операцию? Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 15:45 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
Если в Вашей программе есть в открытом виде логин и пароль нужной уч. записи (например администратора), то проще все сделать через CreateProcessAsUser(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 16:29 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
Александр СпелицинЕсли в Вашей программе есть в открытом виде логин и пароль нужной уч. записи (например администратора), то проще все сделать через CreateProcessAsUser(). Решение, наверняка, не подойдет, потому что здесь придется запускать какой-то дополнительный модуль. Согласитесь, что это не совсем логично для копирования одного единственного файла с сервера, которое будет производится неизвестно с какой частотой. Это слишком "в лоб". Я уже интересовался подобным. Вот что насоветовали. http://www.sql.ru/forum/actualthread.aspx?tid=219485&hl=lacrim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 16:37 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
А где пример взять с использованием CreateProcessAsUser с комментариями на русском ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 16:38 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
Да ткните пальцем как связать SetThreadToken с известным Юзернэйм и пассворд ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 16:48 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
cap83Да ткните пальцем как связать SetThreadToken с известным Юзернэйм и пассворд ? "Пилите, Шура, пилите. Они золотые!" (copyright reserverd) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 16:59 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
DWORD dwThreadId, dwThrdParam = 1; HANDLE hThread; PHANDLE ptk = new HANDLE; if(LogonUser("Administrator","domen","password",LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,ptk)) { ImpersonateLoggedOnUser(*ptk); RevertToSelf(); hThread = CreateThread( NULL, 0, ThreadFunc, &dwThrdParam, 0, &dwThreadId); SuspendThread(hThread); SetThreadToken(&hThread,*ptk); ResumeThread(hThread); } Собственно Что не так ? Сам поток пытается получить размер диска C:\ на удаленной машине DWORD WINAPI ThreadFunc( LPVOID lpParam ) { char str[512]; typedef union { __int64 x; ULARGE_INTEGER y; } uni64; ULARGE_INTEGER FreeBytesAvailableToCaller,TotalNumberOfBytes,TotalNumberOfFreeBytes; if (!GetDiskFreeSpaceEx("\\\\hrjukina\\c$\\",&FreeBytesAvailableToCaller,&TotalNumberOfBytes,&TotalNumberOfFreeBytes)) { printf("Error Ex!!!\n"); } else { uni64 tst; tst.x = 0; tst.y = TotalNumberOfFreeBytes; _i64toa(tst.x,str,10); MessageBox(0,str,"",0); } return 0; } Вполне возможно вопрос ламерский . Сильно не ругайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 17:32 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
Если подойдет (правда, Паскаль, но разобраться можно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 18:00 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
cap83 Вполне возможно вопрос ламерский . Сильно не ругайте Вопрос совсем не ламерский. Судя по количесту ответов здесь немногие могут чем-то помочь и направить в нужном направлении в этом вопросе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 18:15 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
cap83 Вполне возможно вопрос ламерский . Сильно не ругайте треду можно дать имя а вот пороль врядли. Скорее все вам процесс нужно запустить, а в нем делать все что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 23:51 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
На сколько я знаю, именно тред нельзя запустить под другим аккаунтом. Только процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 00:23 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
Возможно GetDiskFreeSpaceEx успевает вызываться до вызова SetThreadToken. Попробуй так Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 14:00 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
А нет желания сначала замапить сетевой ресурс на этот компьютер, потом получить размер диска, затем отсоединить? Ну, т.е. Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 15:53 |
|
||
|
Запуск Thead от имени другого пользователя
|
|||
|---|---|---|---|
|
#18+
для полного счастья есть еще: BOOL CreateProcessWithLogonW( LPCWSTR lpUsername, LPCWSTR lpDomain, LPCWSTR lpPassword, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInfo ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 14:51 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=379&tid=2032258]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 388ms |

| 0 / 0 |
