-
Unlocker (13.04.09 23:58) [0]Здравствуйте!
Такая ситуация. Своей программой хочу запускать другие программы с возможностью указания от чьего имени. Этакий аналог "Запуск от имени". логин-пароль есть. Подозреваю, что нужно запускать через ShellExecute, но с определенными параметрами.
Вообщем прошу помощи. -
Игорь Шевченко © (14.04.09 00:05) [1]CreateProcessWithLogon
-
Городской Шаман (14.04.09 00:12) [2]
> Unlocker (13.04.09 23:58)
Уточню, ответ предыдущего отвечающего. Нормально это процесс работает только начиная с WinXP (тоесть под 2000 не будет работать даже с CreateProcessAsUser). Так как Win2000 для смены токена при запуске процесса требует привилегий SE_ASSIGNPRIMARYTOKEN_NAME and SE_INCREASE_QUOTA_NAME, которых по умолчанию нет даже у администратора. Только через сервис.
Ну а через ShellExecute через программу runas с ключами. Самый переносимый способ. -
Игорь Шевченко © (14.04.09 01:37) [3]
> тоесть под 2000 не будет работать даже с CreateProcessAsUser
Будет -
Игорь Шевченко © (14.04.09 01:40) [4]CreateProcessWithLogonW появился в Windows 2000, runas работает именно с его помощью, а если у кого кривые руки - это еще не повод для публичных об этом заявлений.
-
Maxxoft (14.04.09 06:40) [5]А если нужно вызвать функцию из dll с админскими правами?
-
Игорь © (14.04.09 07:17) [6]
-
Игорь Шевченко © (14.04.09 10:48) [7]
> А если нужно вызвать функцию из dll с админскими правами?
Сам понял, что сказал ? -
Unlocker (14.04.09 18:38) [8]Большое спасибо! Теперь у меня Unlocker работает под ограниченой учеткой ;)
-
Maxxoft (15.04.09 07:20) [9]
> Сам понял, что сказал ?
Да, затупил, извиняюсь.
Ситуация следующая: мое приложение вызывает функции из dll, которым нужны админские права на локальной машине. Сделал юзерам батничек
runas \savecred user:sysad "приложение..."
Соответственно программа запускается с правами системного админа, тем не менее при вызове функций из библиотечки (написана не мной) вылетает ошибка нарушения прав доступа "file access error"