Код для создания пользователя и установки разрешений - PullRequest
1 голос
/ 30 сентября 2010

У меня есть приложение-служба C # для windows, которое создает файл журнала, который пишет в C: \ Program Files \ Company \ Product \ log.txt.Я использую установщик, предоставляемый Visual Studio 2010, и мне нужно иметь установщик:
1. Создайте пользователя с именем ProductUser
2. Установите разрешение для C: \ Program Files \ Company \ Product \, чтобы позволить ProductUser писатьв каталог.

1 Ответ

0 голосов
/ 17 марта 2011

Не лучшее решение ... но только идея: как насчет запуска команды net user пароль username / ADD ? Если вы можете сделать это, я могу найти старые VBS, которые я использовал на сервере, чтобы предоставить разрешения для пользователя в папке.

ОК, я немного погуглил и нашел вот это:

public void CreateUserAccount(string login , string password , string fullName, bool isAdmin)
{
    try
    {
        DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
        DirectoryEntries entries = dirEntry.Children;
        DirectoryEntry newUser  = entries.Add (login, "user");
        newUser.Properties["FullName"].Add(fullName);
        newUser.Invoke("SetPassword", password);
        newUser.CommitChanges();

        // Remove the if condition along with the else to create user account in "user" group.
        DirectoryEntry grp;
        if (isAdmin)
        {
            grp = dirEntry.Children.Find("Administrators", "group");
            if (grp != null) {grp.Invoke("Add", new object[] {newUser.Path.ToString()});}
        }
        else
        {
            grp = dirEntry.Children.Find("Guests", "group");
            if (grp != null) {grp.Invoke("Add", new object[] {newUser.Path.ToString()});}
        }

    }
    catch (Exception ex)
    {
            MessageBox.Show(ex.ToString());
    }
}

Это не мое: вот ссылка . Дайте мне знать, если это работает для вас

...