Active Directory: per AutoIt globale Gruppe einer lokalen Gruppe hinzufügen

  • Hallo zusammen,

    stehe aktuell vor dem brennenden Problem, dass ich in einem grossen Active Directory Unmengen globaler Gruppen einigen wenigen lokalen Gruppen hinzufügen muss. Von Hand kann man das nur schwer in "endlicher Zeit" erledigen ;)

    Die von mir bereits verwendete UDF-Library "adfunctions.au3" bietet nur die Funktion "_ADAddUserToGroup", die hervorragend User zu Gruppen hinzufügt, bei dem Versuch, eine Gruppe einer anderen hinzuzufügen, aber (zwangsläufig?) versagt.

    Bei der Google-Suche hab ich nur eine Seite mit einem VBS-Script gefunden, was offenbar das erledigen kann, was ich gern möchte:
    http://www.visualbasicscript.com/m_26817/tm.htm

    Leider bin ich in Sachen "kryptische VBS-Syntax" eher ahnungslos... kann mir jemand auf die Sprünge helfen oder vielleicht sogar das VBS-Script in AutoIt übersetzen? Wäre klasse!


    Grüssings
    Pumbaa

    Einmal editiert, zuletzt von Pumbaa (3. Januar 2009 um 16:31)

  • Hallo,

    hmm... die "DB" sind einfach nur generierte Textdateien, die im CSV-Format (Felder durch Semikolon getrennt) vorliegen.

    Die lokalen und globalen Gruppen sind bereits im AD angelegt, es geht halt jetzt darum, eine globale Gruppe einer lokalen Gruppe hinzuzufügen.

    Also z. B.
    "A_globaleGruppe" hinzufügen zu "B_lokaleGruppe_Lesen"
    oder
    "X_globaleGruppe" hinzufügen zu "B_lokaleGruppe_Schreiben"

    Mit der Microsoft-AD-Konsole funktioniert das problemlos, ich suche jetzt nach einer Möglichkeit, das Ganze ohne wilde Mausschubserei mit AutoIt zu automatisieren - sonst klick ich nämlich noch bis Ende der nächsten Woche im AD herum...


    Grüsse
    Pumbaa

  • lies einfach die ausgangs DB ein,und trenne die variablen,
    anschließend sortierst du in einer loop die globalen, den lokalen hinzu, sollte leicht zu bewerkstelligen sein

    [autoit]


    $input = fileread("ausgangsdb.csv")
    $in_Array = stringsplit($input,";")

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

    for $i = 1 to $in_Array[0]
    filewriteline("zielDB.csv")
    next
    msgbox(0,"Fertig","Erledigt!")

    [/autoit]

    weiß jetzt nicht wie deine ziel DB aufgebaut ist muss du halt anpassen ^^

  • Hallo azunai,

    danke für Deine flotte Hilfe, allerdings glaub ich, dass wir aneinander vorbei geredet haben!

    Das Auslesen meiner CSV-Textdateien und das Splitten der Einträge ist nicht das Problem, das ist ja simples Handling von Textdateien und Nutzung der internen Stringfunktionen von AutoIt.

    Mein Problem liegt darin, dass ich nicht weiss, wie ich die dann in meinen Arrays enthaltenen Werte ins Active Directory schiesse... hat also mit Datenbanken gar nix zu tun, es geht um dieses dösige Microsoft Active Directory...

    Mein aktueller Stand der Dinge ist dieser hier (hab's als Erweiterung der UDF-Library "adfunctions.au3" konzipiert):

    [autoit]


    Func _ADAddgGroupTolGroup($ggroup, $lgroup)
    $oggroup = ObjGet("LDAP://" & $strHostServer & "/" & _ADSamAccountNameToFQDN($ggroup)) ; $ggroup in FQDN wandeln und Infos über lokale Gruppe holen
    $olgroup = ObjGet("LDAP://" & $strHostServer & "/" & _ADSamAccountNameToFQDN($lgroup)) ; $lgroup in FQDN wandeln und Infos über globale Gruppe holen
    $olgroup.Add ($oggroup.AdsPath) ; Infos der globalen Gruppe der lokalen Gruppe hinzufügen
    $olgroup.SetInfo
    $oggroup = 0
    $olgroup = 0
    EndFunc ;==>_ADAddgGroupTolGroup

    [/autoit]

    Jetzt funzt der ganze Trödel endlich und ich komme mit meinem Projekt weiter...


    Grüsse
    Pumbaa

    Einmal editiert, zuletzt von Pumbaa (3. Januar 2009 um 16:52)