好的,所以我有这个代码从某个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工作表更新同一组用户?
编辑:编辑代码并删除不必要的位