使用C#修改LDAP PhoneNumber和IPPhone属性

时间:2010-07-06 15:57:28

标签: c# active-directory ldap

我有一个带有EmployeeNumber,TelephoneNumber,IPPhone Number的.csv文件在文本文件中列出我需要一种方法来循环文本文件中的所有记录并修改LDAP中的2个手机属性请帮忙。这完全令人沮丧

1 个答案:

答案 0 :(得分:4)

如果您正在使用.NET 3.5(或者您可以更新它),请查看System.DirectoryServices.AccountManagement命名空间 - 使很多事情变得更容易。

阅读它:Managing Directory Security Principals in the .NET Framework 3.5并查看.NET 3.5中新UserPrincipal类所显示的所有属性。

我推荐的另一个地方是Richard Mueller's web site - 他有很多显示所有AD / LDAP属性的Excel工作表,您可以在其中找到的交互式工具,等等。非常实用!

结合这两种资源,您应该能够做任何你需要做的事情!

更新:如果您无法更新到.NET 3.5(这实际上就像.NET 2之上的服务包......),您必须执行以下步骤:

  • 将CSV导入List<CSVRecord> - 我会使用免费的FileHelpers库来执行此操作;您的CSVRecord将保留CSV文件中的三个字段
  • 根据您的搜索根(您的域或其子容器)创建一个DirectorySearcher类;找到正确的LDAP搜索过滤器,以便按EmployeeId

  • 找到您的用户
  • 循环列表中的条目以及每个条目

    • 搜索该用户的目录
    • 如果找到:从DirectoryEntry抓取SearchResult并更新两个属性
    • .CommitChanges()
    • 上致电DirectoryEntry

我认为没有其他方法可以做到这一点 - 没有神奇的方法可以一次选择所有用户,或者一次更新所有用户。

更新#2:
以下是您可以查看的一些资源:

和关于这个主题的终极书:

Joe Kaplan / Ryan Dunn: The .NET Developer's Guide to Directory Services Programming

alt text http://ecx.images-amazon.com/images/I/512V652XBSL._SL500_AA300_.jpg