If oder If Not - das ist hier die Frage

  • [autoit]

    Global $sUser = EnvGet("Username")
    MsgBox($sUser)
    Global $pfad = "G:\Installationen\Installationen.exe"
    Global $abenutzername[3] = ["autoBert", "i2c", "m-obi"]

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

    _ArraySearch($abenutzername, $sUser)
    If @error Then
    MsgBox(0, "angemeldet als " & $sUser, "Sie sind zur Installation nich berechtigt!")
    Exit
    EndIf

    [/autoit]

    Das geht doch auch einfacher, einfach versuchen einen Regkey unter HKLM zu schreiben, klappts ist er Admin und darf installieren.
    Nein keine Rechte = Ende. oder sollen wirklich die Namen abgeprüft werden? Versethe den Sinn nicht wirklich weil die Berechtigungen löst man ja eigentlich mit Win.
    Und die User die dann installieren dürfen kommen in die lokale AdminGruppe o.ä. DomänenGruppe in lokale AdminGruppe.

    RequireAdmin wäre auch ne Idee obwohl och den penetranten Dialog echt abschreckend finde. :rofl:

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Ich denke, du verwendest

    Code
    _ArrayUnique


    Dieses setzt an die erste Position des Arrays, die Anzahl an zurückgegebenen Strings...

    Um nochmal ein vorhandenes Problem aufzugreifen ohne einen neuen Thread zu eröffnen: Wie bekomme ich die Zahl an erster Stelle nun hinaus?

    Spoiler anzeigen
    [autoit]

    Local $tmp = @ScriptDir & "\tmp.txt"
    Local $atmp
    Global $pfad = "G:\Installationen\Installationen.exe"
    Global $abenutzername[4] = ["User1", "User2", "User3", "User4"]
    _FileReadToArray($tmp, $atmp)
    Local $bAllowed

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

    For $r = 1 To Ubound($abenutzername) - 1
    If $atmp = $abenutzername[$r] Then
    $bAllowed = True
    ExitLoop
    EndIf
    Next

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

    if not $bAllowed then
    MsgBox(0, "", "Bitte Programm mit RunAs starten!")
    exit
    EndIf

    [/autoit]


    In der tmp-Datei steht ein Benutzer der von meinem runas-Script darei geschrieben wurde. Nur wenn der Benutzer darin steht, soll das andere Script geöffnet werden können. Wenn das Script also ohne das RunAs-Script versucht wird aufzurufen, soll es eine Fehlermeldung geben. Prinzipiell kann ich die Schleife doch auch in Zeile 1 starten lassen mit For $r = 1, oder nicht? Funktioniert aber nicht. der Fehler wird immer ausgegeben, auch wenn einer der 4 Benutzer in der tmp.txt steht...