ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Extract Data From Active Directory (https://www.excelbanter.com/excel-programming/371293-extract-data-active-directory.html)

Adrian

Extract Data From Active Directory
 
Hi

I have a pretty fair idea how to write VBS scripts . I am trying to put most
of my scripts into a excel shreadsheet , so I can run them by the click of a
button and they can be displayed as needed. So For example if I want to list
all the domain controllers in a region, I select the region click a button
and then it populates a worksheet Is this possible ? If so where can I find
some docs on how to go about doing this ?

Thanks

Jake Marx[_3_]

Extract Data From Active Directory
 
Hi Adrian,

Are you asking how to enumerate the domain controllers, or how to take the
info you get back and put it into Excel? If the former:

http://groups.google.com/group/micro...c346e0678dce46

Instead of writing the results to the screen, you would iterate through the
cells of a worksheet and write them there. Here's a quick-and-dirty example
of how you could do that:

Sub EnumerateDCs()
Dim l As Long
Dim oRootDSE As Object
Dim strConfigNC As String
Dim oConnection As Object
Dim oCmd As Object
Dim strQuery As String
Dim oRecordset As Object
Dim oParent As Object

' Get the Configuration Naming Context
Set oRootDSE = GetObject("LDAP://RootDSE")
strConfigNC = oRootDSE.Get("configurationNamingContext")


' Set up the oConnectionection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "ADs Provider"


' Build the query to find all Exchange ServeoRecordset
strQuery = "<LDAP://" & strConfigNC & ";" & _
"(objectClass=nTDSDSA);ADsPath;subtree"


Set oCmd = CreateObject("ADODB.Command")
oCmd.ActiveConnection = oConnection
oCmd.CommandText = strQuery
Set oRecordset = oCmd.Execute


' Iterate through the results
If oRecordset.EOF And oRecordset.Bof Then
MsgBox "No domain controllers found."
Else
While Not oRecordset.EOF
l = l + 1
Set oParent = GetObject(GetObject(oRecordset.Fields( _
"ADsPath")).Parent)
' Output the name of the server
Cells(l, 1).Value = oParent.cn
Cells(l, 2).Value = oParent.dNSHostName
oRecordset.MoveNext
Wend
End If
End Sub

To call this from a button, make sure the Visual Basic toolbar is visible,
then click the Control Toolbox. Add an ActiveX CommandButton to the
worksheet, then right-click and modify properties as needed (make sure you
set TakeFocusOnClick to False). Double-click the button, and you'll be
taken to the click event - that's where you'd call EnumerateDCs:

Private Sub cmdListDCs_Click()
EnumerateDCs
End Sub

--
Regards,

Jake Marx
www.longhead.com


[please keep replies in the newsgroup - email address unmonitored]

Adrian wrote:
Hi

I have a pretty fair idea how to write VBS scripts . I am trying to
put most of my scripts into a excel shreadsheet , so I can run them
by the click of a button and they can be displayed as needed. So For
example if I want to list all the domain controllers in a region, I
select the region click a button and then it populates a worksheet Is
this possible ? If so where can I find some docs on how to go about
doing this ?

Thanks





All times are GMT +1. The time now is 01:30 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com