Programm mit AdminRechten automatisch starten

    • Offizieller Beitrag

    Ich möchte, dass sich mein Programm in den Windows-Autostart packen kann.
    Dazu rufe ich ein Hilfsprogramm auf:

    Spoiler anzeigen
    [autoit]


    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=gfx\clock.ico
    #AutoIt3Wrapper_outfile=SetAutoStart.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    If Not @Compiled Then Exit 0
    If $CmdLine[0] <> 1 Then Exit 0
    Switch $CmdLine[1]
    Case 1
    RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'Digitaluhr', 'REG_SZ', Chr(34) & @ScriptDir & '\Digitaluhr3.exe' & Chr(34))
    Case 0
    RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'Digitaluhr')
    EndSwitch

    [/autoit]


    Dort werden dann AdminRechte angefordert, damit der RegKey erstellt werden kann. Soweit funktioniert das Ganze auch. Allerdings benötigt mein Programm selbst AdminRechte, um die Uhrzeit (bei Bedarf) stellen zu können.
    Ich möchte aber kein #RequireAdmin ins Skript aufnehmen, weil ich dann jedes Mal beim Systemstart dieses bestätigen müsste.

    Also habe ich im Netz gesucht und bin auf die Aufgabenplanung gestossen. Dort kann man ein Programm automatisch mit AdminRechten starten lassen. Ausprobiert -> funktioniert. :)
    Aber...ich möchte das mit AutoIt automatisieren, sodass man als Benutzer nur einen Menüpunkt auswählen muss.
    Meine Frage ist nun:
    Wie kriege ich mein Programm in die Aufgabenplanung und wie kann ich das wieder entfernen?

    • Offizieller Beitrag

    Bei RunAs müsste ich das Admin-Passwort abfragen und irgendwo speichern. Ungünstig! :huh:
    Ich möchte es dem Benutzer ja möglichst erleichtern, damit er das Programm nicht selbst in die Aufgabenplanung packen muss (ist doch relativ kompliziert).

    Und beim Taskplaner finde ich auch keine Möglichkeit, um das Programm als Admin zu starten. Hmmm...

    Verdammt, das muss doch irgendwie gehen...

  • Das funktioniert auch :)

    Hier ein Beispiel um ein Script täglich um 3 Uhr auszuführen :)

    [autoit]

    ShellExecute("Schtasks.exe", '/create /sc TÄGLICH /tn NAMEDERAUFGABE /tr "PFADZUREXE" /ru ' & @LogonDomain & '\Administrator /rp DEINPASSWORT /st 15:00:00')

    [/autoit]

    21 is only half the truth.

  • Das kannst du in der Registry einstellen: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

    21 is only half the truth.

    • Offizieller Beitrag

    Hmm...Ich habe dort jetzt mal einen DWORD-Schlüssel "Period" erstellt (gab es nicht) und den Wert 65531 eingetragen. Danach einen Neustart durchgeführt.
    Im Einstellungsdialog habe ich dann die Uhrzeit aktualisieren lassen und dann kam das:
    autoit.de/wcf/attachment/12730/
    Kann es sein, dass das unter Windows7 (64 Bit) nicht funktioniert?

  • Das mit schtasks funktioniert grundsätzlich schon, aber nur wenn der Benutzer lokaler Admin ist. (UAC darf eingeschaltet sein)

    Dann musst Du das Häkchen "mit höchsten Privilegien" setzen. Dann musst Du kein Passwort etc. speichern. Aber das #RequireAdmin braucht es natürlich um den Task erfolgreich zu erstellen! (Sonst kann das Häkchen nicht gesetzt werden!)


    Gruß Veronesi

  • Hi!


    Meine Idee wehr wenn du sowieso das eine Skript mit adminrechte ausführen läst(lassen musst) das, du zwei Funktionen im Sktipt hinterlegst endweder mit übergabe oder speicherung in einer Ini welche funk ausgeführt werden möge mit entsprechenden hinweis.

    Lg kleiner