Ik probeer een export te maken van onze AD met hierin account,email,extensionattribute1.
Dit gaat prima, de enige 2 probleempjes zijn dat niet alleen users meegenomen worden, maar ook computers.
Het andere is, dat er om bepaalde reden users van sommige OU's niet meegenomen worden.
Hij export alleen de OU's die het diepst in de mappenstructuur liggen. Als een OU nog een OU bevat, neemt ie de users in de bovenliggende OU niet mee.
Ik heb het script slechts gekopieerd en aangepast op bepaalde punten, maar heb geen/weinig kaas gegeten van VB.
Hieronder het script:
dim strOUName
Dim OutPutFile
Dim FileSystem
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set OutPutFile = FileSystem.CreateTextFile("gebruikers.csv", True)
Set objDomain = GetObject("LDAP://ou=afdelingen,dc=local,dc=xxxx,dc=nl")
Call EnumOUs(objDomain, "")
OutPutFile.Close
Set FileSystem = Nothing
Set oContainer = Nothing
WScript.Echo "Klaar!"
WScript.Quit(0)
Sub EnumOUs(objParent, strOffset)
OutPutFile.WriteLine ""
OutPutFile.WriteLine strOffset & objParent.Name
OutPutFile.WriteLine ""
strOUName = objParent.DistinguishedName
objParent.Filter = Array("organizationalUnit")
For Each objChild In objParent
Call EnumOUs(objChild, strOffset)
call getUser()
Next
End Sub
sub getUser()
On Error Resume Next
Set objOU = GetObject("LDAP://" & strOUName & "")
ObjOU.Filter= Array("user")
For Each objUser in objOU
OutPutFile.WriteLine objUser.sAMAccountName & "," & objUser.mail & "," & objUser.extensionAttribute1
Next
end sub
Dit gaat prima, de enige 2 probleempjes zijn dat niet alleen users meegenomen worden, maar ook computers.
Het andere is, dat er om bepaalde reden users van sommige OU's niet meegenomen worden.
Hij export alleen de OU's die het diepst in de mappenstructuur liggen. Als een OU nog een OU bevat, neemt ie de users in de bovenliggende OU niet mee.
Ik heb het script slechts gekopieerd en aangepast op bepaalde punten, maar heb geen/weinig kaas gegeten van VB.
Hieronder het script:
dim strOUName
Dim OutPutFile
Dim FileSystem
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set OutPutFile = FileSystem.CreateTextFile("gebruikers.csv", True)
Set objDomain = GetObject("LDAP://ou=afdelingen,dc=local,dc=xxxx,dc=nl")
Call EnumOUs(objDomain, "")
OutPutFile.Close
Set FileSystem = Nothing
Set oContainer = Nothing
WScript.Echo "Klaar!"
WScript.Quit(0)
Sub EnumOUs(objParent, strOffset)
OutPutFile.WriteLine ""
OutPutFile.WriteLine strOffset & objParent.Name
OutPutFile.WriteLine ""
strOUName = objParent.DistinguishedName
objParent.Filter = Array("organizationalUnit")
For Each objChild In objParent
Call EnumOUs(objChild, strOffset)
call getUser()
Next
End Sub
sub getUser()
On Error Resume Next
Set objOU = GetObject("LDAP://" & strOUName & "")
ObjOU.Filter= Array("user")
For Each objUser in objOU
OutPutFile.WriteLine objUser.sAMAccountName & "," & objUser.mail & "," & objUser.extensionAttribute1
Next
end sub