Benutzer-Anmeldescript unter Windows 2000/2003 Server

  • Hallo zusammen,

    bin noch neu hier (programmiere aber mit AutoIt schon seit einem Jahr), konnte aber zu meinem Problem nichts finden, vielleicht hilft mir jemand. Also:

    Ich möchte mit AutoIt ein Anmeldescript (Windows 2000/2003 Server) schreiben, damit es kompiliert werden kann und nicht wie bei VBS oder Kix als lesbare Textdatei gespeichert wird. Dieses ist notwendig für Passwortabfragen ! Leider finde ich jedoch keine Funktion, die mir die Gruppenmitgliedschaft des angemeldeten Benutzers ausliest. Ich bin jetzt über den Weg gegangen, mir mit dem "IFMEMBER.EXE" aus dem Ressourcekit eine temporäre Textdatei zu erstellen und diese entsprechend auszulesen und zu prüfen. Nun finde ich dieses aber recht umständlich, erst Textdatei erstellen, Ifmember.exe muss auch verfügbar sein, zudem auch im NETLOGON-Verzeichnis. Ich habe im Anhang mal mein Script beigefügt. Aufgerufen wird die Funktion mit _mkMemberofGroup("<zu prüfender gruppenname>"). Als Ergebnis wird 1 = Benutzer ist in Gruppe enthalten bzw. 0 = Benutzer ist nicht in der Gruppe enthalten geliefert. Das ganze funktioniert sehr gut, aber geht es auch eleganter, das heißt ohne "ifmember.exe" ?

    Danke für eure Hilfe !

  • Mhm steht die gruppenmitgliedschaft nicht auch in der Registry?
    dann könntest du den wert darüber auslesen.

    • Offizieller Beitrag
    [autoit]

    ; Generated by AutoIt Scriptomatic

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

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

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

    $Output=""
    $Output = $Output & "Computer: " & $strComputer & @CRLF
    $Output = $Output & "==========================================" & @CRLF
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_GroupUser", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

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

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output = $Output & "GroupComponent: " & $objItem.GroupComponent & @CRLF
    $Output = $Output & "PartComponent: " & $objItem.PartComponent & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_GroupUser" )
    Endif

    [/autoit]
  • Hi,

    es gibt das Programm BAT2EXEC.COM, das Batchdateien in EXE-Dateien konvertiert, so dass man den Inhalt nicht mehr lesen kann. Ich habe aber keine Ahnung, wie sicher das Ganze ist.

    Gruß, Milko

  • Hallo zusammen,

    erst einmal vielen Dank für eure Antworten.

    @th.meger: ich denke schon, wenn ich die autoit-Datei in eine *.exe kompiliere, dass ein normaler Anwender diese nicht so einfach sichtbar machen kann, zumindest nicht, wenn ich die Dekompilierung der exe-Datei unterbinde. Aber trotzdem Danke für den Hinweis!

    milko: auch Dir vielen Dank für den Hinweis, jedoch damit habe ich schon experimentiert. Diese Variante scheidet aus, da ich bei der Batch-Programmierung ebenfalls auf die Zusatzprogramme zurückgreifen muss und diese werden bei der Kompilierung nicht mit eingebunden. Außerden ist die Batch-Programmierung nicht so kompfortabel wie AutoIt, und ich bin ein Fan von AutoIt

    @Aiden: dass die Gruppenmitgliedschaft in der Registrierung steht, mag vielleicht sein, jedoch ist sie dann verschlüsselt gespeichert und damit kann ich dann nicht wirklich etwas anfangen. Ich habe bei mir in der Registry leider nicht den passenden Eintrag gefunden.

    BugFix : auf deine Hilfe hatte ich insgeheim gehofft. Du bist hier wirklich ein Genie. Deine Lösung liefert mir genau das, was ich suche, ich muss das Script nur noch ein wenig verändern, da es mir schon definitiv zu viel liefert. Vielen, vielen Dank, hast mir sehr weitergeholfen.

    @Alle: Nochmals: besten Dank für Eure Antworten, ich denke, die endgültige Einrichtung kann ich jetzt selbst lösen.

    Bis dahin....


    Beste Grüße aus der Region Hannover !

    Mirko Kühne

    • Offizieller Beitrag
    Zitat

    Original von Mirko.Kuehne
    @th.meger: ich denke schon, wenn ich die autoit-Datei in eine *.exe kompiliere, dass ein normaler Anwender diese nicht so einfach sichtbar machen kann, zumindest nicht, wenn ich die Dekompilierung der exe-Datei unterbinde. Aber trotzdem Danke für den Hinweis!

    Hi,

    Kennst du Nienburg?

    So long,
    Mega