Hallo,
ich möchte bestimmten Usern die Möglichkeit geben Kennwörter zurücksetzten zu können. Die User sollen dabei keine AccountOp-Rechte haben. Leider kann ich dieses nicht über die Policies machen.
Somit bin ich auf AutoIT gestoßen und seit gestern versuche mich in "Programmierung" :-))
Haben nun zwei sicherlich DAU-Probleme:
1. Da ich nicht in der Lage bin eine Authentifizierung für die Berechtigten User durchzuführen, wollte ich dieses mit der Abfrage über @userName überprüfen. Hier scheitere ich an der If...Then-Scheife.
2. Beim 2ten Durchlauf While-Schleife werden die Variablen $userID und $newPWD nicht korrekt über GUICtrlRead eingelesen.
Was mache ich hier Falsch ?
Spoiler anzeigen
#include <GUIConstants.au3>
;GUI Anfang
GUICreate("Password",200,250)
;Beginn der Eingabemaske
GUICtrlCreateLabel("User-ID",10,30)
$userID = GUICtrlCreateInput("userID",100,30,70,20)
GUICtrlCreateLabel("Password",10,50)
$newPWD = GUICtrlCreateInput("password",100,50,70,20)
GUICtrlSetState(-1,$GUI_CHECKED)
$setbutton = GUICtrlCreateButton ("Set",30,150,70,20)
GUICtrlSetState(-1,$GUI_FOCUS)
$cancelbutton = GUICtrlCreateButton ("Cancel",110,150,70,20)
if @UserName <> ("name1" or "name2" or "name3";) Then
MsgBox(48,"Sorry :-)", "This Tool ist not for you! (" & @UserName & ";)";)
GUIDelete()
Exit
Else
GUISetState ()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Then ExitLoop
If $msg = $setbutton Then
RunAsSet("accountoperator", "Domäne", "Kennwort",2)
[/autoit] [autoit][/autoit] [autoit]$userID=GUICtrlRead($userID)
$newPWD=GUICtrlRead($newPWD)
MsgBox(0,"Sie haben eingegeben" , "UserID: " & $userID & " newPWD: " & $newPWD)
RunWait(@COMSPEC & " /c dsquery user -samid " & $userID & ">userDN.txt","",@SW_HIDE)
$file = FileOpen("userDN.txt", 0)
$line = FileReadLine($file)
$userDN = $line
FileClose($file)
FileDelete("userDN.txt";)
If $userDN <> "" Then
$tempVAR1 = ("dsmod user "& $userDN)
$changebefehl= ($tempVAR1 & " -pwd " & $newPWD)
RunWait(@COMSPEC & " /c echo " & $changebefehl &">befehl.cmd","",@SW_HIDE)
RunWait(@COMSPEC & " /c befehl.cmd >report.log","",@SW_HIDE)
FileDelete("befehl.cmd";)
Else
MsgBox(0, "Error", "Wrong UserID (" &$userID & ";)";)
EndIf
EndIf
WEnd
EndIf
GUIDelete()
Exit
Danke & Viele Grüße aus Aachen,
Dimi