Simple Geschichte eig.
Ich möchte halt etwas in Abhängigkeit machen, ob eine Bedinung erfüllt ist, oder nicht. Das wollte ich mit If Not machen.
Das funktioniert aber nicht. Dann mal gegooglet, gesehen dass man es auch mit <> machen kann (muss?).
Funktioniert aber auch nicht wie es soll :pinch:
Das habe ich:
Spoiler anzeigen
Local $tmp = @ScriptDir & "\tmp.txt"
Local $atmp
_FileReadToArray($tmp, $atmp)
Global $pfad = "G:\Installationen\Installationen.exe"
Global $abenutzername[4] = ["Benutzer1", "Benutzer2", "Benutzer3", "Benutzer4"]
For $e = 1 To Ubound($atmp) - 1
For $r = 0 To Ubound($abenutzername) - 1
If $abenutzername[$r] <> $atmp[$e] Then
MsgBox(0, "", "Sie sind zur Installation nich berechtigt!")
Exit
EndIf
Next
Next
Sinn davon: Von einem RunAs-Script wo Benutzer und PW abgefragt und in eine
Variable geschrieben werden, wird der Benutzer bzw. die Variable wo der Benutzer drin
ist in eine temporäre Textdate (tmp.txt) geschrieben. Dieser Benutzer wird nochmal beim start des
aufgerufenen Script abgefragt und mit den 4 Benutzern im Array verglichen. Stimmt der Benutzer
in der tmp-Datei mit keinem der 4 ein beendet sich das Script mit einer Fehlermeldung.
Sinn hiervon ist wiederum, dass das aufzurufende Script nicht ohne das RunAs-Script gestartet werden
soll.
Edit: Starten tut Ubound bei 1 und nicht bei null weil in der ersten Zeile, warum auch immer, die
Anzahl der Zeilen, also 1, steht. Die tmp-Daei wird nach dem erfolgreichen Programmaufruf
natürlich gelöscht.