我尝试添加用户,将其添加到组中,然后将该组设为用户的主要组。我一直在使用System.DirectoryServices.AccountManagement进行所有AD访问。 我已使用以下内容添加了用户:
principalContext = new PrincipalContext(ContextType.Domain, Globs.strDomain, userOU);
UserPrincipal userPrincipal = new UserPrincipal(principalContext);
userPrincipal.Surname = this.textBox_LastName.Text;
userPrincipal.GivenName = this.textBox_FirstName.Text;
userPrincipal.SamAccountName = this.textBox_LogonName.Text;
userPrincipal.MiddleName = this.textBox_Initials.Text;
userPrincipal.DisplayName = label_DisplayName.Text;
userPrincipal.Description = this.comboBox_Description.Text;
userPrincipal.UserPrincipalName = this.textBox_LogonName.Text;
userPrincipal.SetPassword(defaultPassword);
userPrincipal.PasswordNeverExpires = true;
userPrincipal.Enabled = true;
userPrincipal.Save();
然后我使用以下内容将用户添加到组:
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Globs.strDomain))
{
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, groupName);
group.Members.Add(pc, IdentityType.UserPrincipalName, userId);
group.Save();
}
是否可以快速获取该组并将其作为用户的主要组?一旦我创建了主要组,我将删除" Domain Users"的默认组。任何帮助表示赞赏。 -Cary
答案 0 :(得分:0)
由attribute primaryGroupID
控制。它不会被默认的UserPrincipal
公开,因此您必须make your own subclass that exposes it或使用更多RAW底层System.DirectoryServices
对象并设置属性。
(更新: 2008和MSDN杂志的早期文章不再通过网络界面提供。您需要下载January 2008 magazine's chm file并找到文章“查找它:管理.NET Framework 3.5中的目录安全主体“以查看有关创建子类的文章”
属性值是组的RID,因此您需要从新组中获取primaryGroupToken
attribute并将其设置为用户primaryGroupID
属性。