Использование c # для добавления пользователей в Active Directory - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь использовать c # для добавления пользователей в активный каталог. Я попытался использовать System.DirectoryServices и System.DirectoryServices.AccountManagement и добавил необходимые ссылки, но по какой-то причине он не распознает .CommitChanges(), .Invoke() или .Exists(). Вот код, над которым я пытался работать. Точная ошибка, которую я получаю:

CS0012 Тип "Компонент" определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку 'Система, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089'

Я добавил ссылку на System.DirectoryServices.dll, есть ли какая-либо другая ссылка? нужно добавить в систему?

Это .NET

using System;
using System.DirectoryServices;

namespace Test
{
    class Class1
    {
        public struct UserInfo
        {
            public string userName;
            public string sAMAccountName;
            public string password;
            public string firstName;
            public string lastName;
            public string fullName;
            public string principalName;
            public string ou;
            public string description;
        }

        public static void  Main()
        {
            string uFirstName = "John";
            string uLastName = "Test";
            string uUserName = uFirstName + "." + uLastName;
            string uOu = "OU=,OU=,DC=,DC=";
            string uSamAccount = uUserName;
            string uPassword = "password";

            UserInfo newUserInfo;
            newUserInfo.firstName = uFirstName;
            newUserInfo.lastName = uLastName;
            newUserInfo.fullName = uFirstName + uLastName;

            newUserInfo.userName = uUserName;
            newUserInfo.principalName = uUserName + "@rc";
            newUserInfo.ou = uOu;
            newUserInfo.description = "STUDENT";
            newUserInfo.sAMAccountName = uSamAccount;
            newUserInfo.password = uPassword;

            DirectoryEntry adUserFolder = new DirectoryEntry("LDAP://CN=, OU=, OU=, DC=, DC=");

            DirectoryEntry newUser = adUserFolder.Children.Add("CN=" + newUserInfo.userName, "User");

            // Checks for duplicate entries
            if (DirectoryEntry.Exists(newUser.Path))
            {
                Console.WriteLine("The user: " + newUser.Username + " already exists, the new entry will be deleted.");
                adUserFolder.Children.Remove(new DirectoryEntry(newUser.Path));
            }
            else
            { 
                return; 
            }

            newUser.Properties["sAMAccountName"].Value = newUserInfo.sAMAccountName;
            newUser.Properties["givenName"].Value = newUserInfo.firstName;
            newUser.Properties["surName"].Value = newUserInfo.lastName;
            newUser.Properties["Path"].Value = newUserInfo.ou;
            newUser.Properties["Description"].Value = newUserInfo.description;
            newUser.Properties["Password"].Value = newUserInfo.password;

            newUser.CommitChanges();

            newUser.Invoke("setpassword", "password"); 
            newUser.Properties["userAccountControl"].Value = 0x0200;

            newUser.CommitChanges();

            Console.WriteLine("User: " + newUserInfo.userName + " has been successfully created!");
        } 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...