Was kriegst Du, wenn Du Dir $CmdLine[0] (Anzahl der Parameter) ausgeben lässt?
Beiträge von water
-
-
Noch'n Versuch. Die LDAP-Query habe ich erweitert, so dass nur Personen und nur solche bei denen das Feld "telephoneNumber" nicht leer ist, angezeigt werden:
[autoit]#include <AD.au3>
[/autoit]
Global $sName = "", $sTitle = "Telefonnummernabfrage"
_AD_Open()
While 1
While $sName = ""
$sName = InputBox($sTitle, "Bitte geben Sie den zu suchenden Familiennamen ein.", "", "", "", 140)
If @error = 1 Then Exit
WEnd
If @error Then Exit MsgBox(16, $sTitle, "Error: " & @error & " bei Erstellung der Verbindung zum Active Directory!")
Global $asResult = _AD_GetobjectsInOU("", "(&(objectcategory=person)(objectclass=user)(name=" & $sName & "*)(telephoneNumber=*))", 2, "name, telephoneNumber,mobile")
Select
Case @error = 0
_ArrayDisplay($asResult, $sTitle, -1, 0, "", "|", "|Name|Telefon Büro|Handy")
Case @error = 3
MsgBox(16, $sTitle, "Name '" & $sName & "' wurde nicht gefunden!")
Case Else
MsgBox(16, $sTitle, "Error: " & @error & " bei Abfrage nach Name '" & $sName & "'!")
EndSelect
$sName = ""
WEnd
_AD_Close()
Nun müsste man das nur noch mit einer GUI verschönern -
So?
[autoit]#include <AD.au3>
[/autoit]
Global $sName = "", $sTitle = "Telefonnummernabfrage"
_AD_Open()
While 1
While $sName = ""
$sName = InputBox($sTitle, "Bitte geben Sie den zu suchenden Familiennamen ein.", "", "", "", 140)
If @error = 1 Then Exit
WEnd
If @error Then Exit MsgBox(16, $sTitle, "Error: " & @error & " bei Erstellung der Verbindung zum Active Directory!")
Global $asResult = _AD_GetobjectsInOU("", "(name=" & $sName & "*)", 2, "name, telephoneNumber,mobile")
Select
Case @error = 0
_ArrayDisplay($asResult, $sTitle, -1, 0, "", "|", "|Name|Telefon Büro|Handy")
Case @error = 3
MsgBox(16, $sTitle, "Name '" & $sName & "' wurde nicht gefunden!")
Case Else
MsgBox(16, $sTitle, "Error: " & @error & " bei Abfrage nach Name '" & $sName & "'!")
EndSelect
$sName = ""
WEnd
_AD_Close() -
An das Skript das von der Rule aufgerufen wird, wird die EntryID der Mail übergeben.
[autoit]
Greif mit$vOL_Item = $CmdLine[1]
[/autoit]
$oOL = _OL_Open()
$aResult = _OL_ItemGet($oOL, $vOL_Item, Default, "body,subject")
_OL_Close($oOL)darauf zu. Wobei $vOL_Item die EntryID ist. Du erhältst eine zwei dimensionale Tabelle mit den angeforderten properties.
-
So vielleicht?
[autoit]#include <AD.au3>
[/autoit]
Global $sName = "", $sTitle = "Telefonnummernabfrage"
_AD_Open()
While 1
While $sName = ""
$sName = InputBox($sTitle, "Bitte geben Sie den zu suchenden Familiennamen ein." & @CRLF & "* als Platzhalter erlaubt.")
If @error = 1 Then Exit
WEnd
If @error Then Exit MsgBox(16, $sTitle, "Error: " & @error & " bei Erstellung der Verbindung zum Active Directory!")
Global $asResult = _AD_GetobjectsInOU("", "(name=" & $sName & "*)", 2, "name, telephoneNumber,mobile")
Select
Case @error = 0
_ArrayDisplay($asResult)
Case @error = 3
MsgBox(16, $sTitle, "Name '" & $sName & "' wurde nicht gefunden!")
Case Else
MsgBox(16, $sTitle, "Error: " & @error & " bei Abfrage nach Name '" & $sName & "'!")
EndSelect
$sName = ""
WEnd
_AD_Close() -
das liefert doch schon ein gutes Ergebinss....
wenn ich jetzt das Fedl "mobile" auch mit anzeigen möchte....
habs versuch bekomme aber ein error
Global $asResult = _AD_GetobjectsInOU("", "(name=" & $sName & "*)", 2, "name, telephoneNumber","name, mobile")
Schau Dir mal die Beschreibung der Funktion im UDF an.
[autoit]
Parameter 3 ist die Liste der zurückzugebenden properties. Parameter 4 ist das Sortierfeld.
Also muss der Code lauten:Global $asResult = _AD_GetobjectsInOU("", "(name=" & $sName & "*)", 2, "name, telephoneNumber, mobile")
[/autoit] -
Klar - habe das Skript oben so angepasst, dass automatisch ein Stern am Ende des Namens eingefügt wird.
-
Ich denke, dass zumindest die EntryID der Mail an das Skript übergeben wird. Mit meiner OutlookEX UDF kannst Du damit auf die Mail zugreifen und die gewünschten Daten auslesen.
-
Weil er das Feld "name" exakt nach Deiner Eingabe prüft und die scheint es so nicht zu geben.
-
Error 3 heisst: Kein Datensatz gefunden.
Gib mal Deinen Familienname mit "*" hinden dran ein. Oder nur "*", dann kommen aber alle Einträge aus dem AD - also Vorsicht! -
Wo soll die AD.au3 liegen?
Im /AutoIt/Include Ordner, im Ordner in dem das Skript liegt oder in einem Userdefinierten Ordner für die Include Files.
ZitatWenn ich weiter in die ou gehen möchte wo wäre das?
Der Funktion _AD_GetObjectsInOU kannst Du eine Start-OU angeben. Default = "" also alle OUs. Mit dem 3. Parameter definierst DU, wie weit die Struktur durchsucht werden soll. 2 steht für "subtree" und bedeutet: Ab der Start-OU die ganze Struktur durch.
Details findest Du in den HTML-Hilfedateien oder im Sourcode in den Funktionsheadern. -
test mal das scripte, muss sich das nicht in eine pfad der ou "ähngen" muss ich den nicht angeben, oder geht das weil der user schon in dem pfad ist?
So wie das Skript jetzt läuft, durchsucht es das komplette AD nach dem eingegebenen Namen. Performance könnte man noch verbessern, wenn man nach Personen und/oder ab einer bestimmten Start-OU sucht.
Aber derzeit ist es ja nur "Q&D" -
Quick and dirty könnte das Skript so aussehen:
[autoit]#include <AD.au3>
[/autoit]
Global $sName = "", $sTitle = "Telefonnummernabfrage"
While $sName = ""
$sName = InputBox($sTitle, "Bitte geben Sie den zu suchenden Familiennamen ein." & @CRLF & "* als Platzhalter erlaubt.")
If @error = 1 Then Exit
WEnd
_AD_Open()
If @error Then Exit MsgBox(16, $sTitle, "Error: " & @error & " bei Erstellung der Verbindung zum Active Directory!")
Global $asResult = _AD_GetobjectsInOU("", "(name=" & $sName & "*)", 2, "name, telephoneNumber")
If @error Then Exit MsgBox(16, $sTitle, "Error: " & @error & " bei Abfrage nach Namen!")
_ArrayDisplay($asResult)
_AD_Close() -
Hast Du die Vollversion von SciTE installiert (ist ein eigener Download) oder nur die abgespeckte Version die mit Autoit mitkommt?
-
Koda ist ein Teil von SciTe. Aufruf mit Alt+m für den grafischen GUI Editor.
-
Das kannst Du relativ einfach selbst schnitzen:
- GUI mit Koda erstellen
- Mein Active Directory UDF herunterladen (siehe Signatur)
- Felder (properties) definieren in denen die gewünschten Informationen liegen nach denen gesucht werden soll oder die anzuzeigen sind
- LDAP query erstellen und mit Funktion _AD_GetObjectsInOU abfragen
- Ergebnis anzeigen
-
Wow, schon wieder was gelernt
Gehört sowas in die Doku rein? -
Also bei mir sieht das so aus wenn ich Deine Datei auf C:\temp\System1.ini ablege.
autoit.de/wcf/attachment/15293/ -
Super, dass es nun funktioniert!
-
Was steht in Element 5 der Tabelle? Kannst Du einen Screenshot der gesamten Tabelle posten?