Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Вниз

Запуск команды от имени другого пользователя   Найти похожие ветки 

 
Manulo ©   (2004-05-31 21:10) [0]

Задача тривиальна. Программа расчитана на работу в вин 2000 под опытным пользователем. Возникает необходимость запустить некоторую команду, выполнить которую может только администратор.
Выход: используем команду runas.
Но! Тут начинается ступор! В параметрах команды указывается только учётная запись админа, а пароль нужно вводить попозже, во время выполнения команды. Естественно вводить его с клавиатуры никто не собирается.
Вопрос: Чё делать?


 
Manulo ©   (2004-05-31 22:09) [1]

2 модератор: Звыняй, ветки попутал :)

Соббсно нарыл такое:
 if LogonUser("admin","domain","passwrd",LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hToken) then
   ImpersonateLoggedOnUser(hToken);
 WinExec("route delete 0.0.0.0 ",SW_SHOW);

 RevertToSelf;//Возвращаем процессу прежний контекст
 CloseHandle(hToken);//Освобождаем дескриптор контекста


Возник встречный вопрос: Как определить имя домена? Не компилить же каждый раз под каждую машину


 
Cobalt ©   (2004-05-31 22:56) [2]

насколько я знаю, в том случае, когда машина не входит в домен - именем домена является имя компьютера.
Иначе - имя домена, в который она входит.


 
Cobalt ©   (2004-05-31 23:07) [3]

Извиняюсь - эти данные были получены опытным путём, при попытке логина дома и на работе.
А вообще,
lpszDomain

Pointer to a null-terminated string that specifies the domain or server to log on to. If this parameter is ".", LogonUser searches only the local account database for the account specified in lpszUsername. If this parameter is NULL, LogonUser searches the local account database, and then searches trusted domain account databases, until it finds the lpszUsername account or the search is exhausted without finding the account name.

Также есть мысль брать имя домена у текущего пользователя.


 
Piter ©   (2004-06-01 00:20) [4]

Manulo (31.05.04 21:10)
Вопрос: Чё делать?


есть функция CreateProcessAsUser


 
evvcom ©   (2004-06-01 08:33) [5]


> насколько я знаю, в том случае, когда машина не входит в
> домен - именем домена является имя компьютера

А когда входит в домен, то пользователь может войти в любой из этих доменов (локальная машина или сетевой домен). Для каждого из этих доменов определены свои пользователи, в том числе и администраторы.


 
Игорь Шевченко ©   (2004-06-01 10:59) [6]

CreateProcessWithLogonW. Я уже столькораз постил код примера, что больше не буду. Поиск спасет



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

Форум: "WinAPI";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.059 c
1-1088479183
Maxim
2004-06-29 07:19
2004.07.11
Delphi vs VBasic


1-1087896534
Provodnick
2004-06-22 13:28
2004.07.11
OnMouseWheel в TScrollBox


8-1082760546
Demi
2004-04-24 02:49
2004.07.11
Кривовато получается функция waveOutSetVolume.


1-1088408739
VadimKV
2004-06-28 11:45
2004.07.11
Error: class + Constructor + Destructor


4-1086185977
K.o.Z
2004-06-02 18:19
2004.07.11
TOpenDialog





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский