none
Powershell LDAP Lotus Domino RRS feed

  • Frage

  • Hallo,

    ich möchte aus einem Powershell Skript eine LDAP-Abfrage an unseren Lotus Domino Server absetzen. Per Suchmaschine habe ich folgendes Skript recherchiert. Beim Ausführen erhalte ich allerdings eine Fehlermeldung.

    Skript:

    $Root = new-object system.directoryservices.directoryEntry ("LDAP://told01")
    $Filter = "(&(objectclass=dominoPerson)(uid=sre))"
    $Attribute = "displayname","telephonenumber"
    # Compile search
    $Searcher = New-Object Directoryservices.DirectorySearcher($Root)
    $searcher.PageSize = 900
    $searcher.Filter = $Filter
    $searcher.Searchscope = [System.DirectoryServices.SearchScope]::Subtree
    $Attribute | foreach {[void]$searcher.PropertiesToLoad.Add($_)}
    # Execute search
    $result = $searcher.findAll()
    "Number of results: " + $result.Count
    $result

    Fehlermeldung:
    Ausnahme beim Aufrufen von "FindAll" mit 0 Argument(en):  "Es ist ein Protokollfehler aufgetreten.
    "
    Bei Zeile:12 Zeichen:28
    + $result = $searcher.findAll <<<< ()
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : DotNetMethodException
     
    Number of results:

    Vielen Dank im Voraus!

    PS:
    Die generelle Abfrage per LDAP ist auf dem Server möglich. Z. B. erhalte ich mit folgendem LDAPSearch ein korrektes Ergebnis:

    C:\Program Files (x86)\IBM\Lotus\Notes>ldapsearch -h told01 "(&(objectClass=dominoPerson)(uid=sre))" cn telephonenumber


    • Bearbeitet Stephan1983 Mittwoch, 8. August 2012 07:47
    Mittwoch, 8. August 2012 07:46

Antworten

  • Mangels Domino-Server zum testen kann ich nur bedingt helfen.

    Allerdings stimmt zumindest die Syntax insofern, als das ohne den Filter, das Script auch mit einem AD Domänencontroller funktioniert. Was passiert denn wenn dus ohne den Filter (also Zeile 7 auskommentiert) auf den Domino Server loslässt?

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Hallo,

    ich möchte kurz die Lösung darstellen. Der Filter war nicht die Ursache, sondern das Fehlen der Authentifizierung im directoryEntry. Scheinbar muss dieses für den Lotus Domino LDAP Dienst angegeben werden.

    function ldap {
            $user = [Environment]::UserName
            $auth = [System.DirectoryServices.AuthenticationTypes]::Anonymous
            $Root = new-object system.directoryservices.directoryEntry ("LDAP://told01:389","","",$auth);
            $Filter = "(&(objectclass=dominoPerson)(uid=$user))"
            $Attribute = "telephonenumber"
            $Searcher = New-Object Directoryservices.DirectorySearcher($Root)
            $searcher.Filter = $Filter
            $searcher.Searchscope = [System.DirectoryServices.SearchScope]::Subtree
            $Attribute | foreach {[void]$searcher.PropertiesToLoad.Add($_)}
            $result = $searcher.findAll()
            $tel = $result | %{$_.properties.item("telephonenumber")}
            return $tel.Substring(10)
            }

    Gruß
    Stephan

    • Als Antwort markiert Stephan1983 Freitag, 10. August 2012 12:02
    Freitag, 10. August 2012 12:02

Alle Antworten

  • Mangels Domino-Server zum testen kann ich nur bedingt helfen.

    Allerdings stimmt zumindest die Syntax insofern, als das ohne den Filter, das Script auch mit einem AD Domänencontroller funktioniert. Was passiert denn wenn dus ohne den Filter (also Zeile 7 auskommentiert) auf den Domino Server loslässt?

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Mittwoch, 8. August 2012 10:14
    Moderator
  • Mangels Domino-Server zum testen kann ich nur bedingt helfen.

    Allerdings stimmt zumindest die Syntax insofern, als das ohne den Filter, das Script auch mit einem AD Domänencontroller funktioniert. Was passiert denn wenn dus ohne den Filter (also Zeile 7 auskommentiert) auf den Domino Server loslässt?

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Hallo,

    ich möchte kurz die Lösung darstellen. Der Filter war nicht die Ursache, sondern das Fehlen der Authentifizierung im directoryEntry. Scheinbar muss dieses für den Lotus Domino LDAP Dienst angegeben werden.

    function ldap {
            $user = [Environment]::UserName
            $auth = [System.DirectoryServices.AuthenticationTypes]::Anonymous
            $Root = new-object system.directoryservices.directoryEntry ("LDAP://told01:389","","",$auth);
            $Filter = "(&(objectclass=dominoPerson)(uid=$user))"
            $Attribute = "telephonenumber"
            $Searcher = New-Object Directoryservices.DirectorySearcher($Root)
            $searcher.Filter = $Filter
            $searcher.Searchscope = [System.DirectoryServices.SearchScope]::Subtree
            $Attribute | foreach {[void]$searcher.PropertiesToLoad.Add($_)}
            $result = $searcher.findAll()
            $tel = $result | %{$_.properties.item("telephonenumber")}
            return $tel.Substring(10)
            }

    Gruß
    Stephan

    • Als Antwort markiert Stephan1983 Freitag, 10. August 2012 12:02
    Freitag, 10. August 2012 12:02