Sign in to follow this  
Followers 0
Xenobiologist

Connecting to LDAP with pure Autoit

12 posts in this topic

#1 ·  Posted (edited)

Hi,

I'm using this LDAP-Browser : http://www-unix.mcs.anl.gov/~gawor/ldap/

The connection with this settings works fine: LDAP Settings PIC

How can I connect to the LDAP with Autoit?

Global Const $LDAPBaseDN = 'racfid=xxx,profiletype=user,ou=racf,ousys,o=XXX'
Global Const $LDAPPort = "636"
Global Const $LDAPServer = "XXXX"
Global Const $LDAPAddress = $LDAPServer & ":" & $LDAPPort & "/" & $LDAPBaseDN
Global Const $LookFor = "racfpasswordchangedate"

; Initialize COM error handler add in the beginning of the script
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc")


$ObjMember = ObjGet("LDAP://" & $LDAPServer & ":" & $LDAPPort & "/uid=" & $LookFor & "," & $LDAPBaseDN)

If @error Then
    MsgBox(4096, "LDAP Connection", $LDAPServer & " connection error")
    Exit
EndIf
MsgBox(4096, "", $ObjMember.Name)
Exit

How to send my current password to authorize?

Any help is appreciated!

So long,

Mega

P.S.: This is no AD!

Edited by Xenobiologist

Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

maybe stupid answer. Simple

Global Const $LDAPAddress = $user & ":" & $passwd & "@" & $LDAPServer & ":" & $LDAPPort & "/" & $LDAPBaseDN

doesn't work?

Edited by Gun-Food

Share this post


Link to post
Share on other sites

Hi,

okay no luck until yet. Next try with an openLDAP.

This works:

ldapsearch -x uid=xf01145 -h glpls01 -b ou=user,ou=RZ,ou=0000,ou=cust,o=GAX sambaKickoffTime

# extended LDIF
#
# LDAPv3
# base <ou=user,ou=RZ,ou=0000,ou=cust,o=GAX> with scope sub
# filter: uid=xf01145
# requesting: sambaKickoffTime
#

# xf01145, user, RZ, 0000, cust, GAX
dn: uid=xf01145,ou=user,ou=RZ,ou=0000,ou=cust,o=GAX
sambaKickoffTime: 1180714325

# search result
search: 2
result: 0 SuccessoÝ÷ Øz0¶h¶¬p.¶­jëh×6Global Const $userDN = "xf01145,ou=user,ou=RZ,ou=0000,ou=cust,o=GAX"
Global Const $user = 'xf01145'
Global Const $password = 'XXX'
Global Const $LDAPBaseDN = 'ou=user,ou=RZ,ou=0000,ou=cust,o=GAX'
Global Const $LDAPPort = "389"
Global Const $LDAPServer = "glpls01.XXX.de"
Global Const $LDAPAddress = $user & ':' & $password & '@' & $LDAPServer & ':' & $LDAPPort & '/' & $LDAPBaseDN
Global Const $LookFor = 'sambaKickoffTime'

$oMyError = ObjEvent('AutoIt.Error', 'MyErrFunc')

$ObjLDAP = ObjGet ("LDAP://" & $LDAPAddress)

For $ObjMembers In $ObjLDAP
    ConsoleWrite($ObjMembers & @CR)
Next

Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    MsgBox(0, 'AutoItCOM Test', 'We intercepted a COM Error !' & @CRLF & @CRLF & _
            'err.description is: ' & @TAB & $oMyError.description & @CRLF & _
            'err.windescription:' & @TAB & $oMyError.windescription & @CRLF & _
            'err.number is: ' & @TAB & $HexNumber & @CRLF & _
            'err.lastdllerror is: ' & @TAB & $oMyError.lastdllerror & @CRLF & _
            'err.scriptline is: ' & @TAB & $oMyError.scriptline & @CRLF & _
            'err.source is: ' & @TAB & $oMyError.source & @CRLF & _
            'err.helpfile is: ' & @TAB & $oMyError.helpfile & @CRLF & _
            'err.helpcontext is: ' & @TAB & $oMyError.helpcontext _
            )
    SetError(1)  ; to check for after this function returns
EndFunc   ;==>MyErrFunc

I guess nobody can help ... :">

So long,

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites

Hi,

back to a very old topic. :)

Anybody who can translate this so that it works with pure Autoit?

#include <Constants.au3>
#include <Array.au3>
#include <Date.au3>
Global Const $LDAPServer = "glpls01.gaxeg.de"
Global Const $LDAPBaseDN = 'ou=user,ou=RZ,ou=0000,ou=cust,o=GAX'
Global Const $uid = 'user'
Global Const $LookFor = 'sambaKickoffTime'
Global $sreBuffer = 0, $stdBuffer = 0

$command = 'ldapsearch.exe -h glpls01.gaxeg.de -b "ou=user,ou=RZ,ou=0000,ou=cust,o=GAX" uid=' & $uid & ' sambaKickoffTime'

$Pid = Run(@ComSpec & ' /c ' & $command, '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
While Not @error
    $stdBuffer &= StdoutRead($Pid)
WEnd
ConsoleWrite($stdBuffer & @CRLF)

With the attached exe it works.

Any help is appreciated!

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites

Hi,

okay one last try?

Nodody who has been able to send a query to a LDAP (no AD!) within pure Autoit?

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites

Hi,

okay one last try?

Nodody who has been able to send a query to a LDAP (no AD!) within pure Autoit?

Mega

I haven't tried and I haven't got a solution, but could you perhaps run the exe which works while running wireshark or similar to see what is actually sent? Then all you have to do is reproduce that in AutoIt.

Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

Hey,

does this work?

http://www.tek-tips.com/viewthread.cfm?qid=969032&page=1 (the reply from: 19 Dec 04 2:54 )


*GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes

Share this post


Link to post
Share on other sites

Thank you!!!

I'll try to translate the example provided in VB and I'll try to use wireshark to get the data sent to the server.

I'll report ...

Mega

P.S.: If somebody is good in translating vb ... :-) besides I do not need username and password to get what I want from the LDAP.


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites

#10 ·  Posted

Hi,

just read about someone else trying to connect to LDAP with pure Autoit. No chance for me.

Anybody tried that meanwhile?

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

Well, I had to connect to a LDAP-Server, too... (X500).

So I fiddled around with it, and at least got a connection to the LDAP directory.

Simply connecting (without userid/password) and reading a specfic data set is easy:

$oDS = ObjGet("LDAP://xserv.xxx.de/ou=our_company,c=de")
    $oUsr = $oDS.GetObject("Person", "cn=Meyer Peter")
    MSGBOX (0,"", $oUsr.mail)

two source codes (1 in vbs, 1 in autoti) stood here until the forum revamp nuked both of them... gotta find them on my hardidsk...

As mentioned above. both versions of the script return the same amount of records. The differences are:

1. the vbs file detects the found as an array

2. the array is converted to a string and displayed correctly

3. AutoIt does not consider the variable an array, but a string and returns "" as result.

I am quite sure there is one small stupid thing I don't see... any hints? :D

Best regards,

Marc

Edit: fixed first source code, added comment about the two deleted source codes

Edited by Marc

It's my job to comfort the disturbed and to disturb the comfortable.

Share this post


Link to post
Share on other sites

Hi,

back to a very old topic. :)

Anybody who can translate this so that it works with pure Autoit?

#include <Constants.au3>
#include <Array.au3>
#include <Date.au3>
Global Const $LDAPServer = "glpls01.gaxeg.de"
Global Const $LDAPBaseDN = 'ou=user,ou=RZ,ou=0000,ou=cust,o=GAX'
Global Const $uid = 'user'
Global Const $LookFor = 'sambaKickoffTime'
Global $sreBuffer = 0, $stdBuffer = 0

$command = 'ldapsearch.exe -h glpls01.gaxeg.de -b "ou=user,ou=RZ,ou=0000,ou=cust,o=GAX" uid=' & $uid & ' sambaKickoffTime'

$Pid = Run(@ComSpec & ' /c ' & $command, '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
While Not @error
$stdBuffer &= StdoutRead($Pid)
WEnd
ConsoleWrite($stdBuffer & @CRLF)

With the attached exe it works.

Any help is appreciated!

Mega

Please, can you give more details on $command = 'ldapsearch.exe -h glpls01.gaxeg.de -b "ou=user,ou=RZ,ou=0000,ou=cust,o=GAX" uid=' & $uid & ' sambaKickoffTime'?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0