1

我正在尝试创建一个应用程序来配置全新安装的 AD 或将 AD 重置为默认值。这意味着使用 DirectoryServices API。

我的计划是创建一些 OU,然后创建一些组(每个组都有自己的安全属性 - 还安装了 ForeFront 和 CA)。然后我将创建一些用户并将他们添加到组中。

我知道如何创建 OU、组和用户,并且知道如何将用户添加到组中。

但我不知道如何设置组或用户的安全属性。

我找到了这段代码,但它对我不起作用:

static void SecurityStuff(string groupFQDN,string user)
    {

        DirectoryEntry directoryEntry = new DirectoryEntry(string.Format("LDAP://{0}",dudu.test.com/cn=batata,ou=Users and Groups,ou=FIM,ou=Local,dc=dudu,dc=test,dc=com),"username","password");

        ActiveDirectorySecurity adSecurity = directoryEntry.ObjectSecurity;

        string sd = adSecurity.GetSecurityDescriptorSddlForm(AccessControlSections.All);

        IdentityReference newidentity = new System.Security.Principal.NTAccount("dudu.test.com",user);

        ActiveDirectoryAccessRule newAccessRule = new ActiveDirectoryAccessRule(newidentity, ActiveDirectoryRights.WriteProperty, AccessControlType.Allow);

        try
        {
            directoryEntry.ObjectSecurity.AddAccessRule(newAccessRule);

        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message.ToString());
        }

        directoryEntry.CommitChanges();
    }

我从代码中得到这个错误:

Some or all identity references could not be translated.

请指出我正确的方向。

4

0 回答 0