Autostart einer App mit Adminrechten bei Windows-Start (Windows 11 Pro)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Autostart einer App mit Adminrechten bei Windows-Start (Windows 11 Pro)

    Hallo Leute,

    ich programmiere gerade ein Steuergerät, welches auf Windows 11 PRO läuft und welches ausschließlich dazu da ist meine Software auszuführen.
    Der einzige aktive Windows Benutzer hat Adminrechte, aber kein Kennwort (ist so gewollt).

    Nun musste ich meiner Software im Manifest Adminrechte geben, damit ich einen HTTPListener verwenden kann. Das funktioniert soweit super.

    Nun möchte ich aber, dass bei einem Windows Neustart die Software automatisch gestartet wird.
    Da die Software aber Admin-Rechte im Manifest hat, startet diese nicht wie gewohnt über den Autostart-Ordner.

    Welche Möglichkeit habe ich hier, die Anwendung automatisch bei Programmstart zu starten?
    Aufgabenplanung kann ich vergessen, da ich da einen Windows-Benutzer MIT Passwort benötige.

    Ich habe daran gedacht eine kleine Startapp zu schreiben, die soll im Autostart gestartet werden.
    Die soll dann die Hauptanwendung mit process.start starten. (hab ich noch nicht probiert - wird aber wohl auch nicht gehen).

    Was fällt Euch hier noch ein? Wie kann ich das machen?

    EDIT: konnte es lösen.
    Eine kleine Anwendung geschrieben die keine Admin-Rechte hat und im Autostart-Ordner liegt.
    Diese startet per Process.start die Anwendung mit Admin-Rechten.
    Dachte nicht, dass das so möglich ist ;)
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dive26“ ()

    dive26 schrieb:

    Die soll dann die Hauptanwendung mit process.start starten. (hab ich noch nicht probiert - wird aber wohl auch nicht gehen).


    Doch das sollte gehen, wenn du in der "StartApp" die Process-Klasse verwendest und dessen ProcessStartInfo.Verbs den Wert "runas" gibst, sollte UAC erscheinen und bei Bestätigung wird der Process mit Admin-Priviliegien gestartet. Ich würde das einfach mal probieren. Sollte es nicht gehen, sag nochmal Bescheid, ich schau dann mal.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D
    Für diese Art von Software lohnt es sich eigentlich, ein Windows Service zu schreiben. Die sind genau dafür da.

    Wenn es sich hier um ein (traditionelles) Steuergerät handelt, dann wird die meiste Zeit kein Nutzer aktiv drauf zugreifen. In dem Fall ist es sinnvoll, dass die Applikation schon bei Windows Start angestartet wird.

    Anderenfalls kann man noch die Windows Aufgabenplanung verwenden, die im Endeffekt das Gleiche macht.

    Hier selber eine Lösung zusammenschustern ist eher suboptimal.

    Quelle: ich schreibe professionell Steuergerätesoftware :)
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    @siycah
    "Steuergerät" ist vielleicht etwas zu wenig ausgedrückt.

    Eine PV-Anzeige mit Benutzerinteraktion, Überschuss-Steuerung, Smarthome-Funktionen, Webserver und vielem mehr.
    Habe es für mich nun so gelöst, dass eine Start-App in der Autostart liegt.
    Diese startet nicht nur die Haupt-App, sondern bietet am Desktop noch einen riesigen Button um die App oder den Support (Fernwartung) zu starten, wenn man Sie manuell beendet hat (warum auch immer).
    Die kleinen Desktop-Icons (5,5" Touchscreen) sind sonst eine reine "Fuchtelei".
    Bilder
    • BOPVUNOROH (5).jpg

      2,51 MB, 3.213×2.358, 42 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Du könntest auch einfach ein non-privileged Port für deinen HTTPListener verwenden, dann kann es auch von einem normalen Benutzer gestartet werden.
    @slice
    Leider bin ich auf den normalen 80er Port gebunden, da ein bereits existierendes Produkt auch darauf zugreift und das nicht mehr geändert wird.
    Funktioniert aber nun für mich so einwandfrei. Danke vielmals.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at