Source Code VB 6 zum Auslesen eines Active Directory und Erstellung einer Userdatei im CSV Format
Ausgegeben werden:
- SAMAccountname
- Lastname
- Givenname
- TelephoneNumber
- location
- street
- LDAP-Pfad
- Department
- HomeDirectory
- LogonScript
- IsAccountLocked
- userWorkstations
Dim objAs, objUser, sUser, oDomain, oComputer
Dim ListeOU(5000)
Dim strLDAPQuery
Dim objCON
Dim Anzahl, Bereich
AnzahlOU = 1
Kontrollfeld.Text = ""
Bereich = OU.Text
If Bereich = "" Then
Exit Sub
End If
Open "C:\" & Bereich & ".csv" For Output As #1
On Error Resume Next
Kontrollfeld.Text = ""
Set objCON = CreateObject("ADODB.Connection")
CONSTRING = "Provider=ADSDSOObject"
objCON.Open CONSTRING
Dim dc(10)
tmp = Domain.Text
i = 1
While (InStr(1, tmp, ".")) <> 0
laenge = Len(tmp)
punkt = InStr(1, tmp, ".")
dc(i) = Left(tmp, punkt - 1) & ","
rest = laenge - punkt
tmp = Right(tmp, rest)
i = i + 1
Wend
dc(i) = tmp
For K = 1 To i
DomSTR2 = DomSTR2 & "dc=" & dc(K)
Next K
DomSTR = Domain.Text & "/" & DomSTR2 & ">"
strLDAPQuery = " 0 Then
AnmeldeWorkstations = oUser.Get("userWorkstations")
Else
AnmeldeWorkstations = " "
End If
ADSPfad = oUser.ADsPath
If oUser.Get("TelephoneNumber") = "" Then
Telefon = " "
End If
If oUser.Get("mail") = "" Then
mail = " " Else
mail = oUser.Get("mail")
End If
If oUser.Department = "" Then
dep = "?"
Else
dep = oUser.Department
End If
If oUser.Get("l") = "" Then l = " " Else l = oUser.Get("l")
If oUser.Get("streetAddress") = "" Then
street = " " Else street = oUser.Get("streetAddress")
End If
Kontrollfeld.Text = Kontrollfeld.Text & "*"
Kontrollfeld.Refresh
Print #1,
Chr(34) & oUser.Get("SAMAccountname")
& Chr(34) & ";" & Chr(34) & nachname
& Chr(34) & ";" & Chr(34) & Vorname
& Chr(34) & ";" & Chr(34) & Telefon
& Chr(34) & ";" & Chr(34) & mail
& Chr(34) & ";" & Chr(34) & l
& Chr(34) & ";" & Chr(34) & street
& Chr(34) & ";" & Chr(34) & ADSPfad
& Chr(34) & ";" & Chr(34) & dep
& Chr(34) & ";" & Chr(34) & oUser.HomeDirectory
& Chr(34) & ";" & Chr(34) & oUser.LoginScript
& Chr(34) & ";" & Chr(34) & oUser.IsAccountLocked
& Chr(34) & ";" & Chr(34) & AnmeldeWorkstations
& Chr(34)
Next
End If
End If
AnzahlOU = AnzahlOU + 1
rs.MoveNext
Wend
Close #1