1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. gmmg

Beiträge von gmmg

  • Screenshot per mail versenden

    • gmmg
    • 18. Dezember 2007 um 09:27

    guten morgen mega,

    deine version funktioniert soweit sehr gut,
    wenn aber kein scrennshot vorhanden ist und ich klicke auf senden, dann kommt folgende fehlermeldung:
    "Error Code:1 Description:0"

    desweiteren, werden die files nach versenden aus dem ordner nicht gelöscht und es kommt bei $mbody die fehlermeldung:
    ==> Variable used without being declared.:
    $as_Body = $mbody
    das gleiche bei $s_Subject = "xxxxxx " & $cba1

    steht die definition dieser an falscher stelle im quelltext?

    gruß gmmg

  • Screenshot per mail versenden

    • gmmg
    • 17. Dezember 2007 um 22:19

    alina,

    habe mir auch schon gedanken gemacht! man könnte bei jedem drücken der tastenkombi auch einen wert in ein array oder in eine datei speichern und wieder auslesen, wenn dann z.b. wert = 5 dann funktion sperren und msgbox ausgeben!

    na mal sehen ob ich die tage dazu komme!
    muss morgen erstmal bei unserem DHCP server die bereiche für die verteilung neu einstellen und noch paar ip telefone konfigurieren und in betrieb nehmen ;)

    na zwischendurch habe ich bestimmt mal bissl zeit!

    gruß gmmg

  • Screenshot per mail versenden

    • gmmg
    • 17. Dezember 2007 um 21:01

    hi alina ;)

    das freut mich!

    ich suche noch eine lösung, wie ich die combobox auf den standardwert zurücksetze,
    einen zähler, der bei jedem drücken der tastenkombination, um 1 hochzählt! wenn 5 mal gedrückt, soll kein weiteres drücken möglich sein und eine meldung ausgegeben werden!

    gruß gmmg :P

  • Screenshot per mail versenden

    • gmmg
    • 17. Dezember 2007 um 19:40

    hi mega,

    der quelltext mal im anhang!
    habe die version von dir mal reinkopiert!

    gruß gmmg

    Dateien

    screenshot_mailer.au3 15,13 kB – 342 Downloads
  • Screenshot per mail versenden

    • gmmg
    • 17. Dezember 2007 um 12:29
    Zitat von Xenobiologist

    Func _getFilePathes($sPath, $sFilter = '(*.*)', $iFlag = 0) Local $FileList = _FileListToArray($sPath, $sFilter, $iFlag) If @error Then Return (@error * (-1)) Local $re_A = '' For $i = 1 To UBound($FileList) - 1 $re_A &= $sPath & '\' & $FileList[$i] & ';' Next Return $re_A EndFunc ;==>_getFilePathes


    Hi mega,

    bekomme eine fehlermeldung aber die daten werden trozdem verschickt!
    fehlermeldung kommt nur, wenn mehr als eine datei angehangen wird! kann also sein, das die stringerzeugung nicht ganz stimmt!
    habe mal ein bild angehangen
    an welcher stelle muss ich den die variable "$s_AttachFiles" mit der "$re_A" füllen?

    meine version (post Freitag, 14. Dezember 2007, 14:42) funktioniert ja soweit!

    gruß gmmg

    Dateien

    screenshot_122834.jpg 119,98 kB – 0 Downloads
  • Screenshot per mail versenden

    • gmmg
    • 15. Dezember 2007 um 15:04

    hi, mach ich! schönes we allen ;)

  • Screenshot per mail versenden

    • gmmg
    • 14. Dezember 2007 um 23:14

    hi mega,

    deine variante werd ich montag auf arbeit mal testen! gerade eben von zu hause aus, hat das script mir noch fehler gebracht!

    danke

    und gruß ;)

    gmmg

  • Screenshot per mail versenden

    • gmmg
    • 14. Dezember 2007 um 14:42

    habe das jetzt so gemacht:

    Spoiler anzeigen
    [autoit]


    Global $s_AttachFiles

    [/autoit] [autoit][/autoit] [autoit]

    Func _getFilePathes($sPath, $sFilter = '(*.*)', $iFlag = 0)
    Local $FileList = _FileListToArray($sPath, $sFilter, $iFlag)
    If @error Then Return (@error * (-1))
    Local $re_A[UBound($FileList)]
    For $i=1 TO UBound($FileList) -1
    $re_A[$i] = $sPath & '\' & $FileList[$i]
    Next
    $re_A[0] = $FileList[0]
    ;MsgBox(0,"",$re_A[0]) ; anzahl der Inhalte im array

    If $re_A[0] = 1 Then
    ;MsgBox(0,"","1 file")
    $s_AttachFiles = $re_A[1]
    ;MsgBox(0,"",$s_AttachFiles)
    EndIf
    If $re_A[0] = 2 Then
    ;MsgBox(0,"","2 files")
    $s_AttachFiles = $re_A[2] &";"& $re_A[1]
    ;MsgBox(0,"",$s_AttachFiles)
    EndIf
    If $re_A[0] = 3 Then
    ;MsgBox(0,"","3 files")
    $s_AttachFiles = $re_A[3] &";"& $re_A[2] &";"& $re_A[1]
    ;MsgBox(0,"",$s_AttachFiles)
    EndIf
    If $re_A[0] = 4 Then
    ;MsgBox(0,"","4 files")
    $s_AttachFiles = $re_A[4] &";"& $re_A[3] &";"& $re_A[2] &";"& $re_A[1]
    ;MsgBox(0,"",$s_AttachFiles)
    EndIf
    If $re_A[0] = 5 Then
    ;MsgBox(0,"","5 files")
    $s_AttachFiles = $re_A[5] &";"& $re_A[4] &";"& $re_A[3] &";"& $re_A[2] &";"& $re_A[1]
    ;MsgBox(0,"",$s_AttachFiles)
    EndIf

    Return $re_A
    EndFunc ;==>_getFilePathes

    [/autoit]

    die function wird dann über einen case button1 aufgerufen und an die "$s_AttachFiles" übergeben
    ;--dateien in array lesen
    $re = _getFilePathes(@MyDocumentsDir & "\screenshot", '*.jpg')
    ;_ArrayDisplay($re)

    wer noch eine andere idde hat, dem bin ich dankbar :)
    gruß gmmg

  • Screenshot per mail versenden

    • gmmg
    • 14. Dezember 2007 um 14:15

    Danke , funktioniert soweit!

    Spoiler anzeigen
    [autoit]


    $re = _getFilePathes(@MyDocumentsDir & "\screenshot", '*.jpg')
    _ArrayDisplay($re)

    [/autoit] [autoit][/autoit] [autoit]

    Func _getFilePathes($sPath, $sFilter = '(*.*)', $iFlag = 0)
    Local $FileList = _FileListToArray($sPath, $sFilter, $iFlag)
    If @error Then Return (@error * (-1))
    Local $re_A[UBound($FileList)]
    For $i=1 TO UBound($FileList) -1
    $re_A[$i] = $sPath & '\' & $FileList[$i]
    Next
    $re_A[0] = $FileList[0]
    ;MsgBox(0,"",$re_A[0]) ; anzahl der Inhalte im array
    Return $re_A
    EndFunc ;==>_getFilePathes

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    wie bekomme ich die "$s_AttachFiles" gefüllt?

    gruß gmmg ;)

  • Screenshot per mail versenden

    • gmmg
    • 14. Dezember 2007 um 11:15
    [autoit][/autoit][autoit][/autoit][autoit]

    $FileList=_FileListToArray(@MyDocumentsDir & "\screenshot\")

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($FileList,"$FileList")

    [/autoit][autoit][/autoit][autoit]

    If $FileList = 0 Then
    MsgBox(0,"","kein screenshot vorhanden!")
    $s_AttachFiles = ""
    Else
    $size = $Filelist
    $s_AttachFiles =""
    $sConnector = ""
    if $size > 4 then $size = 4
    MsgBox(0,"",$size)
    for $i = 0 to $size

    $s_AttachFiles= $s_AttachFiles & $sConnector & (@MyDocumentsDir & "\screenshot\" & $FileList[$i +1])
    $sConnector =";"
    ;MsgBox(0,"",$a1&";"&$a2)
    ;$s_AttachFiles = ($a1&";"&$a2)

    [/autoit][autoit][/autoit][autoit]

    Next
    MsgBox(0,"",$s_AttachFiles)
    EndIf

    [/autoit]

    problem, habe testweise mal 4 files generiert, er geht auch durch die schleife und erzeugt den pfad, aber immer mit der gleichen datei!

    gruß gmmg

  • Screenshot per mail versenden

    • gmmg
    • 13. Dezember 2007 um 17:02

    @mega

    zippen geht nicht, da die jpg dateien, die erzeugt werden dann gleich von anderen verarbeitet werden,
    da ist das zu aufwendig, wenn die erst wieder enpackt werden müssen!

    benötige da eine andere lösung

    würde mich trozdem interessieren, wie die lösung mit zip aussehen würde?

    dank

    gruß gmmg

  • Screenshot per mail versenden

    • gmmg
    • 13. Dezember 2007 um 16:40

    hi,

    suche noch nach einer möglichkeit die dateien aus einem verzeichnis (datei a, datei b, datei c) bei der mailfunktion als
    $s_AttachFiles = (datei a;datei b;datei c) anzuhängen! dabei wird ja immer der pfad zur datei angegeben!
    dateien werden mit der screenshotfunktion erzeugt und haben immer unterschiedliche namen!
    meine idee war ja, die _FileListToArray funktion siehe bsp.: zu benutzen
    $FileList=_FileListToArray(@MyDocumentsDir & "\screenshot\")
    hier bekomme ich nun auch alle files des ordners in das array geschrieben!

    wie kann ich hier diese dateien weiterverarbeiten? ?( ich benötige entweder einen string welcher sich aus den dateien im array + pfadangaben zusammensetzt,

    (datei1;datei2;datei3)

    oder die einzelnen dateien in einer variable:
    $a1 = datei1
    $a2 = datei2
    $a3 = datei3

    vielleicht gibt es auch eine ganz andere möglichkeit!
    hat einer da erfahrungen bzw eine lösung?
    dank im vorraus

    gruß gmmg ;) :?:

  • Screenshot per mail versenden

    • gmmg
    • 13. Dezember 2007 um 14:19

    ein weiteres problem, habe die dateien in einem Array, wie bekomme ich die einzelnen jetzt in eine variable oder die einzelnen in verschiedene variablen?

    Spoiler anzeigen
    [autoit]


    #include
    #Include

    [/autoit] [autoit][/autoit] [autoit]

    $FileList=_FileListToArray(@MyDocumentsDir & "\screenshot\")
    ;MsgBox(0,"",$FileList[1])

    [/autoit] [autoit][/autoit] [autoit]

    ;_ArrayDisplay($FileList,"$FileList")

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $FileList[0]
    If @error = 1 then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    $ab = $FileList[$i]

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"",$ab)

    [/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;------

    [/autoit] [autoit][/autoit] [autoit]

    $s_AttachFiles = $a1&";"&$a2

    [/autoit] [autoit][/autoit] [autoit]

    ;------

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    gruß gmmg


    </Array.au3></File.au3>

  • Screenshot per mail versenden

    • gmmg
    • 12. Dezember 2007 um 14:10

    hi spider,

    das tool soll im hintergrund laufen!
    jedesmal wenn ich z.b. strg+ f4 drücke soll das bild abgespeichert werden ( dies können 3-6 bilder sein)
    wenn ich dann strg+ f5 drücke sollen die ganzen gespeicherten bilder als mailanhang versendet werden!

    bekomme in der zweiten variante eine fehlermeldung:

    >"C:\Programme\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Dokumente und Einstellungen\%username%\Desktop\scripte\Test\screenshot_mail.au3"
    C:\Dokumente und Einstellungen\%username%\Desktop\scripte\Test\screenshot_mail.au3 (65) : ==> Variable used without being declared.:
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.From = '"' & ^ ERROR
    >Exit code: 1 Time: 2.568

    gruß gmmg

  • Screenshot per mail versenden

    • gmmg
    • 12. Dezember 2007 um 13:42

    hallo, ich möchte einen screenshot per mail versenden, dabei soll das erzeugen des screenshots in einer schleife laufen, genau so wie das versenden! also die exe dann immer gestartet sein soll!
    über strg+f4 wird screenshot erzeugt, über strg+f5 soll mail mit erzeugten screenshot's verschickt werden!

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <ScreenCapture.au3>
    While 1
    Sleep(1)
    ;HotKeySet("{PRINTSCREEN}", "Capture_start")
    ;HotKeySet("+!d", "Capture_start") ;Shift-Alt-d
    HotKeySet("^{F4}", "Capture_start") ;Strg-F4
    HotKeySet("^{F5}","_INetSmtpMailCom")

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Capture_start()

    [/autoit] [autoit][/autoit] [autoit]

    ; Capture full screen
    If FileExists(@MyDocumentsDir & "\screenshot") Then
    ;MsgBox(4096, "C:\autoexec.bat File", "Exists")
    Else
    ;MsgBox(4096,"C:\autoexec.bat File", "Does NOT exists")
    DirCreate(@MyDocumentsDir & "\screenshot")
    EndIf
    ;FileDelete(@MyDocumentsDir & "\Printscreen*.*"
    _ScreenCapture_Capture(@MyDocumentsDir & "\screenshot\screenshot_"& @SEC & @MIN & @HOUR & ".jpg")

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"","Screenshot erstellt!",1)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    ;##################################
    ; Include
    ;##################################
    ;#Include<file.au3>
    ;##################################
    ; Variables
    ;##################################
    $s_SmtpServer = "ipadresse" ; address for the smtp-server to use - REQUIRED
    $s_FromName = @UserName ;@UserName ; name from who the email was sent
    $s_FromAddress = @UserName & "@domain.de" ; address from where the mail should come
    $s_ToAddress = "empfänger@domain.de" ; destination address of the email - REQUIRED
    $s_Subject = "Supportmeldung "; subject from the email - can be anything you want it to be
    $as_Body = ("IP Addresse: ") ; the messagebody from the mail - can be left blank but then you get a blank mail
    $s_AttachFiles = "" ; the file you want to attach- leave blank if not needed
    $s_CcAddress = "" ; address for cc - leave blank if not needed
    $s_BccAddress = " "
    $s_Username = "xxxxxx" ; username for the account used from where the mail gets sent - Optional (Needed for eg GMail)
    $s_Password = "xxxxxxxxxxxxx" ; password for the account used from where the mail gets sent - Optional (Needed for eg GMail)
    $IPPort = 25 ; port used for sending the mail
    $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS
    ;~ $IPPort=465 ; GMAIL port used for sending the mail
    ;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

    [/autoit] [autoit][/autoit] [autoit]

    ;##################################
    ; Script
    ;##################################
    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
    If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    EndIf
    ;

    [/autoit] [autoit][/autoit] [autoit]

    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0)
    $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
    Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
    For $x = 1 To $S_Files2Attach[0]
    $S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
    SetError(1)
    return 0
    EndIf
    Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    If $Ssl Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Sent the Message
    $objEmail.Send
    if @error then
    SetError(2)
    return $oMyRet[1]
    EndIf
    EndFunc ;==>_INetSmtpMailCom
    ;
    ;
    ; Com Error Handler
    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description,3)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
    EndFunc ;==>MyErrFunc

    [/autoit]

    wie und wo muss ich die mailfuntion einsetzen?

    gruß gmmg

    Edit GtaSpider: [12.12.2007 14:04]
    AutoIt Tags eingefügt
    Aufruf:

    Code
    [SPOILER][AUTOIT]
    AutoIt Code
    [/AUTOIT][/SPOILER]
  • Abfrage _ADRecursiveGetMemberOf

    • gmmg
    • 2. Dezember 2007 um 01:16

    hier noch eine weitere lösung! vielleicht benötigt es mal einer! ;)

    [autoit]


    Global $avGroups = ""
    $UserFQDN = _ADSamAccountNameToFQDN(@UserName)
    ;MsgBox(64, "Debug", "$UserFQDN = " & $UserFQDN)

    [/autoit][autoit][/autoit][autoit]

    _ADRecursiveGetMemberOf($avGroups, $UserFQDN)
    _ArrayDisplay($avGroups, "Debug: $avGroups")

    [/autoit][autoit][/autoit][autoit]

    $string = ""
    For $i = 0 To $avGroups[$i]
    If @error = 1 then ExitLoop
    $ab = $avGroups[$i]
    ;MsgBox (0,"",$ab)
    $gr_split = StringSplit($avGroups[$i], ",")
    ;MsgBox(0,"",$gr_split)
    $gr = $gr_split[1]
    ;MsgBox(0,"",$gr)
    $gr1 = StringReplace($gr , "CN=", "")
    ;MsgBox(0,"",$gr1)

    If $gr1 = "groupname" Then
    MsgBox(0,"","user is in group" & "groupname")
    EndIf
    Next

    [/autoit]

    gruß
    gmmg :thumbup:

  • Abfrage _ADRecursiveGetMemberOf

    • gmmg
    • 30. November 2007 um 11:31

    hallo,

    folgend mal eine lösung für "_ADRecursiveGetMemberOf"

    Spoiler anzeigen

    Global $avGroups = ""

    _ADRecursiveGetMemberOf($avGroups, _ADSamAccountNameToFQDN(@UserName))
    _ArrayDisplay($avGroups, "Debug: $avGroups")

    gruß gmmg

  • problem mit ADGetGroupMembers

    • gmmg
    • 29. November 2007 um 00:17

    hi,
    bin schon ein bisschen weiter gekommen, das ist aber alles noch nicht das wahre!
    bekomme jetzt mit "GetGroupMembers" die Mitglieder einer bestimmten AD Gruppe bzw. mit "IsMember Of" auch die AD Gruppenmitgliedschaft eines AD Users. Entweder ich speichere jetzt die Abfrageergebnisse in ein Array und vergleiche hinterher, ob user in einer gruppe ist, die in einer weiteren gruppe mitglied ist.
    warscheinlich geht das aber ganz einfach mit der _ADRecursiveGetMemberOf Function aus der adfunctions.au3!
    hier habe ich aber keine erfahrung :(

    Spoiler anzeigen


    $StrGroup = "Administratoren"
    $Members_Query = ""
    If _ADGetGroupMembers ( $Members_Query, _ADSamAccountNametoFQDN($StrGroup), 1) <> 1 Then
    MsgBox (0, "error", "Could not find group")
    EndIf

    If Not @error Then
    _ArraySort( $Members_Query)
    ;~ _ArrayDisplay( $Members_Query)
    Else
    MsgBox(16, "Error", "Error returned: @error = " & @error)
    Exit
    EndIf

    For $i = 1 To $Members_Query[0]
    If @error = 1 then ExitLoop

    ;MsgBox(0,"test",_ADDNToSamAccountName($Members_Query[$i])) ; add other item snd set a new default
    if @username = _ADDNToSamAccountName($Members_Query[$i])then
    MsgBox (0,"","vorhanden")
    EndIf
    Next

    danke für weitere hilfen

    gruß gmmg

  • problem mit ADGetGroupMembers

    • gmmg
    • 27. November 2007 um 23:11

    hallo bernd,

    eigentlich sollte das in der adfunctions.au3 geschehen! hatte beim kopieren nur den falschen quelltext eingefügt, weil ich da noch probiert hatte, die function so einzubinden.

    Spoiler anzeigen

    #include <array.au3>
    #include <adfunctions.au3>


    DIM $sGroup_Name = "team-it"
    Dim $avList_Of_Members

    _ADGetGroupMembers($avList_Of_Members, $sGroup_Name)
    _ArrayDisplay($avList_Of_Members, "Members of group: " & $sGroup_Name)

    wenn ich die adfunctions.au3 include, kommt ein anderer fehler: ==> Object referenced outside a "With" statement.:
    $membersadd = $objRecordSet.fields (0).Value
    $membersadd = $objRecordSet.fields (0)^ ERROR

    habe dafür auch keine lösung und bin auch nicht ganz so vertraut.

    hintergrund des ganzen ist ja, das ich eine funktion benötige, die überprüft, ob ein user in einer ad gruppe xyz ist (funktioniert ja mit ismemberof)!
    da diese ad gruppe xyz keine direkten ad user als mitglieder hat, sondern beinhaltet weitere ad sicherheits oder verteilergruppen, in denen dann erst ad user liegen, funktioniert die "ismemberof" funktion nicht mehr, um die ad gruppe xyz abzufragen, weil die ad user ja nicht direkt mitglied dieser sind!


    für diese abfrage benötige ich eine lösung!

    gruß

    gmmg :wacko:

  • problem mit ADGetGroupMembers

    • gmmg
    • 27. November 2007 um 20:30

    hallo,

    bekomme immer folgende Fehlermeldung, wenn ich unen stehenden code ausführen will!

    ==> Variable used without being declared.:
    $objCommand.ActiveConnection = $objConnection
    $objCommand.ActiveConnection = ^ ERROR

    ;-------------------------------

    #include <array.au3> ; For _ArrayDisplay()

    Dim $sGroup_Name = "Administratoren"
    Dim $avList_Of_Members

    _ADGetGroupMembers($avList_Of_Members, $sGroup_Name)
    _ArrayDisplay($avList_Of_Members, "Members of group: " & $sGroup_Name)

    ; _ADGetGroupMembers
    ; Arguments,
    ; $members - Array that the result will be stored in
    ; $group - Group to retrieve members from
    ; $sort - optional, default 0 : Set to 1 to sort the array
    ; Returns an array to $members where $members[0] will be the number of users in the group and
    ; $members[1] to $members[$members[0]] are the distinguished names of the users

    Func _ADGetGroupMembers(ByRef $members, $groupdn, $sort = 0)
    ;If _ADObjectExists($group) = 0 Then Return 0

    Local $oUsr, $objCommand, $groups

    $objCommand = ObjCreate("ADODB.Command")
    $objCommand.ActiveConnection = $objConnection
    $objCommand.Properties ("Searchscope") = 2

    Dim $members[1]
    $i = 0

    While 1
    $rangemodifier = $i * 1000
    $range = "Range=" & $rangemodifier & "-" & $rangemodifier + 999
    $strCmdText = "<LDAP://" & $strHostServer & "/" & $groupdn & ">;;member;" & $range & ";base"
    $objCommand.CommandText = $strCmdText
    $objRecordSet = $objCommand.Execute
    $membersadd = $objRecordSet.fields (0).Value
    If $membersadd = 0 Then ExitLoop
    ReDim $members[UBound($members) + 1000]
    For $j = $rangemodifier + 1 To $rangemodifier + 1000
    $members[$j] = $membersadd[$j - $rangemodifier - 1]
    Next
    $i += 1
    $objRecordSet.Close
    WEnd

    $rangemodifier = $i * 1000
    $range = "Range=" & $rangemodifier & "-*"
    $strCmdText = "<LDAP://" & $strHostServer & "/" & $groupdn & ">;;member;" & $range & ";base"
    $objCommand.CommandText = $strCmdText
    $objRecordSet = $objCommand.Execute
    $membersadd = $objRecordSet.fields (0).Value

    ReDim $members[UBound($members) + UBound($membersadd) ]

    For $j = $rangemodifier + 1 To $rangemodifier + UBound($membersadd)
    $members[$j] = $membersadd[$j - $rangemodifier - 1]
    Next

    $objRecordSet.Close

    $objCommand = 0
    $objRecordSet = 0

    $members[0] = UBound($members) - 1

    If $sort = 1 Then
    _ArraySort($members, 0, 1)
    EndIf

    Return 1
    EndFunc ;==>_ADGetGroupMembers

    gruß gmmg :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™