更新Active Directory用户登录名域

时间:2014-11-05 18:42:25

标签: c# .net active-directory

目前正致力于自动创建Active Directory用户,但我无法弄清楚如何更新链接图像中指示的字段。 (我无法附加图片,因为我的帖子少于10个)image

我可以更新用户登录名(userprincipal是设置为适当用户的userprincipal对象的实例):

userPrincipal.UserPrincipalName = logonName

我可以更新其他类似的用户属性,例如作业标题(用户位置是指向用户目录位置的directoryentry实例):

(userLocation.Properties["title"]).Value = title;

但无论我尝试和调整什么,我都无法弄清楚如何更新该特定领域。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您必须先知道属性名称,然后才能进行设置。 在活动目录中可以有100和100个属性,一些是从用户界面设置的,一些是从其他地方设置的,无论什么 您可以通过执行以下操作来检查属性名称

DirectoryEntry directoryEntry = new DirectoryEntry(ConnectionString, ProviderUserName, ProviderPassword, AuthenticationTypes.Secure);
 /******************************/

 DirectorySearcher search = new DirectorySearcher(directoryEntry);
 search.Filter = "(&(objectClass=user)(sAMAccountName=" + username + "))";
 search.CacheResults = false;

 SearchResultCollection allResults = search.FindAll();
 StringBuilder sb = new StringBuilder();

 foreach (SearchResult searchResult in allResults)
 {
     foreach (string propName in searchResult.Properties.PropertyNames)
     {
         ResultPropertyValueCollection valueCollection = searchResult.Properties[propName];
         foreach (Object propertyValue in valueCollection)
         {
             sb.AppendLine(string.Format("property:{0}, value{1}<br />", propName, propertyValue));
         }
     }
 }

 return sb.ToString();

这将导致您提供的某个用户的所有活动目录

之后,您将能够设置所需的所有属性,因为您具有可供用户使用的属性名称