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. GerhardSchr

Beiträge von GerhardSchr

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 1. Juli 2015 um 15:34

    danke!

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 1. Juli 2015 um 10:28

    hi water und alles klar? :)

    AD udf funktioniert so weit sehr gut, eine Frage habe ich aber doch :)

    kann es sein, dass die _AD_RecursiveGetGroupMembers funktion (immernoch) neben den namen die enthaltenen Gruppen selbst ausgibt?

    z.B.:

    Gruppe: Vorstand (Peter, Hannes)
    Gruppe: Arbeiter (Heike, Johannes)

    Gruppe in Gruppe: Alle_zusammen (Vorstand, Arbeiter)


    Ergebnis von _AD_RecursiveGetGroupMembers ("Alle_zusammen", 10, 0, 0)


    Vorstand (sollte nicht enthalten sein)
    Arbeiter (sollte nicht enthalten sein)
    Peter (ist ok)
    Hannes (ist ok)
    Heike (ist ok)
    Johannes (ist ok)


    oder benutzte ich (wieder mal) eine alter Version? :)


    Danke schonmal!

  • Temporäre AD User umschaltung möglich?

    • GerhardSchr
    • 12. November 2014 um 12:21

    den takst wird ja remote erstellt!

    Code
    schtasks /Create /S HOST /RU USER /SC ONCE /ST 00:00 /TN TempTask /TR "(UNC) PFAD" /F
    schtasks /Run /S HOST /TN TempTask
    schtasks /Delete /S HOST /TN TempTask /F
  • Temporäre AD User umschaltung möglich?

    • GerhardSchr
    • 12. November 2014 um 11:40

    tlotuade meint bestimmt sowas: http://stackoverflow.com/questions/2905…programatically

    ich nutze es auch so...entweder einen bat generieren oder direkt mittels autoit ausführen....

  • Microsoft Kalender Termine löschen

    • GerhardSchr
    • 10. November 2014 um 13:52

    ohne zu wissen, ob die udf das kann --> Outlook udf

  • 1,245 GB AutoIt-Scripte

    • GerhardSchr
    • 7. November 2014 um 20:18

    oder in hundert jahren lesen wir wieder nurnoch steintafeln...

  • Abwesenheitsmodus (AWAY-Mode) erkennen

    • GerhardSchr
    • 2. November 2014 um 11:29

    kenne mich zwar nicht damit aus, aber du hast erwähnt, dass der ton ausgeschaltet wird...das könnte man ja abfragen....

  • 1,245 GB AutoIt-Scripte

    • GerhardSchr
    • 2. November 2014 um 10:43

    hau alle *.exe weg und komprimiere mal mit 7z auf der höchsten stufe :)

    dann könnte man es bestimmt als foren upload speichern/archivieren :P

    am längsten hält warscheinlich: Ausdrucken ;)

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 25. Juni 2013 um 14:17
    Zitat von GerhardSchr

    super, lade ich dann mal die neue version :)

    jetzt fehlt nurnoch (meinerseits):
    - _AD_RecursiveGetGroupMembers ohne die Gruppen im Array
    - _AD_IsMemberOf rekusive Prüfung

    Wenn du Zeit hast!

    Danke!


    :):):):):):):):):):):):):):)

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 25. Juni 2013 um 13:28

    Hallo Water!

    sieht gut aus!
    Bei mir hat sie funktioniert :)

    Danke für deine Zeit!

    Willst du die dann mit in die AD.au3 packen und ersetzt dann die "normale" _Ad_IsMemberOf?
    Alte Script sollten ja noch laufen, da die beiden letzten Optionen optional sind...

    Wiedermal super arbeit!

    Gruß
    GerhardSchr

  • Autoit und Windows Server 2003

    • GerhardSchr
    • 10. Juni 2013 um 09:41

    Ich glaube wenn man nslookup auf den full dns macht, sollte der erste in der liste der sein, der auch später im %logonserver% steht.

    Allerdings bin ich mir nicht sicher, was passiert, wenn sich ein user eines anderen Standortes anmeldet, dann greifen ja Benutzerrichtlinien, ohne Anmeldung greifen bestimmt die Computerrichtlinien...

    Je nachdem wie und wo was eingestellt wurde.

    Ich denke mal, dass es da aber auch eine automatische Logik gibt....heißt glaube ich irgendwas mit Kosten und Wegstrecke...

    Gruß
    GerhardSchr

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 4. Juni 2013 um 16:17

    super, lade ich dann mal die neue version :)

    jetzt fehlt nurnoch (meinerseits):
    - _AD_RecursiveGetGroupMembers ohne die Gruppen im Array
    - _AD_IsMemberOf rekusive Prüfung

    Wenn du Zeit hast!

    Danke!

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 4. Juni 2013 um 15:54

    damit geht es auch.

    Wieder ein "Fehler" weniger :)

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 4. Juni 2013 um 15:12

    Danke!

    [autoit]

    $sObject = _AD_FixSpecialChars($sObject, 1) ; the object needs to be unescaped for the LDAP query but the result might be escaped

    [/autoit]


    habe ich auskommentiert....

    nach

    [autoit]

    If StringMid($sObject, 3, 1) <> "=" Then $sObject = _AD_SamAccountNameToFQDN($sObject) ; sAMAccountName provided

    [/autoit]


    habe ich

    [autoit]

    $sObject = StringReplace($sObject, "\/", "/")

    [/autoit]

    eingefügt. (Es war $sObject anstatt $sAD_Object :) )


    so sieht es jetzt aus:

    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _AD_RecursiveGetMemberOf
    ; Description ...: Takes a group, user or computer and recursively returns a list of groups the object is a member of.
    ; Syntax.........: _AD_RecursiveGetMemberOf($sObject[, $iDepth = 10[, $bListInherited = True[, $bFQDN = True]]])
    ; Parameters ....: $sObject - User, group or computer for which the group membership is to be returned. Can be specified as Fully Qualified Domain Name (FQDN) or sAMAccountName
    ; $iDepth - Optional: Maximum depth of recursion (default = 10)
    ; $bListInherited - Optional: Defines if the function returns the group(s) it was inherited from (default = True)
    ; $bFQDN - Optional: Specifies the attribute to be returned. True = distinguishedName (FQDN), False = SamAccountName (default = True)
    ; Return values .: Success - Returns an one-based one dimensional array of group names (FQDN or sAMAccountName) the user or group is a member of
    ; Failure - "", sets @error to:
    ; |1 - Specified user, group or computer does not exist
    ; Author ........: Jonathan Clelland
    ; Modified.......: water
    ; Remarks .......: This function traverses the groups that the object is immediately a member of while also checking its group membership.
    ; For groups that are inherited, the return is the FQDN or sAMAccountname of the group, user or computer, and the FQDN(s) or sAMAccountname(s) of the group(s) it
    ; was inherited from, seperated by '|'(s) if flag $bListInherited is set to True.
    ;+
    ; If flag $bListInherited is set to False then the group names are sorted and only unique groups are returned.
    ; Related .......: _AD_IsMemberOf, _AD_GetUserGroups, _AD_GetUserPrimaryGroup
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _AD_RecursiveGetMemberOf($sObject, $iDepth = 10, $bListInherited = True, $bFQDN = True)

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

    If _AD_ObjectExists($sObject) = 0 Then Return SetError(1, 0, "")
    If StringMid($sObject, 3, 1) <> "=" Then $sObject = _AD_SamAccountNameToFQDN($sObject) ; sAMAccountName provided

    $sObject = StringReplace($sObject, "\/", "/")

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

    ;$sObject = _AD_FixSpecialChars($sObject, 1) ; the object needs to be unescaped for the LDAP query but the result might be escaped

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

    Local $iCount1, $iCount2
    Local $sField = "distinguishedName"
    If Not $bFQDN Then $sField = "samaccountname"
    $__oAD_Command.CommandText = "<LDAP://" & $sAD_HostServer & "/" & $sAD_DNSDomain & ">;(member=" & $sObject & ");" & $sField & ";subtree"
    Local $oRecordSet = $__oAD_Command.Execute
    Local $aGroups[$oRecordSet.RecordCount + 1] = [0]
    If $oRecordSet.RecordCount = 0 Then Return $aGroups
    $oRecordSet.MoveFirst
    $iCount1 = 1
    Local $aTempMemberOf[1]
    Do
    $aGroups[$iCount1] = $oRecordSet.Fields(0).Value
    If $iDepth > 0 Then
    $aTempMemberOf = _AD_RecursiveGetMemberOf($aGroups[$iCount1], $iDepth - 1, $bListInherited, $bFQDN)
    If $bListInherited Then
    For $iCount2 = 1 To $aTempMemberOf[0]
    $aTempMemberOf[$iCount2] &= "|" & $aGroups[$iCount1]
    Next
    EndIf
    _ArrayDelete($aTempMemberOf, 0)
    _ArrayConcatenate($aGroups, $aTempMemberOf)
    EndIf
    $iCount1 += 1
    $oRecordSet.MoveNext
    Until $oRecordSet.EOF
    $oRecordSet.Close
    If $bListInherited = False Then
    _ArraySort($aGroups, 0, 1)
    $aGroups = _ArrayUnique($aGroups, 1, 1)
    EndIf
    $aGroups[0] = UBound($aGroups) - 1
    Return $aGroups

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

    EndFunc ;==>_AD_RecursiveGetMemberOf

    [/autoit]
  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 4. Juni 2013 um 09:26

    ja dann geht es

    der user sah so aus: (distinguishedname über _AD_GetObjectProperties)

    CN=Nachname\, Vorname,OU=XXX,OU=YYY,OU=ZZZ,DC=ort,DC=firma,DC=de

    //edit: ich sehe gerade, dass in dieser Funktion "\," mit ',' ersetzt wird, glaube daran liegt es.
    _AD_RecursiveGetMemberOf benötigt bestimmt "\," :)

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 4. Juni 2013 um 07:41

    hmm auch im beispielscript wird im _ArrayDisplay nur eine 0 angezeigt.
    Ich habe alle Biespielscripte im Include verzeichnis....
    habe _AD_RecursiveGetMemberOf.au3 auch mal umbenannt in __AD_RecursiveGetMemberOf.au3 hat aber auch nix geholfen.
    (Ich dachte eventuell, dass autoit denkt, dass es die Funktion 2mal gibt)

    so sieht die Datei aus:

    [autoit]

    #AutoIt3Wrapper_AU3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y
    ; *****************************************************************************
    ; Example 1
    ; Returns a recursively searched list of groups the currently logged on user
    ; is a member of.
    ; For groups that are inherited, the FQDN of the group or user, and the FQDN(s)
    ; of the group(s) it was inherited from, seperated by '|'
    ; *****************************************************************************
    #include <AD.au3>

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

    ; Open Connection to the Active Directory
    _AD_Open()
    If @error Then Exit MsgBox(16, "Active Directory Example Skript", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended)

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

    ; Returns a recursively searched list of groups the currently logged on user is a member of
    Global $aUser = _AD_RecursiveGetMemberOf(@UserName, 10, 1)
    If @error > 0 Then
    MsgBox(64, "Active Directory Functions - Example 1", "User '" & @UserName & "' has not been assigned to any group")
    Else
    ; For groups that are inherited, the return is the FQDN of the group or user, and the FQDN(s) of the group(s) it
    ; was inherited from, seperated by '|'
    _ArrayDisplay($aUser, "Active Directory Functions - Example 1 - Group names user '" & @UserName & "' is a member of")
    EndIf

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

    ; Close Connection to the Active Directory
    _AD_Close()

    [/autoit]
  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 3. Juni 2013 um 15:55

    es wird eine 0 zurückgegeben

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 3. Juni 2013 um 10:08
    Zitat von water

    Für welche Fälle benötigt Ihr eine rekursive Funktion von _AD_IsMemberOf?

    In der Anleitung steht: This function does not verify membership in any nested groups."
    Ich dachte, dass es nützlich wäre, wenn man mit dieser Funktion auch herausfinden könnte, dass jemand indirekt Mitglied der Gruppe ist.
    (Im Moment mache ich den Umweg über _AD_RecursiveGetMemberOf und suche dann mit _ArraySearch :P )


    So nun zur _Ad_RecursiveGetGroupMembers :
    Funktioniert soweit :)
    Kleiner Fehler habe ich noch gefunden: Im Array befinden sich auch noch die Gruppen, die in den Gruppen sind.
    Ist dies richtig? oder sollten da am Schluss nurnoch die Mitglieder vorhanden sein?

    Beides könnte nützlich sein.

    Meistens (in meinen Fällen) benötigt man nur die Mitglieder der Gruppen, nicht die verschachtelten Gruppen selber :) oder?
    Wenn es für dich nicht soviel Aufwand macht, dann würde ich noch einen oder zwei Parameter hinzufügen, wo man dies Regeln kann. (Nur Gruppen Rekusiv anzeigen, nur User anzeigen, wenn beide TRUE, dann beide anzeigen). Nur ein Vorschlag :)

    Oder sollte dies schon der 3 Parameter ($bListInherited) festlegen?
    Wenn ja, dann scheint er nicht zu funktionieren (bei mir).

    Wieder mal vielen Dank!


    Gruß
    GerhardSchr


    //Edit: habe gerade bemerkt, dass nach dem Update der AD.au3 _AD_RecursiveGetMemberOf nicht mehr funktioniert. Anscheinend hat sich dort auch etwas geändert?

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 2. Juni 2013 um 21:00

    ich werde mir das nochmal genauer anschauen, ob da nicht noch irgendetwas anderes falsch ist.

    Ich werde mal testgruppen/user anlegen.

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • GerhardSchr
    • 29. Mai 2013 um 13:14

    stimmt sind die Beispiele :)

    ich habe mir mal eine übergangslösung für _AD_RecursiveGetGroupMembers gebastelt:

    [autoit]

    $test = _AD_RecursiveGetGroupMembers ("ShareManagement_Nas_Drucker")
    _ArrayDisplay ($test)

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

    Func _AD_RecursiveGetGroupMembers ($group)
    If Not IsDeclared ("groups") Then Global $groups[1]

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

    $tmpgroups = _AD_GetGroupMembers ($group)

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

    $fqdn = 0

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

    For $tmpgroup = 1 To UBound ($tmpgroups) -1
    If _AD_GetObjectClass ($tmpgroups[$tmpgroup]) == "user" Then
    If $fqdn = 1 Then
    ;~ MsgBox (0, "Ist ein user (mit fqdn)", $tmpgroups[$tmpgroup])
    _ArrayAdd ($groups, $tmpgroups[$tmpgroup])
    Else
    ;~ MsgBox (0, "Ist ein user (ohne fqdn)", _AD_FQDNToSamAccountName ($tmpgroups[$tmpgroup]))
    _ArrayAdd ($groups, _AD_FQDNToSamAccountName ($tmpgroups[$tmpgroup]))
    EndIf

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

    Else
    ;~ MsgBox (0, "ist eine Gruppe", $tmpgroups[$tmpgroup])
    _AD_RecursiveGetGroupMembers ($tmpgroups[$tmpgroup])
    EndIf
    Next

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

    _ArrayUnique ($groups)
    _ArraySort ($groups)

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

    Return $groups
    EndFunc

    [/autoit]

    Allerdings scheint sie mir sehr langsam zu sein :P
    Und ein Username filtert _ArrayUnique auch nicht raus komischerweiße... obwohl er völlig gleich (der selbe) ist.
    Bei allen anderen doppelten funktioniert es :P

    Und IsDeclared funktioniert anscheinend nicht mir local, daher habe ich da mal global benutzt :P


    Gruß
    GerhardSchr

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™