VB.NET - 基于Excel工作表在AD中更新用户

时间:2011-05-10 10:35:27

标签: vb.net excel active-directory

好的,所以我有这个代码从某个OU中检索AD用户的属性并将信息加载到Excel工作表中。这是应该的。但是,我想知道如何更改我的代码以便能够编辑Excel工作表并使用它来更新它来自的用户。

我知道这是VB.NET,我知道有很多方法可以使用.NET框架连接到AD。我计划在以后使用这个包装器http://www.codeproject.com/KB/system/active_directory_in_vbnet.aspx。但就目前而言,我只想让它发挥作用。

这是我现在的代码。我知道它可能很草率,本来可以做得更好。只要完成第一个工具版本,我就会使用上面提到的包装器。

    Public Sub ExportADUsers()

            Dim i As Integer

            Dim strfilter, strAttributes, strScope
            strfilter = "(&(objectCategory=Person)(objectClass=User))"

            strAttributes = "givenName, sn, displayName, mail," & _
            "initials, description, company, title, department," & _
            "location, telephoneNumber, mobile," & _
            "physicalDeliveryOfficeName, streetAddress," & _
            "l, st, postalCode, c, info"

            strScope = "subtree"

            Dim cn, cmd, rs
            cn = CreateObject("ADODB.Connection")
            cmd = CreateObject("ADODB.Command")

            cn.open("Provider=ADsDSOObject;")
            cmd.ActiveConnection = cn
            cmd.commandtext = "LDAP://OU=MyOU,OU=Groups,DC=myDomain,DC=local>;" & strfilter & ";" & strAttributes & ";" & strScope
            rs = cmd.EXECUTE

            Dim objExcel, objWB, objSheet

            objExcel = CreateObject("Excel.Application")
            objWB = objExcel.Workbooks.Add
            objSheet = objWB.Worksheets(1)

            For i = 0 To rs.Fields.Count - 1
                objSheet.Cells(1, i + 1).Value = rs.Fields(i).Name
                objSheet.Cells(1, i + 1).Font.Bold = True
            Next

            objSheet.Range("A2").CopyFromRecordset(rs)
            objSheet.Cells.EntireColumn.AutoFit()
            objSheet.Cells.EntireRow.AutoFit()
            objSheet.SaveAs("C:\Sheet.xlsx")

            'Clean up
            rs.Close()
            cn.Close()
            objSheet = Nothing
            objExcel.Quit()
            objExcel = Nothing

End Sub

那么,我可以使用此代码作为相反的方法吗?实际上使用生成的相同Excel工作表更新同一组用户?

编辑:编辑代码并删除不必要的位

0 个答案:

没有答案