Forum: PC-Programmierung Autostart mit Admin-Rechten funktioniert nicht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Klaus R. (klara)


Lesenswert?

Hallo,
es geht um ein VB.Net Programm das ich unter Visual Studio 2022 und 
Windows 11 programmiert habe. Einen Autostart habe ich schon jahrelang 
per Registry Eintrag am Laufen. Die Anwendung ist mit der Zeit 
gewachsen.

Gelegentlich gibt es Probleme mit den USB-Ports. Entweder startet man 
den Rechner neu oder benutzt den Usb Device Tree Viewer von Uwe Sieber. 
Als Admin gestartet kann man da Ports und Device restarten. Das erspart 
das Neubooten des Rechners.

Jetzt möchte ich aber auch das Usb Restart Tool von Uwe Sieber aus 
meinem Programm heraus für die Reparatur eines USB-Ports verwenden. 
Damit müßte selbst die Anwendung nicht neugestartet werden, sondern nur 
der Thread.

Dazu habe ich Im Manifest "requireAdministrator" eingetragen. In einem 
kleinen Testprogramm läuft es mit Admin-Rechten einwandfrei.

Ich arbeite als lokaler Administrator. Bei dem Start des Progamms werde 
ich jeweils zuvor gefragt ob ich es als Adminstrator starten will. Das 
kann man wohl leider nicht umgehen.

Und auch beim Autostart gibt es mit dem Admin-Programm ein Problem. Der 
Autostart wird nicht ausgeführt.

Bisher erfolgte der Registry-Eintrag in:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Dieser Eintrag ist für Mitglieder der Gruppe Administratoren gedacht:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Aber auch wenn ich die letzte Methode anwende erfolgt kein Autostart.
In den Windows Ereignissen findet man auch keine Meldungen dazu.

Nun könnte man die Anwedung über einen Batch starten und den Batch im 
Autostart eintragen. Ich befürchte dies geht auch nicht.

Wie macht man es richtig?
mfg Klaus

von Hmmm (hmmm)


Lesenswert?

Klaus R. schrieb:
> Wie macht man es richtig?

Task Scheduler mit dem passenden Trigger.

von Klaus R. (klara)


Lesenswert?

Hmmm schrieb:
> Klaus R. schrieb:
>> Wie macht man es richtig?
>
> Task Scheduler mit dem passenden Trigger.

Vielen Dank.

Ich habe schnell etwas gefunden.
https://armann-systems.com/wiki/aufgabenplanung-mit-dem-windows-task-scheduler/

Danach bin ich über "Weitere Informationen" auf diesen Link gestoßen.

https://www.computerbild.de/artikel/cb-Tipps-Software-Windows-Aufgabenplanung-Tutorial-die-besten-Tipps-30075153.html
1
Die Aufgabenplanung ist ein wichtiges Rückgrat im Windows-Funktionskomplex. Programme starten dank des Features nämlich unter Umständen UAC-los (User Account Control), also ohne Warnmeldungen der Benutzerkonten-Steuerung. Diese (lästigen) Prompts erscheinen, wenn eine systemnahe Software wie der Eusing Free Registry Cleaner Administrator-Rechte anfordert. Der Taskplaner erlaubt es, solche Nervereien gar nicht erst aufpoppen zu lassen. Die UAC bleibt dabei aktiviert und Ihr PC geschützt.

Das wäre ja genau was ich Suche.
1
Bevor es losgeht mit den Tipps, die wir unter Windows 7, Windows 8.1 und Windows 10 21H2 sowie Windows 11 21H2 erprobt haben, sei auf eine Gratis-Alternative zur Aufgabenplanung hingewiesen: Aborange Scheduler. Das Tool ist leichter bedienbar. Die Funktionsfülle liegt hinter dem Original, es gibt aber einen praktischen Mehrwert: Bei Bedarf führt die Anwendung einen Programmaufruf wiederholt alle x Minuten aus.

Was ist zum "Aborange Scheduler" zu sagen?

Geht es damit auch UAC-los (User Account Control), also ohne 
Warnmeldungen der Benutzerkonten-Steuerung?

mfg Klaus

: Bearbeitet durch User
von Klaus R. (klara)



Lesenswert?

Hallo,
ich habe ein Testprogramm in der Aufgabenplanung unter "Einfache Aufgabe 
erstellen" installiert. Das hat soweit funktioniert.

Das Programm soll ja beim Booten des Rechners gestartet werden. So wie 
ich das schon beim Autostart hatte. Dort konnte ich mich auch beim Start 
als Benutzer anmelden und das Programm erschien etwas verzögert auf dem 
Desktop. Das ist ja auch OK.
Jetzt ist es so, ich bin nach dem Booten auf dem Desktop, im Taskmanager 
sieht man auch das Programm (Test_Adm_invoker.exe) aber ohne dessen 
Desktop. Es ist so als ob es als Dienst laufen würde.

In der Aufgabenplanung kann ich das Programm auch sofort ausführen 
lassen. Dann zeigt es sich wie gewohnt. Es läuft mit Admin-Rechten und 
ein ausgewählter USB-Port läßt sich ohne Fehler Re-Starten.

Ist das typisch für "Einfache Aufgabe erstellen"?
mfg Klaus

PS: Im Manifest ist "requireAdministrator" eingetragen.

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Klaus R. schrieb:
> Ist das typisch für "Einfache Aufgabe erstellen"?
> mfg Klaus

Ja, zu dem Zeitpunkt wo das Program startet gibt es noch keinen Desktop. 
Schon mal den Trigger "Bei Anmeldung" probiert?

von Hmmm (hmmm)


Lesenswert?

Klaus R. schrieb:
> Jetzt ist es so, ich bin nach dem Booten auf dem Desktop, im Taskmanager
> sieht man auch das Programm (Test_Adm_invoker.exe) aber ohne dessen
> Desktop. Es ist so als ob es als Dienst laufen würde.

Soweit ich mich erinnern kann, lassen sich Start beim Booten und GUI 
nicht unter einen Hut bringen, weil dann zum Zeitpunkt des Starts die 
entsprechende Session fehlt.

Ein denkbarer Workaround wäre, dass Dein Rechner sich automatisch mit 
dem genutzten Account einloggt und der Task beim Login ausgeführt wird.

: Bearbeitet durch User
von Klaus R. (klara)



Lesenswert?

Hallo,
es funktioniert!

Zunächst habe ich auf "Einfache Aufgabe erstellen" verzichtet und 
"Aufgabe erstellen" gewählt.

Unter Allgemein "Nur ausführen, wenn der Benutzer angemeldet ist" 
gewählt.

Trigger: Bei Anmeldung

Einstellungen: Deaktiviert habe ich "Aufgabe beenden, falls Ausführung 
länger als x Tage. Der Rechner läuft ununterbrochen.

Beim Autostart mußte auch eine Benutzeranmeldung erfolgen. Ich gehe in 
der Regel Remote auf den Steuerrechner drauf. Bei einem Reboot bin ich 
dann meistens schon beim Hochfahren eingeloggt oder etwas später wenn 
der Desktop schon steht. Dann sah man etwas später die Anwendung 
hochploppen.
Jetzt ist es genauso.

Entscheidend ist aber das die Anwendung jetzt mit Admin-Rechten läuft! 
Und dies ohne Warnmeldungen der Benutzerkonten-Steuerung und der dann 
nötigen manuellen Bestätigung.

Vielen Dank für die Hilfe.
mfg Klaus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.