|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
|
ivanfr |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Здравствуйте
Нашёл исходник, который запускает программу о имени другого пользователя. В моем случае есть пароль и имя пользователя. Прога компилируется без ошибок, как таковых. Как мне заставить запусть мою программу, при условию что она будет находиться на рабочем столе. (тоесть все в одной папке), будет применяться на разных компах соответственно будут разные пользователи. Программа читает параметры из реестра, чтобы работала нужны права админа. Немогу понять куда, чего вводить?! Как я понял в этом исходнике, нужно вызвать функцию помогите на примере, какой либо другой программы. Исходник
Присоединённый файл ( Кол-во скачиваний: 23 ) run_as.zip 4,66 Kb |
|||
|
||||
ivanfr |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
На данный момент я решил эту проблему с помощью программы AdmiLink.
создав ярлык для запускаемой программы с определенным пользователем админом и его паролем. То есть программа стартует на всех машинах с ограниченными правами, где есть пользователь администратор. Так как обычный юзер не имеет прав админа, то ни чего не может сделать. Чтобы программа запускалась, нужна папка куда можно положить файлы. Я для этих целей использовал папку "общие документы". Теперь, если есть 10 машин с пользователями и на них есть учетная запись админа, например, "админ" с паролем "8888", но сами Юзеры не имеют прав администратора, наша программа будет работать с правами администратора на этих 10 машинах. Жду ваших комментариев по исходному коду, хотелось бы знать как его можно использовать.... |
|||
|
||||
Keeper89 |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
||||
|
||||
Virtuals |
|
|||
Опытный Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 4 Всего: 11 |
ivanfr,
1 зачем тебе LogonUser? - CreateProcessWithLogon сам его делает ;) (кстати как и многое другое, тоесть загрузку профиля и переменных окружения) 2. используй для анализа ошибок OSError(SysErrorMessage(GetLastError) ) думаю информативней будет . ЗЫ а служба то вообще запущена? ибо CreateProcessWithLogonW это всего лиш оболочка вызова службы seclogon ;) |
|||
|
||||
ivanfr |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Данный код стартует приложение, но при этом выводит сообщение куда нужно ввести имя пользователя и пароль.
Вопрос в следующем можно ли все это сделать программно чтобы пользователь ни чего не видел. Да, и ещё откуда он берет путь? как я опять же понял непосредственно тот путь, откуда запускается сам программа.
Это сообщение отредактировал(а) ivanfr - 11.1.2010, 09:08 |
|||
|
||||
ivanfr |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Нашёл еще одно решение с воей проблемы. Можно использовать утилиту psexec от Марк Руссинович (Mark Russinovich) http://technet.microsoft.com/ru-ru/sysinte...897553.aspx#top
Копирует на удаленную машину вашу программу и запустить ее. |
|||
|
||||
Virtuals |
|
|||
Опытный Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 4 Всего: 11 |
ivanfr,
на ленивец. код рабочий
|
|||
|
||||
ivanfr |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Блин, ну я ей уже воспользовался добавив, пользовотеля и пароль, путь перед этой строкой
ExitCode:=RunProcessAs(ParamStr(b),t,Username,Password,Domain,WorkingDir); У меня запускалось. Только вот проблема была в другом. Моя софтина должна была кидать инфу на новел диски, а они блин из под пользователя админа не работаю так, как на новеловском сервере нет такого юзера... и соответсвтенно дисков тоже.. Но все равно спасибо может пригодиться. Но для начала нужно потестить что там вы мне за иходник привели. Это сообщение отредактировал(а) ivanfr - 29.1.2010, 09:46 |
|||
|
||||
ivanfr |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Думаю нужно вот так:
А еще матерится на строки
/// [Pascal Error] Unit5.pas(52): E2003 Undeclared identifier: 'ERRLog' [Pascal Error] Unit5.pas(54): E2003 Undeclared identifier: 'CreateProcessWithLogonW' [Pascal Fatal Error] Project5.dpr(5): F2063 Could not compile used unit 'Unit5.pas' Как испрвавить!? Это сообщение отредактировал(а) ivanfr - 29.1.2010, 14:35 |
||||
|
|||||
Rennigth |
|
||||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
http://msdn.microsoft.com/en-us/library/ms...28VS.85%29.aspx ERRLog наверное своя какая-то функция. -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |