Ich habe meine eigene Kindersicherungs-App erstellt, um die Aktivitäten meiner Kinder zu überwachen. Die einzige GUI der App ist ein Taskleistensymbol. Das Programm wird als Administrator installiert. Ich möchte, dass dieses Programm beim Start von Windows automatisch als Administrator gestartet wird, damit Standardbenutzer es nicht über den Task-Manager beenden können.
Ich kann einen Registrierungsschlüssel erstellen unter:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Damit es beim Start von Windows automatisch ausgeführt wird. Das Problem ist, dass das Programm als angemeldeter (Standard-) Benutzer gestartet wird.
Wie kann ich es in einem erhöhten Modus ausführen lassen? Ist das in Win7 überhaupt möglich?
.login
Skript unter Unix) und nicht beim Booten (wie bei einigen/etc/rc/...
Skripten).Antworten:
Sie müssen es in den Taskplaner einbinden, sodass es nach der Anmeldung eines Benutzers mit einem Benutzerkonto gestartet wird, das über Administratorzugriff auf das System verfügt und über die höchsten Berechtigungen verfügt, die für von diesem Konto gestartete Prozesse gewährt werden.
Dies ist die Implementierung, mit der Prozesse mit Administratorrechten automatisch gestartet werden, wenn Sie sich als normaler Benutzer anmelden.
Ich habe es verwendet, um den Hilfsprozess 'OpenVPN GUI' zu starten, der erhöhte Berechtigungen benötigt, um ordnungsgemäß zu funktionieren, und daher nicht ordnungsgemäß über den Registrierungsschlüssel gestartet werden kann.
Über die Befehlszeile können Sie die Aufgabe aus einer XML-Beschreibung dessen erstellen, was Sie erreichen möchten. So haben wir zum Beispiel dies aus meinem System exportiert, wodurch der Editor mit den höchsten Berechtigungen gestartet wird, wenn ich mich anmelde:
und es wird von einer Administrator-Eingabeaufforderung registriert mit:
quelle
quelle
Das ist nicht möglich.
Sie können jedoch einen Dienst erstellen, der unter einem Administrator ausgeführt wird.
Der Dienst kann beim Start automatisch ausgeführt werden und mit Ihrer vorhandenen Anwendung kommunizieren.
Wenn die Anwendung als Administrator etwas tun muss, kann sie den Dienst bitten, dies für sie zu tun.
Denken Sie daran, dass mehrere Benutzer gleichzeitig angemeldet sein können.
quelle
Ich denke, dass die Verwendung des Taskplaners zum automatischen Starten von Programmen nicht sehr benutzerfreundlich ist und manchmal Nebenwirkungen für mich hatte (z. B. wird kein Tray-Symbol für ein Programm hinzugefügt).
Um dies zu beheben, habe ich ein Programm namens Elevated Startup erstellt, das sich zuerst mit Administratorrechten neu startet und dann alle Dateien in einem Verzeichnis startet. Da der erhöhte Start jetzt erhöht ist, erhalten alle Programme, die dann gestartet werden, auch Administratorrechte. Das Verzeichnis befindet sich im Startmenü neben dem klassischen Startverzeichnis und funktioniert ähnlich.
Abhängig von Ihren UAC-Einstellungen kann es vorkommen, dass beim Neustart des Programms ein UAC-Dialogfeld angezeigt wird.
Sie können das Programm hier herunterladen : https://stefansundin.github.io/elevatedstartup/
quelle
Festlegen der Kompatibilität Ihrer Anwendung mit dem Administrator
(Run theprogram as an administrator)
.Stecken Sie es ein
task scheduler
und schalten Sie es ausUAC
.quelle
Sie können dies tun, indem Sie die Aufgabe installieren, während Sie als Administrator über die TaskSchedler-Bibliothek ausgeführt werden . Ich gehe hier davon aus, dass .NET / C # angesichts Ihrer Fragen eine geeignete Plattform / Sprache ist.
Über diese Bibliothek erhalten Sie detaillierten Zugriff auf die Taskplaner-API, sodass Sie Einstellungen anpassen können, die Sie ansonsten nicht über die Befehlszeile festlegen können
schtasks
, z. B. die Priorität des Startvorgangs. Als Kindersicherungsanwendung sollten Sie eine Startpriorität von 0 (maximal) haben, wodurchschtasks
standardmäßig eine Priorität von 7 erstellt wird.Unten finden Sie ein Codebeispiel für die Installation einer ordnungsgemäß konfigurierten Startaufgabe, um die gewünschte Anwendung als Administrator bei der Anmeldung auf unbestimmte Zeit auszuführen. Dieser Code installiert eine Aufgabe für den Prozess, von dem aus er ausgeführt wird.
quelle
td
Danke, dass Sie mich in diese Richtung weisen.Ein Programm, das ich geschrieben habe, farmComm, könnte dieses Problem lösen. Ich habe es als Open Source und Public Domain veröffentlicht.
Wenn es Ihren Kriterien nicht entspricht, können Sie es möglicherweise leicht ändern, um dies zu tun.
farmComm:
Die Quellenskripte finden Sie hier:
https://github.com/r-alex-hall/farmComm
quelle
Sie sollten auch die Sicherheitsauswirkungen berücksichtigen, die sich aus der Ausführung eines Prozesses als Benutzer auf Administratorebene oder als Dienst ergeben. Wenn eine Eingabe nicht ordnungsgemäß überprüft wird, z. B. wenn sie über eine Netzwerkschnittstelle abgehört wird. Wenn der Parser für diese Eingabe nicht ordnungsgemäß überprüft wird, kann er missbraucht werden und möglicherweise zu einem Exploit führen, bei dem Code als Benutzer mit erhöhten Rechten ausgeführt werden kann. In Abatishchevs Beispiel sollte dies kein großes Problem sein. Wenn es jedoch in einer Unternehmensumgebung bereitgestellt werden soll, führen Sie vor einer umfassenden Bereitstellung eine Sicherheitsbewertung durch.
quelle
Ich denke, der Taskplaner wäre übertrieben (imho). Es gibt einen Startordner für win7.
C: \ Benutzer \ miliu \ AppData \ Roaming \ Microsoft \ Windows \ Startmenü \ Programme \ Start
Erstellen Sie einfach eine Verknüpfung für Ihre Autostart-Anwendung, bearbeiten Sie die Eigenschaften der Verknüpfung und lassen Sie sie immer als Administrator ausführen.
Ihre Kinder könnten es natürlich schließen, aber wenn sie technisch versiert sind, finden sie immer einen Weg, Sie fernzuhalten. Ich weiß, dass ich es getan habe, als ich jünger war.
Viel Glück!
quelle