我正在尝试创建一个应用程序来配置全新安装的 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.
请指出我正确的方向。