Mein Ziel ist es, ein kleines Helferlein zu erstellen, das Schnellzugriffe auf admin. Tools ermöglicht, ohne jeweils das Admin-PW eingeben zu müssen. Da die User selbst keine Admins sind und das Tool für jeden frei zugänglich ist, muss der Aufruf des Hauptfensters zuvor per PW gesichert werden.
das Hauptfenster schaut so aus:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=icons\tool.ico
#AutoIt3Wrapper_Outfile=helferlein.exe
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Helferlein", 240, 190, 193, 225)
$Label1 = GUICtrlCreateLabel("(A) = wird als domain\Administrator ausgeführt", 16, 8, 400, 17)
$Button1 = GUICtrlCreateButton("CMD (A)", 20, 30, 90, 25, 0)
$Button2 = GUICtrlCreateButton("MMC (A)", 20, 60, 90, 25, 0)
$Button3 = GUICtrlCreateButton("Editor", 20, 90, 90, 25, 0)
$Button4 = GUICtrlCreateButton("Dienste (A)", 20, 120, 90, 25, 0)
$Button5 = GUICtrlCreateButton("Software (A)", 20, 150, 90, 25, 0)
$Button6 = GUICtrlCreateButton("Taskmanager (A)", 130, 30, 90, 25, 0)
$Button7 = GUICtrlCreateButton("Event Viewer (A)", 130, 60, 90, 25, 0)
$Button8 = GUICtrlCreateButton("MSTC", 130, 90, 90, 25, 0)
$Button9 = GUICtrlCreateButton("Anzeige (A)", 130, 120, 90, 25, 0)
$Button10 = GUICtrlCreateButton("Sys-Info", 130, 150, 90, 25, 0)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
RunAs("Administrator", "domain.local", "password", 0, "C:\Windows\system32\cmd.exe", "C:\Windows\system32")
Case $Button2
RunAs("Administrator", "domain.local", "password", 0, "C:\Windows\system32\mmc.exe", "C:\Windows\system32")
Case $Button3
Run("C:\Windows\system32\notepad.exe")
Case $Button4
RunAs("Administrator", "domain.local", "password", 0, "C:\Windows\system32\services.msc", "C:\Windows\system32")
Case $Button5
RunAs("Administrator", "domain.local", "password", 0, "rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl", "C:\Windows\system32")
Case $Button6
RunAs("Administrator", "domain.local", "password", 0, "C:\Windows\system32\taskmgr.exe", "C:\Windows\system32")
Case $Button7
RunAs("Administrator", "domain.local", "password", 0, "C:\Windows\system32\eventvwr.exe", "C:\Windows\system32")
Case $Button8
Run("C:\Windows\System32\mstsc.exe")
Case $Button9
RunAs("Administrator", "domain.local", "password", 0, "C:\Windows\system32\rundll32.exe shell32.dll, Control_RunDLL desk.cpl", "C:\Windows\system32")
Case $Button10
ShellExecute("msinfo32")
EndSwitch
WEnd
Alles anzeigen
Wie kann ich erreichen, dass vor dem Aufruf dieses Fensters ein PW-Abfragedialog erscheint? Ich fand hier schon einmal gute Möglichkeiten, kann die Tipps aber nicht sinnvoll einbinden, da es mir da doch an dem nötigen Wissen fehlt. Es soll nur das Hauptfenster per PW geschützt werden, danach ist die PW-Abfrage nicht mehr nötig, wenn die anderen Systemprogramme gestartet werden.
Eine weitere, nicht ganz so wichtige Frage:
In C:\windows liegt eine INI-Datei, aus der Zeile 2 ausgelesen werden soll. Die AutoIt-Hilfe gibt folgende Syntax aus, die ich abwandelte:
Local $file = FileOpen("c:\windows\Pex.INI" , 0)
; Prüfen, ob Datei eingelesen wurde
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
; Zeilen des Textes einlesen bis EOF
While 1
Local $line = FileReadLine($file)
If @error = -1 Then ExitLoop
MsgBox(0, "Zeile gelesen:", $line)
WEnd
FileClose($file)
Alles anzeigen
Mit dieser Syntax kann ich nur sämtliche Zeilen auslesen, die mir dann auch Zeile für Zeile ausgegeben werden, mir kommt es aber nur auf Zeile 2 an (es soll auch nur Zeile 2 ausgegeben werden). Ich probierte bereits alles mögliche aus, komme aber nicht weiter. Wie muss die Syntax ausschauen?
Danke vorab.