Domainlogonscript

  • Ich will ein neue Logonscript per Autoit nutzen. Ich möchte gerne per Gruppenauswahl die Laufwerke des User zuordnen. Soweit die Freigabe dem Gruppenname enstpricht ist das ja auch einfach wie an diesem Beispiel zu sehen. Nun würde ich aber noch gerne den Laufwerksbuchstaben aus dem Gruppenfeld holen, z.B. aus dem Beschreibungsfeld, hat jemand eine Idee wie ich das auslesen könnte?

    [autoit]


    #include <AD.au3>
    #include <Array.au3>
    #include <String.au3>
    _AD_Open()
    $aUser = _AD_GetUserGroups(@UserName)
    _AD_Close()
    For $t = 1 to UBound($aUser)-1
    $drive=StringRegExp($aUser[$t], '\QCN=\E(.+?)\Q,\E', 1)
    if IsArray($drive) Then
    DriveMapAdd("*", @LogonServer&"\"&$drive[0]); hier würde ich gerne das * durch eine Eintrag aus dem Gruppe tauschen
    EndIf
    next

    [/autoit]
  • Mit der Funktion _AD_GetObjectAttribute kannst Du einzelne Attribute wie z.B. "description" eines Objektes auslesen.

  • Ich habe mir die neue AD.au3 runtergeladen und kann nun auch das Object "GetObjectAttribute" nutzen, nur mache ich noch was falsch:

    [autoit]


    #include <AD.au3>
    #include <Array.au3>

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

    _AD_Open()
    $aUser = _AD_GetUserGroups(@UserName)
    _AD_Close()

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

    For $t = 1 to UBound($aUser)-1
    ConsoleWrite($aUser[$t]&@CRLF)
    ConsoleWrite(_AD_GetObjectAttribute($aUser[$t], "description")&@CRLF)
    next

    [/autoit]
  • Du musst das _AD_Close an das Ende des Skripts setzen, da diese Funktion die Verbindung zum AD beendet.

  • sorry Fehler bei "Copy/Paste" geht trotzdem noch nicht:

    [autoit]


    #include <AD.au3>
    #include <Array.au3>
    _AD_Open()
    $aUser = _AD_GetUserGroups(@UserName)
    For $t = 1 to UBound($aUser)-1
    ConsoleWrite(_AD_GetObjectAttribute($aUser[$t], "description"))
    next
    _AD_Close()

    [/autoit]
  • Probier's mal mit dieser Version. Die gibt auch noch den Fehlercode mit aus:

    [autoit]

    #include <AD.au3>
    #include <Array.au3>
    _AD_Open()
    $aUser = _AD_GetUserGroups(@UserName)
    For $t = 1 to $aUser[0]
    $sDescription = _AD_GetObjectAttribute($aUser[$t], "description")
    ConsoleWrite($sDescription & " Error: " & @error)
    Next
    _AD_Close()

    [/autoit]
  • Ohne UDFs kannst Du die Gruppenzugehörigkeiten so abfragen ...

    [autoit]


    Dim $ADInfo = ObjCreate('ADSystemInfo')
    Dim $currentUser = ObjGet(StringFormat('LDAP://%s', $ADInfo.UserName))

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

    For $grp in $currentUser.Groups
    ConsoleWrite(StringFormat('%s (%s)\n', $grp.cn, $grp.description))
    Next

    [/autoit]
  • _mk_

    Danke das ist noch schöner :) so.
    Läuft so !!!

    [autoit]


    Dim $ADInfo = ObjCreate('ADSystemInfo')
    Dim $currentUser = ObjGet(StringFormat('LDAP://%s', $ADInfo.UserName))
    For $grp in $currentUser.Groups
    $freigabe=(StringFormat('%s', $grp.cn))
    $laufwerksbuchstabe=(StringFormat('%s', $grp.description))
    if $laufwerksbuchstabe = "w" then
    $ok=DriveMapAdd($laufwerksbuchstabe&":", @LogonServer&"\"&$freigabe)
    EndIf
    Next

    [/autoit]