Active Directory-Scripting

Benutzerkonten modifizieren und löschen

Um Benutzerkonten verändern zu können, ist es zunächst erforderlich, dass man Informationen auslesen kann. Listing 5 zeigt ein Beispiel für ein Skript, das Informationen liest.

Listing 5: Das Auslesen von Informationen über einen Benutzer
ouObject = ",ou=Testbenutzer,dc=windowstest,dc=intra"
set userObject = GetObject("LDAP://" & "cn=Testbenutzer6" & ouObject)
userObject.GetInfo
userSamName = userObject.Get("sAMAccountName")
userDescription = userObject.Get("description")
WScript.Echo userSamName
WScript.Echo userDescription

In diesem Fall wird zunächst eine Variable definiert, die die OU enthält, die damit nicht jedes Mal vollständig ausgeschrieben werden muss. Diese Variable wird beim Zugriff auf das Objekt angegeben. Anschließend wird die Methode Get-Info auf das Objekt angewendet. Diese Methode ist das Gegenstück zu SetInfo und öffnet ein Objekt zum Lesen. Entsprechend muss sie vor den späteren Get-Anweisungen stehen. Die Attributwerte werden anschließend mit Get ausgelesen und Variablen zugeordnet, bevor zum Schluss die
Ausgabe der entsprechenden Informationen erfolgt.

Änderungen sind nun sehr einfach durchzuführen, weil sie genau wie beim Erstellen von Benutzerkonten mit den Methoden Put und SetInfo erfolgen. Es ist also nicht zwingend erforderlich, zunächst Informationen auszulesen. Das Auslesen ist nur erforderlich, wenn zunächst eine Abfrage erfolgen soll, über die entschieden wird, ob eine Änderung erforderlich ist.

Ein Sonderfall ist das Ändern von Kennwörtern, das nicht einfach mit Put erfolgen kann. Ein Auslesen von Kennwörtern über Get ist ohnehin nicht möglich. Um Kennwörter zurückzusetzen kann, wie oben beschrieben, die Methode Set-Password verwendet werden.

Um ein Kennwort zu ändern, wird dagegen mit ChangePassword gearbeitet. Bei dieser Methode müssen als Parameter das alte und das neue Kennwort angegeben werden, also beispielsweise

userObject.ChangePassword "AltesKennwort", "Neues-Kennwort"

Diese Methode ist vor allem bei Skripts interessant, die in irgendeiner Form vom Endbenutzer ausgeführt werden können und bei denen das alte und das neue Kennwort erfragt werden.

Auf Basis der vorgestellten Methoden können bereits recht umfassende Lösungen entwickelt werden, da damit der Zugriff auf alle Objekte und fast alle Attribute im Active Directory möglich ist. Die wichtigste Ausnahme davon sind mehrwertige Attribute.

Zusammen mit den in Heft 10/2005 von Expert’s inside Windows NT/2000 erläuterten Grundlagen zum Scripting können so mit überschaubarem Aufwand Automatisierungslösungen rund um das Active Directory-Management entwickelt werden – soweit man weiß, welche Objekte und Attribute erstellt, modifiziert oder gelöscht werden müssen. Und dabei hilft die umfassende Dokumentation in der MSDN-Library.

Wie geht es weiter?

Im dritten Teil der Serie wird auf das Management von Gruppen eingegangen. Dazu gehören die Erstellung
von Gruppen und die Zuordnung von Benutzern zu Gruppen. Außerdem wird gezeigt, wie Listen von Zuordnungen zwischen Benutzern und Gruppen erzeugt werden können. Ein weiterer wichtiger Punkt sind Skripts, mit denen Systemumgebungen für Batches mit sehr vielen Benutzerkonten und Gruppen schnell erzeugt werden können. Das ist beispielsweise für Performance-Tests wichtig, bei denen mehrere hundert
oder tausend Benutzer benötigt werden. Außerdem wird auf den Umgang mit mehrwertigen Attributen eingegangen, die als Array ausgelesen werden müssen.