Active Directory-Scripting

Um ein Bit zu deaktivieren, verwenden Sie generell die XOR-Operation. Für die Aktivierung wird dagegen mit der OR-Operation gearbeitet. Das Listing 4 zeigt ein Beispiel, in dem zusätzlich zum Setzen des Kennworts auch noch die Änderung des Kennworts bei der nächsten Anmeldung erzwungen wird.

Listing 4: Erzwingen einer Kennwortänderung bei der nächsten
Anmeldung
Const ADS_UF_ACCOUNTDISABLE = 2
set ouObject = GetObject("LDAP://ou=Testbenutzer,dc=windowstest,dc=intra")
set userObject = ouObject.Create("user","cn=Testbenutzer6")
userObject.Put "sAMAccountName","Testbenutzer6"
userObject.Put "description", "Sechster Testbenutzer"
userObject.SetInfo
WScript.Echo "Benutzer wurde angelegt"
intUAC = userObject.Get("userAccountControl")
If intUAC AND ADS_UF_ACCOUNTDISABLE Then
userObject.Put "userAccountControl", intUAC XOR ADS_UF_ACCOUNTDISABLE
userObject.SetInfo
End If
WScript.Echo "Benutzer wurde aktiviert"
userObject.SetPassword "!1ngh24$sDe"
userObject.Put "pwdLastSet", 0
userObject.SetInfo

Bild 3: Die meisten Attribute sind zunächst nicht mit Werten belegt.
Bild 3: Die meisten Attribute sind zunächst nicht mit Werten belegt.

Wenn man ein so erstelltes Benutzerkonto öffnet, enthält es aber immer noch recht wenige Informationen
(Bild 3). Das liegt daran, dass die meisten Attribute noch nicht mit Werten belegt wurden. Die Vorgehensweise dafür ist im Grundsatz sehr einfach:

  • Mit der Methode Put wird ein Wert für ein Attribut festgelegt.

  • Mit der Methode SetInfo wird die Änderung geschrieben.

Dabei können natürlich auch mehrere Werte angepasst werden, bevor die Änderung einmalig in das Active Directory geschrieben wird. Das ist sogar unbedingt sinnvoll, um die Last zu minimieren. Insofern ist auch das Listing 4 kein optimales Beispiel, weil hier mehrfach Änderungen geschrieben werden.

Die Herausforderung liegt darin, die Attribute zu ermitteln, die mit Werten belegt werden sollen. Dafür gibt es zwei wichtige Hilfsmittel. Eines ist die bereits erwähnte Dokumentation zu den Attributen, die im Zusammenhang mit userAccountControl schon angesprochen wurde. Das andere ist das Verwaltungsprogramm Active Directory-Schema. Es muss allerdings zunächst aktiviert werden, damit es über die MMC ausgeführt werden kann. Nach der Ausführung von

regsvr32 schmmgmt.dll


kann das Snap-In für das Schema-Management in der MMC eingebunden werden, in dem die Struktur des Schemas betrachtet werden kann. Um alle Attribute von Benutzern zu ermitteln, müssen Sie auf das Objekt user zugreifen. Im rechten Teil des Bildschirms wird dadurch die Liste der Attribute angezeigt (Bild 4). Viele Attribute sind selbsterklärend. Bei anderen empfiehlt sich ein zusätzlicher Blick in die Dokumentation.

Bild 4: Die Liste der Attribute der Objektklasse user im Active Directory.
Bild 4: Die Liste der Attribute der Objektklasse user im Active Directory.


Mit diesen Informationen lassen sich Benutzerkonten mit Attributen in beliebigem Umfang konfigurieren.