Benutzer im Active Directory erzeugen
Ein Active Directory Benutzer ist ein Benutzerkonto, das in einer Windows-basierten Netzwerkumgebung über das Active Directory (AD) erstellt und verwaltet wird. Dieses Konto ermöglicht es einem Benutzer, sich an Computern im Netzwerk anzumelden und Ressourcen wie Dateien und Drucker zu nutzen. Das Active Directory speichert Informationen über den Benutzer, einschließlich seines Namens, Passworts und Zugriffsrechten, und ermöglicht die zentrale Verwaltung von Benutzerkonten und deren Berechtigungen in einer Organisation.
Ihr wollt nicht immer wieder die Active Directory (AD)-Benutzer MMC öffnen, herum klicken, Tippfehler machen und zum x-ten Mal ein neues Benutzerkonto erstellen? Wenn dies der Fall ist, ist es Zeit das Hinzufügen eines Benutzers zu automatisieren.
Wie meistens existieren hierfür mehrere Wege, die alle zum Ziel führen.
Der Erste ist, einen Benutzer mittels Script anzulegen und die benötigten Attribute mitzugeben.
Ein Zweiter Weg ist, einen vorhandenen Benutzer zu kopieren. In dem Fall ist ein Referenzobjekt erforderlich. Die dritte Möglichkeit besteht darin mittels einer csv-Liste die Objekte und Eigenschaften zu übermitteln.
Für welchen Weg ihr euch entscheidet müsst ihr selbst festlegen.
Code
Hier ist der zentrale Source Code zu der Prozedur User anlegen.
Anpassen müsst ihr nur Domain, und natürlich eine Userliste bereitstellen.
'User anlegen in der root der Domain
Private Sub mnu_User_Create_Click()
Dim objAs, sUser, sOU, sGroup
Dim Container As IADsContainer
Dim user As IADsUser
Dim objUser
'Variablen belegen
sLastName = cNachname.Text
sGivenName = cVorname.Text
sFullname = sLastName & " " & sGivenName
sDescription = "User"
Set adsi = GetObject("LDAP:")
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
Set objAs = adsi.OpenDSObject("LDAP://" &_
DomSTR, admin.Text, adminpwd.Text, 1)
Set objUser = objAs.Create("User", "CN=" & sFullname)
objUser.FullName = sFullname
objUser.Description = sDescription
objUser.LastName = sLastName
objUser.GivenName = sGivenName
objUser.Put "company", "Company"
objUser.Put "samAccountname", LCase(cAccountname)
objUser.Put "UserPrincipalName",_
LCase(cAccountname) & "@" & Domain
objUser.SetInfo
Kontrollfeld.Text = Err.Number & " ; " & Err.Description
Err.Clear
Set user = adsi.OpenDSObject("LDAP://" &_
Domain & "/" & "CN=" & sFullname & "," &_
DomSTR2, admin.Text, adminpwd.Text, 1)
Set Container = GetObject(user.Parent)
user.AccountDisabled = False
user.SetPassword (cpassword.Text)
user.SetInfo
If Err.Number = 0 Then cerror =_
"User erfolgreich angelegt" Else cerror =_
Err.Number & " ; " & Err.Description
Kontrollfeld.Text = cerror
Err.Clear
End Sub
Dieses Scriptstück ist inzwischen etwas in die Jahre gekommen.
Inzwischen verwende ich Powershell zur Lösung derartiger Aufgaben. Mit New-ADUser
erreicht ihr hier einen besseren Code bei der Umsetzung. Hier nur ein Beispiel.
New-ADUser -Name "h.muster" -OtherAttributes @{'title'="your title";'mail'="h.muster@yourdomain.de"}
Es ist auch sehr einfach alle bekannten Attribute bei der Anlage mitzugeben wie Passwort, Standort, Organisation, Homelaufwerk, Gültigkeitszeitraum, Telefondaten, Stadt usw. Toll daran ist, ihr könnt das mit einem einzigen Powershell Befehl umsetzen.
Vorrausetzungen:
- Windows PowerShell 5.1 auf eurem Rechner muss vorhanden sein.
- Remote Server Administration Tools (RSAT). Dieses Paket installiert das Active Directory PowerShell Modul welches das
New-AdUser
cmdlet beinhaltet. - Ihr müsst an einem Rechner angemeldet sein, der Mitglied der Domain ist in der ihr die User anlegen wollt.
- Der benutzte AD Account muss über die Berechtigungen verfügen Bentzer anzulegen.
Diesen Code verwendet ihr auf eigene Gefahr. Voraussetzung sind entsprechende Berechtigungen auf die AD Struktur. Ich übernehme keine Gewährleistung.
Michael Leidig