![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск под админом
Unlocker © (2009-04-13 23:58:00)Здравствуйте!
Такая ситуация. Своей программой хочу запускать другие программы с возможностью указания от чьего имени. Этакий аналог "Запуск от имени". логин-пароль есть. Подозреваю, что нужно запускать через ShellExecute, но с определенными параметрами.
Вообщем прошу помощи.
Maxxoft (2009-04-15 07:20:00) [1]
> Сам понял, что сказал ?
Да, затупил, извиняюсь.
Ситуация следующая: мое приложение вызывает функции из dll, которым нужны админские права на локальной машине. Сделал юзерам батничек
runas \savecred user:sysad "приложение..."
Соответственно программа запускается с правами системного админа, тем не менее при вызове функций из библиотечки (написана не мной) вылетает ошибка нарушения прав доступа "file access error"
Unlocker (2009-04-14 18:38:00) [2]Большое спасибо! Теперь у меня Unlocker работает под ограниченой учеткой ;)
Игорь Шевченко (2009-04-14 10:48:00) [3]
> А если нужно вызвать функцию из dll с админскими правами?
Сам понял, что сказал ?
Игорь (2009-04-14 07:17:00) [4]http://www.delphisources.ru/pages/sources/system/2008-year/run-ass.html
http://www.delphisources.ru/pages/sources/raznoe/2008-year/run-as.html
Maxxoft (2009-04-14 06:40:00) [5]А если нужно вызвать функцию из dll с админскими правами?
Игорь Шевченко (2009-04-14 01:40:00) [6]CreateProcessWithLogonW появился в Windows 2000, runas работает именно с его помощью, а если у кого кривые руки - это еще не повод для публичных об этом заявлений.
Игорь Шевченко (2009-04-14 01:37:00) [7]
> тоесть под 2000 не будет работать даже с CreateProcessAsUser
Будет
Городской Шаман (2009-04-14 00:12:00) [8]
> Unlocker (13.04.09 23:58)
Уточню, ответ предыдущего отвечающего. Нормально это процесс работает только начиная с WinXP (тоесть под 2000 не будет работать даже с CreateProcessAsUser). Так как Win2000 для смены токена при запуске процесса требует привилегий SE_ASSIGNPRIMARYTOKEN_NAME and SE_INCREASE_QUOTA_NAME, которых по умолчанию нет даже у администратора. Только через сервис.
Ну а через ShellExecute через программу runas с ключами. Самый переносимый способ.
Игорь Шевченко (2009-04-14 00:05:00) [9]CreateProcessWithLogon