Одесса: 0°С (вода 9°С)
Киев: -3°С
Львов: 0°С

Тема: Создание учетной записи, через реестр или файл

Ответить в теме
Показано с 1 по 11 из 11
  1. Вверх #1
    Частый гость Аватар для snayperAlfa
    Пол
    Мужской
    Адрес
    24 года живу на Земле
    Сообщений
    672
    Репутация
    455

    По умолчанию Создание учетной записи, через реестр или файл

    Приветствую всех. Поставили мне такую задачу: Нужно сделать программу под Win XP для регистрации пользователей. То есть чтобы через мою программу создавать пользователей, не заходя в Панель Управления. Весь день бьюсь и никак не могу изменениями в реестре создать пользователя. Мне кажется лучшим вариантом будет создать учетную запись. А уже при входе в винду под ней, система сама создаст необходимые папки и записи в реестре. Ведь если создать пользователя через панель управления, и не заходить под ним - то не появится папка "C:\Documents and Settings\Имя пользователя". Мне пока не удалось найти где винда хранит запись о том что пользователь создан, но есть возможность зайти под ним при старте системы. Реестр весь перерыл. Искал и например "User1" и его же в 16-тиричной кодировке в реестре - ПУСТО. Получается создается запись в какомто файле. Подскажите мне плизз.
    Я знаю что это через анус, но такое задание.


  2. Вверх #2
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,351
    Репутация
    6087
    Цитата Сообщение от snayperAlfa Посмотреть сообщение
    Приветствую всех. Поставили мне такую задачу: Нужно сделать программу под Win XP для регистрации пользователей. То есть чтобы через мою программу создавать пользователей, не заходя в Панель Управления. Весь день бьюсь и никак не могу изменениями в реестре создать пользователя. Мне кажется лучшим вариантом будет создать учетную запись. А уже при входе в винду под ней, система сама создаст необходимые папки и записи в реестре. Ведь если создать пользователя через панель управления, и не заходить под ним - то не появится папка "C:\Documents and Settings\Имя пользователя". Мне пока не удалось найти где винда хранит запись о том что пользователь создан, но есть возможность зайти под ним при старте системы. Реестр весь перерыл. Искал и например "User1" и его же в 16-тиричной кодировке в реестре - ПУСТО. Получается создается запись в какомто файле. Подскажите мне плизз.
    Я знаю что это через анус, но такое задание.
    http://support.microsoft.com/kb/251394
    Создать папки - попробовать создать какаой-то процсс от имени этого пользователя и будет наверное счастье.

  3. Вверх #3
    Частый гость Аватар для snayperAlfa
    Пол
    Мужской
    Адрес
    24 года живу на Земле
    Сообщений
    672
    Репутация
    455
    АААААААА!!!!
    Спасибоооооо.
    Осталось теперь в вижуал студио накидать программку.

  4. Вверх #4
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    30
    Сообщений
    900
    Репутация
    95
    Создаём bat фаил, в него помещаем....

    net user %1 %2 /add

    вызываем: bat_name.bat username userpass
    Еврейский SQL сервер отвечает запросом на запрос.

  5. Вверх #5
    Частый гость Аватар для snayperAlfa
    Пол
    Мужской
    Адрес
    24 года живу на Земле
    Сообщений
    672
    Репутация
    455
    Спасибо конечно за помощь, я так и сделал.
    Только у меня не bat файл, а в С# создается процесс с такими параметрами.

  6. Вверх #6
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,080
    Репутация
    775
    Цитата Сообщение от CrazySquirrel Посмотреть сообщение
    Создаём bat фаил, в него помещаем....

    net user %1 %2 /add

    вызываем: bat_name.bat username userpass
    Цитата Сообщение от snayperAlfa Посмотреть сообщение
    Спасибо конечно за помощь, я так и сделал.
    Только у меня не bat файл, а в С# создается процесс с такими параметрами.
    Вам не кажется, что это как-то через попу по индусски?

    Вызывать батники или создавать процессы - это совсем не windows way. В windows обязаны существовать специальные объекты, которые занимаются управлением учетными записями. Ищите, не будьте тяп-ляп кодерами.
    Моя хата з найкращого краю в світі.

  7. Вверх #7
    Частый гость Аватар для snayperAlfa
    Пол
    Мужской
    Адрес
    24 года живу на Земле
    Сообщений
    672
    Репутация
    455
    Мне не удалось найти никакого другого способа создания учетный записей.

  8. Вверх #8
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,351
    Репутация
    6087
    Цитата Сообщение от snayperAlfa Посмотреть сообщение
    Мне не удалось найти никакого другого способа создания учетный записей.
    Плохо искали - http://msdn.microsoft.com/en-us/library/aa370649(VS.85).aspx

  9. Вверх #9
    Постоялец форума Аватар для bOOs
    Пол
    Мужской
    Сообщений
    2,932
    Репутация
    1864
    На C#:


    using System.DirectoryServices;

    ...
    ...


    public static bool CreateUser(String UserName, String Password)
    {
    bool res = false;

    WriteLogInfo("CreateUser: " + UserName);

    try
    {
    DirectoryEntry Machine = new DirectoryEntry("WinNT://" + Environment.MachineName);
    DirectoryEntry User = (DirectoryEntry)Machine.Invoke("Create", "user", UserName);

    User.Properties["UserFlags"].Add(66145);
    User.Invoke("SetPassword", Password);
    User.CommitChanges();

    object[] UserPath = new object[] { User.Path };

    try
    {
    DirectoryEntry GroupGuests = Machine.Children.Find("Гости", "group");
    if (!(Boolean)GroupGuests.Invoke("IsMember", UserPath))
    {
    GroupGuests.Invoke("Add", UserPath);
    GroupGuests.CommitChanges();
    };

    res = true;
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    //WriteLog(ex.Message);
    }

    try
    {
    DirectoryEntry GroupGuestsEn = Machine.Children.Find("Guests", "group");

    if (!(Boolean)GroupGuestsEn.Invoke("IsMember", UserPath))
    {
    GroupGuestsEn.Invoke("Add", UserPath);

    GroupGuestsEn.CommitChanges();
    };
    res = true;
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    WriteLog(ex.Message);
    }
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    WriteLog("CreateUser: " + ex.Message);
    }
    return res;
    }

  10. Вверх #10
    Частый гость Аватар для snayperAlfa
    Пол
    Мужской
    Адрес
    24 года живу на Земле
    Сообщений
    672
    Репутация
    455
    ОГО!
    Спасибо.
    Блин,теперь похоже надо переделывать прогу.((

  11. Вверх #11
    Частый гость Аватар для snayperAlfa
    Пол
    Мужской
    Адрес
    24 года живу на Земле
    Сообщений
    672
    Репутация
    455
    Странно...
    Нет такого
    using System.DirectoryServices;

    Может это связано с тем что у меня Visual Studio Express.
    В проекте создаю Windows Forms

    Ага понял, надо было добавить reference
    Последний раз редактировалось snayperAlfa; 10.11.2009 в 19:15.


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения