Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Export aus AD mit LDIFDE oder CSVDE (Nur bestimmte Objekte)

Frage Microsoft Windows Server

Mitglied: Dynarius

Dynarius (Level 1) - Jetzt verbinden

13.04.2011, aktualisiert 13:31 Uhr, 7203 Aufrufe, 13 Kommentare

Hallo Community,

Mein Vorhaben:

Ich benötige einen Export aus unserem AD aus mehreren OU`s, da wir in verschiedenen OU`s jeweils die selbe OU "User" verschachtelt haben. Hat den Hintergrund da wir mehrere Niederlassungen haben und wir die User den Niederlassungen zuweisen.
So ich benötige nun aus allen OU`s worin sich die OU "User" befindet, derzeit sind es 3 OU`s worin dies der Fall ist, einen Export in eine .txt Datei worin sich der loginname "SAMAccountname" und die Telefonnumer "TelephoneNumber" befindet. Ich benötige von der Telefonnummer aber nur die letzten 4 Zeichen, sprich die Nebenstelle. So das das wie folgt aussehen müsste.

Beispiel:
mustermannhans,9835

Ich habe es mit CSVDE versucht und habe schon rausgefunden das er schön mit "," trennt so wie ich es auch benötige, jedoch gibt er mir zu dem noch den kompletten DN aus was ich nicht benötige.

Folgenden Befehl habe ich dafür benutzt für eine OU jetzt mal:
csvde -d "OU=Users,OU=test,DC=testsubdomain,DC=testdomain,DC=de" -f "C:\export.txt" -l "telephoneNumber,SamAccountName" -s meindomänencontroller -t 389

Danach müsste noch die DN und die Telefonnummer bis auf die letzten 4 Zeichen entfernt werden.
Wenn jemand eine Idee hat wie das mit Perl oder in einer Batch lösbar wäre ich für eine Antwort sehr dankbar.
Mitglied: eSkapo
13.04.2011 um 12:01 Uhr
hi,
vielleicht kann ich dir helfen, ich hab so etwas ähnliches bereits gemacht. Also ich habe mit ldifde einige User aus einer OU exportiert.. Dazu verwende ich folgenden Code:

ldifde -f "C:\Export in EvenUsers.txt" -d "ou=Even_Users,dc=test,dc=domain" -r "(objectCategory=person)" -l "cn,Company"

wenn du das mit dem kürzen der Telefonnummer machen willst hab ich vielleicht einen Ansatz für dich:

For /L %%b In (1,2,100) do (

set var3=000%%b
set var3=!var3:~-4!
....

Diese For-Schleife zählt bis 100 erzeugt also in meinem Fall 100 User. Die sollen bei mir nen bestimmten Namen haben nähmlich User0001 bis hin zu User0100. Ich schreibe mit derm ersten set var3 nun immer drei Nullen vor die hochgezählte Zahl aus der Schleife. Also zB 000+1 oder 000+100.. Mit dem zweiten set var wird dafür gesorgt, dass nur die letzten vier Stellen ausgegeben werden also zb User0001 oder User0100..
VIelleicht kannst du das ja anwenden...

Kannst ja mal posten ob dir was helfen konnte von dem

LG

eSkapo
Bitte warten ..
Mitglied: Dynarius
13.04.2011 um 14:18 Uhr
Danke für die Mühe vorab schonmal. Hört sich auch gut an, das Problem was ich an der Stelle habe, ist ja das ich nur aus dem Feld Telefonnummer die letzten 4 Zeichen brauche und nicht aus dem kompletten Export.
Da sich die Namen ja in unterschiedlicher Länge befinden.
Ein Beispiel aus meinem Export ist folgender eine Zeile:

"CN=Mustermann.Hans,OU=Users,OU=ersteOU,DC=Subdomain,DC=Domain,DC=de",+49 (89) 12345 6756,mustermannha

eig. benötige ich nur: "6756,mustermannha"

Das wäre mein Ziel an der Stelle.
Bitte warten ..
Mitglied: eSkapo
13.04.2011 um 14:30 Uhr
also um den export generell schonmal zu kürzen kannst du über -l die attribute angeben die du ausgegeben haben möchtest eben zb die telefonnummer und mustermannha..
also der befehl müsste dann in etwa so aussehen:

ldifde -f "C:\Export.txt" -d "ou=Users,OU=ersteOU,dc=Subdomain,dc=Domain,dc=de" -r "(objectCategory=person)" -l "telephonenumber,displayName"

hinter -l muss Du dann gucken weiß nicht genau wie die Attribute geschrieben werden..

ich probiere das auch mal..

lg

eSkapo
Bitte warten ..
Mitglied: Dynarius
13.04.2011 um 14:32 Uhr
Das habe ich schon gemacht. Hier ich poste nochmal den Befehl mit csvde:

csvde -d "OU=Users,OU=test,DC=testsubdomain,DC=testdomain,DC=de" -f "C:\export.txt" -l "telephoneNumber,SamAccountName" -s meindomänencontroller -t 389

da habe ich "telephoneNumber" und "SAMAccountName" stehen.

lg
Bitte warten ..
Mitglied: eSkapo
13.04.2011 um 14:36 Uhr
okay und jetzt fehlt dir noch das mit dem kürzen also das nur die letzten vier stellen der telephonnummer ausgegeben werden oder was ?

lg

eSkapo
Bitte warten ..
Mitglied: Dynarius
13.04.2011 um 14:41 Uhr
genau das ist.
Weil wir im AD natürlich immer neue Mitarbeiter bekommen wird das dann als geplanter Task eingestellt der einmal am Tag läuft und die .txt datei dann neu schreibt mit den neuen Mitarbeitern.

lg
Dynarius
Bitte warten ..
Mitglied: eSkapo
13.04.2011 um 14:45 Uhr
puh..

ich weiß nicht es ist vielleicht möglich hinter -l das irgendwie zu koppeln könnte ich mir vorstellen..

aber leider habe ich momentan keinen konkreten Lösungsvorschlag..

wenn ich was weiß, meld ich mich...

lg

eSkapo
Bitte warten ..
Mitglied: Dynarius
13.04.2011 um 14:53 Uhr
Ok, das wäre echt super. Vielen dank nochmal für die Mühe.

lg
Dynarius
Bitte warten ..
Mitglied: 60730
13.04.2011 um 16:32 Uhr
moinsen..

  • also das ausgeben der Info in einen Text hast du ja schon ..
  • Jetzt müßte es nur einen Weg geben den Inhalt von einem Text an einer bestimmten Stelle abzukürzen.
  • Ich würde fast vermuten, das könnte man auch suchen und ersetzen nennen.
  • In kombination mit Batch, sollte das mehr Treffer bringen, als Biber jemals Rothaarige Praktikantinnen verschleissen kann.

Gruß
Bitte warten ..
Mitglied: Dynarius
14.04.2011 um 13:39 Uhr
Die Sache mit der Batch ist denke ich auch die einzige Lösung jedoch habe ich bis jetzt noch keinen Ansatz wie ich eine individuelle Zeile immer um eine individuelle anzahl an Zeichen kürzen kann.
Bitte warten ..
Mitglied: 60730
14.04.2011 um 14:20 Uhr
Zitat von Dynarius:
Die Sache mit der Batch ist denke ich auch die einzige Lösung jedoch habe ich bis jetzt noch keinen Ansatz wie ich eine
individuelle Zeile immer um eine individuelle anzahl an Zeichen kürzen kann.

  • ausnahmsweise schreibe ich dir eine Batch - das mache ich sonst nie...
und bitte keine Nachfragen - das erklärt sich von alleine und ist so 1.024* schon abgehandelt....
Außerdem ist das zu Export aus AD mit LDIFDE oder CSVDE (Nur bestimmte Objekte) leicht OT
@ beide B aus dem B Bereich - jaaa ich weiß da ist "zuviel" drin, aber kürzen kann er nach studium von Befehl /? ja selber....

01.
for /F "tokens=1,2 delims=," %%a in (C:\export.txt) do call :hansdampfguckindieluft %%a %%b 
02.
 
03.
goto :eof 
04.
 
05.
:hansdampfguckindieluft 
06.
	set name=%1 
07.
	set telefon=%2 
08.
	set shorty=%telefon:~-4% 
09.
	echo [%1] [%2] wird zu [%name%] [%shorty%] 
10.
goto :eof 
11.
pause
Kriech ich gezz auch ne rothaarige Braktikantin?

gruß
Bitte warten ..
Mitglied: Dynarius
14.04.2011 um 17:03 Uhr
Bing, geschafft. Danke für eure Hilfe =)
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Userverwaltung
gelöst AD Passwort um bestimmte Uhrzeit setzen (6)

Frage von agnostiker zum Thema Windows Userverwaltung ...

Windows Userverwaltung
PS Skript AD Objekte auslesen (1)

Frage von m.reeger zum Thema Windows Userverwaltung ...

Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (1)

Frage von Gien-app zum Thema Windows Server ...

Windows Server
AD DC Failover zeitintensiv und DHCP repliziert nicht (2)

Frage von JiggyLee zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...