Univention-directory-reports

Hallo,
ich versuch auf der Konsole einen Directory-report zu erstellen. Im Webinterface klappt das wunderbar.

univention-directory-reports -m users/user -r "Standard Report" -u Wieser -p PASSWORT dc=people,dc=DUNICHT,dc=sol

Beim LDAP search string habe ich alle mir logischen Möglichkeiten ausprobiert. Ohne Erfolg.

Traceback (most recent call last):
  File "/usr/bin/univention-directory-reports", line 195, in <module>
    main()
  File "/usr/bin/univention-directory-reports", line 157, in main
    base = options.base, start_tls = 0 )
  File "/usr/lib/pymodules/python2.6/univention/directory/reports/admin.py", line 253, in connect
    _admin = AdminConnection( userdn, password, host, base, start_tls, access )
  File "/usr/lib/pymodules/python2.6/univention/directory/reports/admin.py", line 103, in __init__
    binddn = userdn, bindpw = password, start_tls = start_tls )
  File "/usr/lib/pymodules/python2.6/univention/admin/uldap.py", line 254, in __init__
    self.lo=univention.uldap.access(host, port, base, binddn, bindpw, start_tls, follow_referral=follow_referral)
  File "/usr/lib/pymodules/python2.6/univention/uldap.py", line 169, in __init__
    self.__open(ca_certfile)
  File "/usr/lib/pymodules/python2.6/univention/uldap.py", line 207, in __open
    self.lo.simple_bind_s(self.binddn, self.__encode_pwd(self.bindpw))
  File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 207, in simple_bind_s
    return self.result(msgid,all=1,timeout=self.timeout)
  File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 422, in result
    res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
  File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 426, in result2
    res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,timeout)
  File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 432, in result3
    ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout)
  File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 96, in _ldap_call
    result = func(*args,**kwargs)
ldap.INVALID_DN_SYNTAX: {'info': 'invalid DN', 'desc': 'Invalid DN syntax'}

Hat jemand eine Idee was da falsch läuft. Im Voraus schon mal vielen Dank.

Hallo,

univention-directory-reports erwartet eine Listen von DNs für die eine Report erstellt werden soll, es kann kein Container angegeben werden.

Mit freundlichen Grüßen
Janis Meybohm

Viele Dank für ihre Antwort. Können Sie mir ein Beispiel geben. MIT DNs würde ich folgendes assozieren.
Mit

uid=Wieser,ou=People,dc=people,dc=SSSS,dc=sol

funktioniert es ebenfalls nicht - gleiche Fehlermeldung

Hallo,

Voraussetzung ist dass der DN, also das angegebene Objekt, auch existiert (das kann ich in Ihrem Fall natürlich nicht verifizieren). Außerdem muss der Benutzer mit dem die Authentifikation erfolgt ebenfalls in Form des DN angegeben werden.
Um z.B. einen Report über alle Benutzer zu generieren generieren, könnten Sie den folgenden Befehl verwenden:

IFS=$'\n'; univention-directory-reports -m users/user -r "Standard Report" -u uid=Wieser,ou=People,dc=people,dc=SSSS,dc=sol -p PASSWORT $(udm users/user list | sed -ne 's/^DN: \(.*\)$/"\1"/p')

Mit freundlichen Grüßen
Janis Meybohm

Hallo,
super vielen Dank. Es hat geklappt. Allerdings habe ich

sed -ne ‘s/^DN: (.*)$/"\1"/p’)

durch

sed -ne ‘s/^DN: (.*)$/\1/p’)

ersetzen müssen.

Irgendwie lauf ich vor die Wand :slightly_frowning_face:
Ich bekomme nicht einmal einen CSV report hin

Blockquote

root@DC01:/etc/univention/directory/reports/default/de_DE# univention-directory-reports -m users/user CSV
warning: dn ‘CSV’ not found, skipped.
The PDF Document has been created: /tmp/univention-directory-reports-lU2Rvdrml.pdf
root@DC01:/etc/univention/directory/reports/default/de_DE# univention-directory-reports -m users/user -r"CSV Report"
Usage: univention-directory-reports -m [options] dn1 dn2 …

Error: no DNs specified on command line
root@DC01:/etc/univention/directory/reports/default/de_DE# univention-directory-reports -m users/user -l
Reports for module: users/user

  • CSV Report
  • PDF Document

Blockquote

Eigentlich steht in der Fehlermeldung ja was nicht stimmt. :slight_smile: Es wird ein DN erwartet.
Das hier funktioniert bei mir zum Beispiel:

univention-directory-reports -m users/user uid=roland,cn=users,dc=roland,dc=intranet

LG

Vielen Dank für die fixe Antwort dann muss ich wohl weitersuchen, ich suche nach einer Möglichkeit alle user zu reporten abzuziehen und in ein *.csv format zu bringen
Allerdings muss ich auch auf OU filtern können
Vermutlich muss ich da dann doch eher bei LDAP ansetzen

Hmm, das geht sicher - ist aber schon sehr lange her, dass ich das gebraucht hätte.
Lt. Handbuch sollte da ja auch über die UMC machbar sein, da taucht die Option bei mir jedoch nicht auf.

So macht man jedenfalls einen CSV-Report für einen einzelnen Benutzer:
univention-directory-reports -m users/user -r “CSV Report” uid=tamara,ou=benutzer,dc=roland,dc=intranet

Da mir für diesen Report laufzeiten egal sind nehme ich einfach ein bash script das mir erst ein gefilterte lite ausgiebt und fütter dann das report tool damit
das geht bestimmt viel eleganter aber wenn es den Zweck erfüllt…

univention-ldapsearch | grep ^dn:\ uid | grep ou=ORG | sed 's/^....//'  > userlist.txt
root@DC01:~# univention-directory-reports -m users/user -r "CSV Report" `cat userlist.txt`

Wenn man nach Ablauf des scripts noch ein tr '\t ' ';' < univention-directory-reports-xxxx.csv laufen lässt lassen sich die daten in Excel gut importieren

Hallo allerseits,

hier ein “elegantes” Beispiel zum Erstellen eines Reports für alle Mitglieder der DEMOSCHOOL:

eval $(ucr shell)
univention-directory-reports -m users/user -r "CSV Report" $(udm users/user list --position ou=DEMOSCHOOL,${ldap_base} | sed -ne 's/^DN: //p')
2 Likes
Mastodon