Array1(AD Auswertung) mit Array2(iniFile Section) vergleichen

  • Hallo an alle :D

    Ich steh mit dem Array etwas auf dem Kriegsfuss...... *hugh*

    also ich muss 2 Array vergleichen --> eigentlich nicht so schwierig.
    ABER:
    meine Problematik stellt sich so dar:
    Ich bastle ja an einem logonscript das sehr flexible sein soll.
    d.H. ich muss und möchte im script so wenig wie möglich ändern müssen wenn sich was neues ergibt. die konfiguration soll sich auf das AD und einem IniFile beschränken

    und jetzt zu meinem Fall konkret ein Beispiel:

    Ein User der Finanzabteilung ist im AD einer bzw mehrerer Gruppen zugeordnet z.B.( FINANZ_GROUP, UVW_GROUP,BANKING_GROUP)
    dieser user soll Netzwerk-Lauferke verbunden bekommen
    (INIFile)
    UVW_GROUP=%Fileserver1%\YD$\%USERNAME% -->Y:\
    ALG_GROUP=%Fileserver2%\Daten$ -->V:\
    BANKING_GROUP=ºnkingserver%\elba5 -->T:\

    Beide Array's können unterschiedlich groß sein.
    So Ich will jetzt das sich die beiden Array vergleichen

    wenn ein wert gleich ist (z.B. (AD)UVW_GROUP <--> (INI) UVW_GROUP)
    dann soll vom INI-ARRAY der wert %Fileserver1%\YD$\%USERNAME% übernommen werden und ein

    [autoit]

    DriveMapAdd("Y:", "\\"&$Fileserver1&"\YD$\$USERNAME")

    [/autoit]


    gemacht werden.

    wenn sich mehrere Werte gleichen (z.B. (AD)UVW_GROUP <--> (INI) UVW_GROUP, (AD)BANKING_GROUP <--> (INI) BANKING_GROUP )
    dann soll es (dem beispiel nach)

    [autoit]

    DriveMapAdd("Y:", "\\"&$Fileserver1&"\YD$\$USERNAME")
    DriveMapAdd("T:", "\\"&$Bankingserver&"\elba5")

    [/autoit]


    Ich hoff Ihr hab meine Problematik verstanden

    lg
    TOM

  • ah was ich noch schreiben wollte ist:

    das INI File schaut so aus:

    und

    die Auswertung aus dem AD:(die meinige jetzt)

    Code
    [1]|CN=MSSQL$2k8,CN=Users,DC=d,DC=d,DC=d,DC=d
    [2]|CN=ITSC_Helpdesk,OU=Groups,OU=ITSC,OU=_OE,DC=d,DC=d,DC=d,DC=d
    [3]|CN=SophosAdministrator,OU=Users,OU=_Admins,DC=d,DC=d,DC=d,DC=d
    [4]|CN=Account Operators,CN=Builtin,DC=d,DC=d,DC=d,DC=d
    [5]|CN=Distributed COM Users,CN=Builtin,DC=d,DC=d,DC=d,DC=d
    [6]|CN=Administrators,CN=Builtin,DC=d,DC=d,DC=d,DC=d

    lg

  • Ich habs bis jetzt so versucht:

    Auslesen bzw. befüllen der Arrays:

    [autoit]

    _ADGetUserGroups($avGroups, $USR)
    Local $INIREADARR = IniReadSection($INIFILE, "GROUPPATH")

    [/autoit]

    dann versuche ich einen Index zum vergleichen zu machen

    [autoit]

    Local $iIndex_avGroups = _ArraySearch($avGroups, $sSearch, 0, 0, 0, 1)
    MsgBox(0, "DEBUG_$iIndex_avGroups", $iIndex_avGroups)
    Local $iIndex_INIREADARR = _ArraySearch($INIREADARR, $sSearch, 0, 0, 0, 1)
    MsgBox(0, "DEBUG_$iIndex_INIREADARR", $iIndex_INIREADARR)

    [/autoit]

    aber dann komm ich nicht weiter.... bzw wie kann ich die Variable $sSearch befüllen ????

    • Offizieller Beitrag

    Also, wenn ich das jetzt richtig verstanden hab, suchst du sowas:

    [autoit]

    #include <array.au3>
    Local $arAD[6] = [ _
    'CN=UVW_GROUP,CN=Users,DC=d,DC=d,DC=d,DC=d', _
    'CN=ITSC_Helpdesk,OU=Groups,OU=ITSC,OU=_OE,DC=d,DC=d,DC=d,DC=d', _
    'CN=SophosAdministrator,OU=Users,OU=_Admins,DC=d,DC=d,DC=d,DC=d', _
    'CN=Account Operators,CN=Builtin,DC=d,DC=d,DC=d,DC=d', _
    'CN=BANKING_GROUP,CN=Builtin,DC=d,DC=d,DC=d,DC=d', _
    'CN=Administrators,CN=Builtin,DC=d,DC=d,DC=d,DC=d']
    Local $arGroupUser[4][2] = [ _ ; Auslesen INI
    [3], _
    ['UVW_GROUP','\YD$\'], _
    ['ALG_GROUP','\Daten$'], _
    ['BANKING_GROUP','\elba5']]
    Local $arMap[1]
    For $i = 0 To UBound($arAD) -1
    $arTmp = StringSplit($arAD[$i], ',')
    $search = StringTrimLeft($arTmp[1], 3)
    $indx = _ArraySearch($arGroupUser, $search)
    If Not @error Then _ArrayAdd($arMap, $arGroupUser[$indx][1])
    Next
    _ArrayDisplay($arMap) ; mit dem Array kannst du dann das Mapping ausführen

    [/autoit]