Форум: "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.029 c