Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск с правами админа, Программный запуск приложения. 
:(
    Опции темы
tolan96
Дата 2.3.2012, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Доброго времени суток.

Ситуация:
 На машине есть 3 пользователя:
 1) Vasya (пользователь)
 2) admin (администратор)
 3) administrator (администратор)

Пароль пользователя administrator изменили на неизвестный. Виновник скрылся.
Задача - поменять пароль administrator'a.
Можно войти под учеткой admin'a и с лёгкостью поменять пароль, но...

Осложнения:
Машина находится в г. Урюпинск. Доступа у админов к ней нет.
Доступ есть только у Vasya'и, а сказать ему пароль пользователя admin мы не можем.
Так что родилась мысль написать программу (A), которая меняла пароль учетки.

С первого взгляда всё просто. Код, изменяющий пароль:
Код

// login - administrator.
// password - новый пароль.
private static void ChangePass(string login, string password)
        {
            DirectoryEntry theEntry = new DirectoryEntry("WinNT://" +
                                                         Environment.MachineName + ",computer");
            DirectoryEntry theUser = theEntry.Children.Find(login, "user");
            theUser.Invoke("SetPassword", new object[] { password });
            theUser.CommitChanges();
            Console.WriteLine("Cмена пароля успешно произведена.");
        }


Но, само собой этот код требует определенных прав. То есть Vasya не может выполнить программу с выше указанным кодом, т.к. у него нет прав.
Для решения этого вопроса приложение решено запускать с правами админа (admin, та учетка пароль от которой мы знаем).
Создана маленькая программа(B) в которой осуществляется вызов приложения A
Код вызова А:
Код

public static void RunAs( string username, string password)
        {
            ProcessStartInfo myProcess = new ProcessStartInfo("C:\\" + programmName);
            myProcess.UserName = username;// admin
            myProcess.Password = MakeSecureString(password);
            myProcess.Domain = Environment.MachineName;
            myProcess.UseShellExecute = false;
            myProcess.Verb = "runas";
            Process.Start(myProcess);
        }


Провожу тест у себя.

Запускаю программу B, она запускает А и... исключение. У вас нет прав...
Лезу в диспечер задач. Приложение запущено от имени: admin. Всё правильно, но прав нет!

Хм... ПКМ -> Запустить от имени администратора. (admin)
Работает! Но Vasya'е так делать не надо. Он же не знает пароля admin'а...

У кого-нибудь есть идеи, как запустить программу с правами Администратора из под C#?
PM MAIL   Вверх
fedyunina
Дата 13.3.2012, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 1.3.2012
Где: Питер

Репутация: нет
Всего: нет



а не проще просто загрузиться с ERD Commander и сбросить пароль?  smile 
PM MAIL Skype   Вверх
kin
Дата 13.3.2012, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 9.5.2008

Репутация: нет
Всего: 6



Привет! А машина, которая в Урюпинске, может выйти в Интернет? Если да, то может это http://www.ammyy.com/ru/downloads.html поможет? 

Это сообщение отредактировал(а) kin - 13.3.2012, 19:14
PM MAIL   Вверх
tolan96
Дата 14.3.2012, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Цитата

а не проще просто загрузиться с ERD Commander и сбросить пароль?    

Научить Васю пользоваться  ERD Commander'ом?!?! Он же потом делов натворит!!! smile 

Цитата

Привет! А машина, которая в Урюпинске, может выйти в Интернет? Если да, то может это http://www.ammyy.com/ru/downloads.html поможет? 

Он не сможет установить или запустить программу без админских прав... smile 

А вобще, код, который я написал в первом посте, должен работать!!! Но никак не могу понять почему права не появляются... smile 

PM MAIL   Вверх
fedyunina
Дата 14.3.2012, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 1.3.2012
Где: Питер

Репутация: нет
Всего: нет



tolan96, а ОС какая? ХР? может безопасность винды все это дело режет?

Добавлено через 1 минуту и 41 секунду
или еще идея, настройте TeamViewer, возьми и запусти через него программку от администратора. когда ты будешь вводить пароль, он его не увидит smile
PM MAIL Skype   Вверх
kin
Дата 14.3.2012, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 9.5.2008

Репутация: нет
Всего: 6



Цитата(tolan96 @  14.3.2012,  16:48 Найти цитируемый пост)
Он не сможет установить или запустить программу без админских прав... 
Ее не надо устанавливать, нужно чтобы он ее запустил из любой папки, где у него есть на то права ("Мои документы", "Рабочий стол" и пр.) , сообщил тебе номер (телефон, телеграф,телепатия и пр.), который она ему даст и больше ее не трогал. На твоей стороне будет работать такая же  штука, в которую ты введешь это номер и соединишься с нужной тебе железкой...


Это сообщение отредактировал(а) kin - 14.3.2012, 22:26
PM MAIL   Вверх
tolan96
Дата 20.3.2012, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Хм... Ок, попробуемс.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1146 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.