Das Active Directory speichert alle Informationen der bestehenden Objekte in der Datenbank NTDS.DIT. Im Laufe der Zeit kann es nötig sein,
dass Änderungen an diesen (sei es bei einzelnen oder mehreren) Objekten vorgenommen werden müssen.


Das Standard Datei-Format das in den LDAP Implementationen verwendet wird, nennt sich LDAP Data Interchange Format (LDIF) und wird in RFC 2849 beschrieben.
Das Tool mit dem sich Active Directory Objekte exportieren sowie importieren lassen, nennt sich LDAP Data Interchange Format Data Exchange,
kurz LDIFDE. Des Weiteren kann man einen Im- sowie Export mit CSVDE durchführen.


Mit LDIFDE, das neben CSVDE seit Windows 2000 im Serverbetriebssystem enthalten ist, kann man (mehrere) Objekte wie es Benutzer, Gruppen, Drucker, Server,
Organisationseinheiten, Domänen etc. darstellen, aus dem Active Directory exportieren, bearbeiten, löschen, importieren, Daten hinzufügen und sogar
das Schema erweitern. Ebenfalls ist es möglich, Benutzer und Gruppen aus dem Active Directory in andere Applikationen bzw. Dienste zu exportieren
oder diese LDAP-konform für einen Import in einen anderen Verzeichnisdienst bereitzustellen. Natürlich können LDIF-Daten auch aus anderen Verzeichnisdiensten,
ebenso in das Active Directory importiert werden.


LDIFDE ist ein Kommandozeilentool und befindet sich neben CSVDE (Comma Separated Value Data Exchange) im %windir%\system32 Verzeichnis.
Der Vorteil von LDIFDE gegenüber CSVDE ist, dass mit LIDIFDE die Bearbeitung bestehender Objekte möglich ist.


Wenn bei einem Export von Benutzer- bzw. Gruppen-Informationen ohne Filter gearbeitet wurde, kann die exportierte Datei so nicht erneut importiert werden.
Eine ungefilterte LDIF Export Datei exportiert alle Daten ohne zu prüfen, ob die Felder vom Active Directory geschützt sind und somit nur vom System gesetzt
werden können (system only).


 


Fehlermeldungen wie es die folgenden darstellen:


Die Änderung war aus Sicherheitsgründen nicht erlaubt.”


oder


Der Zugriff auf das Attribut ist unzulässig, da das Attribut Eigentum der Sicherheitskontenverwaltung (SAM) ist.“


zeigen das ganz deutlich.
Wenn diese Fehlermeldungen bei einem Import der LDF Datei erscheinen, ist es ein klarer Indiz dafür, dass in der Import-Datei Einträge vorhanden sind,
die nicht vom Administrator gesetzt werden können.
Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM)


 


Mit dem Schalter -o kann man die Attribute angeben, die beim Export unterdrückt werden sollen. Mit folgendem Befehl werden die Benutzerdaten in der
angegebenen Domäne exportiert bis auf die Informationen, die nicht importiert werden können (alles in einer Zeile):


LDIFDE -f Export.ldf -s <DC-Name> -d “dc=<Domäne>,dc=<TLD>” -p subtree -r “(&(objectCategory=person)(objectClass=User))” -o
“badPasswordTime,badPwdCount,lastLogoff,lastLogon,logonCount,memberOf,objectGUID,objectSid,primaryGroupID,pwdLastSet,sAMAccountType”


 


Da es aufwändig ist mit dem Schalter -o alle einzelnen Attribute anzugeben die nicht mit exportiert werden sollen, ist es ratsam,
gleich beim Export die Systemattribute mit einem einzigen Schalter wegzulassen. Dieses ist mit dem Schalter -m möglich.
Der Befehl würde wie folgt aussehen:


LDIFDE -m -f Export.ldf -s <DC-Name> -d “dc=<Domäne>,dc=<TLD>” -p subtree -r “(&(objectCategory=person)(objectClass=User))”



Anschließend kann beim Import die Fehlertoleranz mit dem Schalter -k aktiviert werden.


 


LDIFDE wird standardmäßig unter dem Benutzernamen ausgeführt, unter dem man es aufruft.
Möchte man stattdessen andere Benutzerinformationen beim ausführen von LDIFDE eingeben, so ist dies mit dem Schalter -a möglich.
Die Angabe wäre folgendermaßen: -a <DN des Benutzers> Kennwort
Wenn der Benutzer YD sich in dem Container Users befindet und die Domäne intra.dikmenoglu.de lauten würde, so wäre die Eingabe wie folgt:
-a CN=YD,CN=Users,DC=intra,DC=dikmenoglu,DC=de Kennwort


 


Das gleiche kann mit dem Schalter -b erreicht werden.
Allerdings ist dort die Angabe wie folgt: -b <
Benutzername Domäne> Kennwort
Wenn der Benutzername YD wäre und die Domäne intra.dikmenoglu.de lauten würde, so wäre die Eingabe in diesem Format:
-b yd intra.dikmenoglu.de Kennwort


 


Möchte man z.B. einen Export von Objekten, aus einer bestimmten Organisationseinheit (Organizational Unit, OU) tätigen,
so ist dafür der Schalter -d vorgesehen.


Beispiel: -d „OU=Technet,dc=intra,dc=dikmenoglu,dc=de“



Den Dateinamen der zur exportierenden bzw. importierenden LDF-Datei, gibt man mit dem Schalter -f an.



LDIFDE wird standardmäßig im Export Modus ausgeführt. Damit ein Import stattfinden kann, muss der Schalter -i angegeben werden.
Der Befehl, damit Benutzer von einer LDF-Datei importiert werden können, wäre folgendermaßen:


LDIFDE -i -f ExportBenutzer.ldf -s <DC-Name>



Sollen bei einem Export bloß bestimmte Attribute exportiert werden, so ist dafür der Schalter –L gedacht.
Wenn dieser Schalter nicht mit angegeben wird, werden alle Attribute exportiert.




Damit keine Binärwerte exportiert werden sollen, wird dies mit dem Schalter -n unterbunden.




Den Suchbereich gibt man mit dem Schalter -p an. Zur Verfügung stehen die drei Optionen: Base, OneLevel und Subtree.



Der Schalter -r definiert einen LDAP-Suchfilter bei einem Export.
Mit dem folgenden Befehl, exportiert man alle Computerobjekte (samt allen Attributen) von dem angegebenen Domänencontroller:


LDIFDE -f ExportComputer.ldf -s <DC-Name> -r “(objectclass=computer)”




Mit dem Schalter „-s DC-Name“ gibt man den Domänencontroller an, von dem der Export- bzw. Importvorgang getätigt werden soll.
Standardmäßig wird LDIFDE auf dem Domänencontroller ausgeführt, auf dem man es aufruft. Der Schalter -s sollte bei einem Export stets verwendet werden,
da ansonsten LDIFDE.exe sich mit dem am nähesten befindlichen Domänencontroller, auf dem der globale Katalog (Global Catalog, GC) aktiviert ist
verbindet und es dann, zu diesem Problem kommen kann:
Ldifde.exe may not export objects from Active Directory in Windows Server 2003 or Windows 2000



Weitere Schalter können auf dieser Seite eingesehen werden:
LDIFDE



Beim Import einer LDIF-Datei muss der Eintrag changeType gesetzt werden, damit beim Import klar ist, welchen Zweck dieser Import erfüllt.
Dieser kann die Werte „add, modify, moddn, modrdn oder delete“ enthalten.
Bei einem Export ist der changetype standardmäßig add.


 


Beispiele


 


Wenn alle Organisationseinheiten (OU) einer bestimmten Domäne exportiert werden sollen, so könnte der Befehl folgendermaßen aussehen:


LDIFDE -f Export-Ou.ldf -s <DC-Name> -d “dc=<Domäne>,dc=<TLD>” -p subtree -r “(objectCategory=organizationalUnit)” -l “cn,objectclass,ou”



 



Möchte man mit LDIFDE einen Benutzer einrichten, so ginge das auf folgende Art:



  • Zuerst gilt es mit einem Text-Editor (Notepad/Wordpad) eine Datei zu erstellen.
    Dabei ist es wichtig, dass die Datei die Endung LDF besitzt.


  • Als nächstes sollten folgende Daten eingetragen werden:
    DN: CN=Yusuf,CN=Users,DC=intra,DC=dikmenoglu,DC=de
    Changetype: Add
    CN: Yusuf Dikmenoglu
    ObjectClass: User
    SamAccountName: YD
    GivenName: Yusuf
    SN: Dikmenoglu


  • Nach dem speichern dieser Datei (ImportUser.ldf) ruft man folgenden Befehl für den Import auf: LDIFDE -i -f ImportUser.ldf -s <DC-Name>


Ein Benutzer kann mit LDIFDE auf folgende Weise entfernt werden (dazu wird der Distinguished Name (DN) vom Benutzerobjekt benötigt).
Der Benutzer „Yusuf“ befindet sich in der OU Technet und die Domäne lautet intra.dikmenoglu.de, so würde die Syntax wie folgt lauten:


DN: CN=Yusuf,OU=Technet,DC=intra,dc=dikmenoglu,dc=de
Changetype: Delete


Falls sich das Benutzerobjekt im Standard-Container Users befinden würde, so wäre der Befehl folgendermaßen:


DN: CN=Yusuf,CN=Users,DC=intra,dc=dikmenoglu,dc=de
Changetype: Delete




Weitere Informationen:
Using LDIFDE to import and export directory objects to Active Directory
LDIFDE – Export / Import data from Active Directory
LDIFDE – Export / Import data from Active Directory – LDIFDE commands
LDIFDE – Export / Import data from Active Directory – LDIFDE commands 2 (AN: 555636)
Leitfaden zum Importieren und Exportieren großer Datenmengen in Active Directory
How to set a user’s password with Ldifde

Comments are closed, but trackbacks and pingbacks are open.