2014-11-05 163 views
2

目前正在自动创建Active Directory用户,但我无法弄清楚如何更新链接图像中指示的字段。 (I不能附加图像,因为我有少于10个)image更新Active Directory用户登录域名

我可以更新由所述用户登录名(userprincipal被设置为适当的用户的userprincipal对象的一个​​实例):

userPrincipal.UserPrincipalName = logonName 

,我可以更新其他类似的用户属性如(用户位置是DirectoryEntry的实例,它指向用户的目录位置)职位:

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

但不管如何我尝试和调整,我一直未能弄清楚如何更新该特定字段。任何帮助是极大的赞赏!

回答

0

在设置它之前,您必须知道属性名称。 有可能在活动目录中的一些从用户界面设定,有些是从别的地方设置的属性100S和100S,无论 您可以检查做名的属性如下

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(); 

这将在一些用户的所有活动目录您提供

之后,你就可以将所有你想,因为你有属性名称是可供用户

+0

好的性能,所以这实际上帮助的结果相当多。让我们更容易了解我可以为用户设置的属性以及它们已经存在的价值。比梳理msdn上所有可能的活动目录属性要好得多。但是,解决方案只是传递不同的用户主名称。在AD GUI中,它看起来像登录名和域是两个单独的字段/属性,但它们都由userprincipalname修改。所以我的问题是通过将userprincipal名称设置为'[email protected]'而不是'test.test'来解决的。再次感谢你的帮助! – ImNotADrugDealer 2014-11-05 19:57:03

相关问题